Ways to output stylized text on ANSI consoles.

Latest on Hackage:0.1.3

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

GPL licensed by Luca Molari
Maintained by

.: 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"
[ (((Vivid, Yellow), (NormalIntensity, NoUnderline)), "vivid yellow ")
, (((Vivid, Blue), (NormalIntensity, NoUnderline)), "vivid blue")

-- 7) Remember to reset (if you want to)!

Depends on 2 packages:
Used by 1 package:
comments powered byDisqus