@hackage stylized0.1.3

Ways to output stylized text on ANSI consoles.

{-

.: 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