| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Text.Colour
Description
Safe Coloured Text
This module is responsible for defining, building, and rendering coloured text.
The text to be coloured is Text, but the rendered text, while technically still (probably) valid Utf8, will be a ByteString builder.
Synopsis
- chunk :: Text -> Chunk
- data Chunk = Chunk {
- chunkText :: !Text
- chunkItalic :: !(Maybe Bool)
- chunkConsoleIntensity :: !(Maybe ConsoleIntensity)
- chunkUnderlining :: !(Maybe Underlining)
- chunkForeground :: !(Maybe Colour)
- chunkBackground :: !(Maybe Colour)
- fore :: Colour -> Chunk -> Chunk
- back :: Colour -> Chunk -> Chunk
- bold :: Chunk -> Chunk
- faint :: Chunk -> Chunk
- italic :: Chunk -> Chunk
- underline :: Chunk -> Chunk
- doubleUnderline :: Chunk -> Chunk
- data Colour
- black :: Colour
- red :: Colour
- green :: Colour
- yellow :: Colour
- blue :: Colour
- magenta :: Colour
- cyan :: Colour
- white :: Colour
- brightBlack :: Colour
- brightRed :: Colour
- brightGreen :: Colour
- brightYellow :: Colour
- brightBlue :: Colour
- brightMagenta :: Colour
- brightCyan :: Colour
- brightWhite :: Colour
- color256 :: Word8 -> Colour
- colour256 :: Word8 -> Colour
- colorRGB :: Word8 -> Word8 -> Word8 -> Colour
- colourRGB :: Word8 -> Word8 -> Word8 -> Colour
- renderChunks :: Foldable f => TerminalCapabilities -> f Chunk -> Builder
- renderChunk :: TerminalCapabilities -> Chunk -> Builder
- renderChunksBS :: Foldable f => TerminalCapabilities -> f Chunk -> ByteString
- renderChunkBS :: TerminalCapabilities -> Chunk -> ByteString
- data TerminalCapabilities
- putChunksWith :: TerminalCapabilities -> [Chunk] -> IO ()
- hPutChunksWith :: TerminalCapabilities -> Handle -> [Chunk] -> IO ()
Building chunks
Constructors
| Chunk | |
Fields
| |
Instances
Styling
Setting colour
Setting non-colour attributes
doubleUnderline :: Chunk -> Chunk Source #
Colours
Constructors
| Colour8 !ColourIntensity !TerminalColour | |
| Colour8Bit !Word8 | |
| Colour24Bit !Word8 !Word8 !Word8 |
Instances
8-colour
Dull
Bright
brightBlack :: Colour Source #
brightGreen :: Colour Source #
brightBlue :: Colour Source #
brightCyan :: Colour Source #
brightWhite :: Colour Source #
8-bit
colour256 :: Word8 -> Colour Source #
Bulid an 8-bit RGB Colour
This will not be rendered unless With8BitColours is used.
24-bit
colourRGB :: Word8 -> Word8 -> Word8 -> Colour Source #
Bulid a 24-bit RGB Colour
This will not be rendered unless With24BitColours is used.
Rendering
Rendering chunks to bytestring builders
renderChunks :: Foldable f => TerminalCapabilities -> f Chunk -> Builder Source #
Render chunks to a bytestring builder
renderChunk :: TerminalCapabilities -> Chunk -> Builder Source #
Render a chunk to a bytestring builder
Rendering chunks to strict bytestring
renderChunksBS :: Foldable f => TerminalCapabilities -> f Chunk -> ByteString Source #
Render a chunk directly to bytestring.
renderChunkBS :: TerminalCapabilities -> Chunk -> ByteString Source #
Render a chunk directly to bytestring.
IO
data TerminalCapabilities Source #
Constructors
| WithoutColours | No colours |
| With8Colours | Only 8 colours |
| With8BitColours | Only 8-bit colours |
| With24BitColours | All 24-bit colours |
Instances
Outputting chunks directly
putChunksWith :: TerminalCapabilities -> [Chunk] -> IO () Source #
Print a list of chunks to stdout with given TerminalCapabilities.
hPutChunksWith :: TerminalCapabilities -> Handle -> [Chunk] -> IO () Source #
Print a list of chunks to the given Handle with given TerminalCapabilities.