| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Text.Colour
Contents
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)
- chunkBlinking :: !(Maybe Blinking)
- 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
- noUnderline :: Chunk -> Chunk
- slowBlinking :: Chunk -> Chunk
- rapidBlinking :: Chunk -> Chunk
- noBlinking :: 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
- unlinesChunks :: [[Chunk]] -> [Chunk]
- renderChunksUtf8BS :: Foldable f => TerminalCapabilities -> f Chunk -> ByteString
- renderChunkUtf8BS :: TerminalCapabilities -> Chunk -> ByteString
- renderChunksUtf8BSBuilder :: Foldable f => TerminalCapabilities -> f Chunk -> Builder
- renderChunkUtf8BSBuilder :: TerminalCapabilities -> Chunk -> Builder
- renderChunksText :: Foldable f => TerminalCapabilities -> f Chunk -> Text
- renderChunkText :: TerminalCapabilities -> Chunk -> Text
- renderChunksLazyText :: Foldable f => TerminalCapabilities -> f Chunk -> Text
- renderChunkLazyText :: TerminalCapabilities -> Chunk -> Text
- renderChunksBuilder :: Foldable f => TerminalCapabilities -> f Chunk -> Builder
- renderChunkBuilder :: TerminalCapabilities -> Chunk -> Builder
- data TerminalCapabilities
- putChunksUtf8With :: TerminalCapabilities -> [Chunk] -> IO ()
- putChunksLocaleWith :: TerminalCapabilities -> [Chunk] -> IO ()
- hPutChunksUtf8With :: TerminalCapabilities -> Handle -> [Chunk] -> IO ()
- hPutChunksLocaleWith :: TerminalCapabilities -> Handle -> [Chunk] -> IO ()
Building chunks
Constructors
| Chunk | |
Fields
| |
Instances
Styling
Setting colour
Setting non-colour attributes
doubleUnderline :: Chunk -> Chunk Source #
noUnderline :: Chunk -> Chunk Source #
slowBlinking :: Chunk -> Chunk Source #
rapidBlinking :: Chunk -> Chunk Source #
noBlinking :: 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
Composing chunks
unlinesChunks :: [[Chunk]] -> [Chunk] Source #
Render lines of chunks.
This puts newlines ("n") inbetween the lines.
Rendering chunks to strict bytestring in UTF8
renderChunksUtf8BS :: Foldable f => TerminalCapabilities -> f Chunk -> ByteString Source #
Render chunks directly to a UTF8-encoded Bytestring.
renderChunkUtf8BS :: TerminalCapabilities -> Chunk -> ByteString Source #
Render a chunk directly to a UTF8-encoded Bytestring.
Rendering chunks to lazy bytestring builders in UTF8
renderChunksUtf8BSBuilder :: Foldable f => TerminalCapabilities -> f Chunk -> Builder Source #
Render chunks to a UTF8-encoded ByteString Builder.
renderChunkUtf8BSBuilder :: TerminalCapabilities -> Chunk -> Builder Source #
Render a chunk directly to a UTF8-encoded Bytestring Builder.
Rendering chunks to strict Text
renderChunksText :: Foldable f => TerminalCapabilities -> f Chunk -> Text Source #
Render chunks directly to strict Text.
renderChunkText :: TerminalCapabilities -> Chunk -> Text Source #
Render a chunk directly to strict Text.
Rendering chunks to lazy text
renderChunksLazyText :: Foldable f => TerminalCapabilities -> f Chunk -> Text Source #
Render chunks directly to lazy Text.
renderChunkLazyText :: TerminalCapabilities -> Chunk -> Text Source #
Render a chunk directly to strict Text.
Rendering chunks to lazy text builder
renderChunksBuilder :: Foldable f => TerminalCapabilities -> f Chunk -> Builder Source #
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
putChunksUtf8With :: TerminalCapabilities -> [Chunk] -> IO () Source #
Print a list of chunks to stdout with given TerminalCapabilities.
putChunksLocaleWith :: TerminalCapabilities -> [Chunk] -> IO () Source #
Print a list of chunks to stdout with given TerminalCapabilities in an encoding according to the system's locale.
hPutChunksUtf8With :: TerminalCapabilities -> Handle -> [Chunk] -> IO () Source #
Print a list of chunks to the given Handle with given TerminalCapabilities.
hPutChunksLocaleWith :: TerminalCapabilities -> Handle -> [Chunk] -> IO () Source #
Print a list of chunks to the given Handle with given TerminalCapabilities in an encoding according to the system's locale.