ANSI Escape Sequence Text Decoration Made Easy

Latest on Hackage:1.1.0

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.

BSD3 licensed by Ryan Daniels
Maintained by

A library for text decoration with ANSI escape sequences made easy. Decorate your terminal text expressively. Any complex data type, existing or custom, can be simply colorized by implementing the class ToEscapable, then output to terminal or converted to String using the provided functions.

Simple Example

import Data.Monoid ((<>))
import Text.EscapeArtist

underlines = Underline $ FgCyan "I am underlined" <> UnderlineOff " but I am not " <> FgMagenta "and I am over here"

putEscLn underlines

Implementing ToEscapable

import Data.Monoid ((<>))
import Text.EscapeArtist

data ABC = A | B deriving (Show, Eq)

instance ToEscapable ABC where
    toEscapable (A) = FgRed $ show A
    toEscapable (B) = FgGreen $ show B

instance (ToEscapable a) => ToEscapable (Maybe a) where
     toEscapable (Just a) = FgGreen "Just" <> Inherit " " <> FgYellow a
     toEscapable a = FgRed $ show a

NOTE: For GHC < 7.10 you will also need to explicitly derive Typeable for custom data types implementing ToEscapable. See the section Explicitly Derived Typeable in the documentation.

Comprehensive Documentation

See comprehensive documentation with many examples here:

Depends on:
comments powered byDisqus