Readme for stylized-0.1.2
{-
.: Sample usage :.
:------------:
You can run this README with: `runhaskell README`
-}
-- 0) import stylized module
import System.Console.ANSI.Stylized
-- 1) a data type to 'tag' messages:
data MsgType
= Info
| Warning
| Error
deriving (Enum)
-- 2) a function from tags to styles:
stylemap :: MsgType -> Style
stylemap Info = ((Dull, Green), (NormalIntensity, NoUnderline))
stylemap Warning = ((Dull, Yellow), (NormalIntensity, NoUnderline))
stylemap Error = ((Dull, Red), (NormalIntensity, NoUnderline))
-- 3) a logging function built from 'T' ending functions (i.e. putLnT and putT)
myLogLn msg = putLnT stylemap msg >> resetGR
myLog msg = putT stylemap msg >> resetGR
-- 4) some example messages:
msgs1 = [
(Info, "Info Message\n"),
(Warning, "Warning Message\n"),
(Error, "Error Message") ]
msgs2 = zip (cycle $ enumFrom Info) ["some ", "random ", "messages "]
-- 5) print:
main = do
myLog msgs2
myLogLn msgs2
myLogLn msgs1
-- 6) you can always use S-ending functions ('curried' or 'uncurried' ones)
putStrLnS ((Dull, Blue), (NormalIntensity, SingleUnderline)) "blue underlined"
putLnS
[ (((Vivid, Yellow), (NormalIntensity, NoUnderline)), "vivid yellow ")
, (((Vivid, Blue), (NormalIntensity, NoUnderline)), "vivid blue")
]
-- 7) Remember to reset (if you want to)!
resetGR