cmdargs-0.10.13: Command line argument processing

Safe Haskell | None
Language | Haskell98

System.Console.CmdArgs.Text

Description

A module to represent text with very basic formatting. Values are of type [`Text`] and shown with `showText`.

As an example of the formatting:

    [Line "Cooking for hungry people."
    ,Line "Welcome to my cookery recipe program, I sure hope you enjoy using it!"
    ,Line ""
    ,Cols ["Omlette","  A tasty eggy treat."]
    ,Cols ["  -m"," --mushrooms","  Some mushrooms, or in fact any other ingredients you have in the cupboards"]
    ,Cols ["  -e"," --eggs", "  But always you need eggs"]
    ,Line ""
    ,Cols ["Spagetti Bolognaise", "  An Italian delight."]
    ,Cols ["  -s"," --spagetti","  The first word in the name"]
    ,Cols ["  -b"," --bolognaise","  The second word in the name"]
    ,Cols ["  -d"," --dolmio","  The magic ingredient!"]
    ,Line ""
    ,Line "    The author of this program explicitly disclaims any liability for poisoning people who get their recipes off the internet."]

With `putStrLn (`showText` (`Wrap` 50) demo)` gives:

    Cooking for hungry people.
    Welcome to my cookery recipe program, I sure hope
    you enjoy using it!

    Omlette              A tasty eggy treat.
      -m --mushrooms   Some mushrooms, or in fact
                       any other ingredients you have
                       in the cupboards
      -e --eggs        But always you need eggs

    Spagetti Bolognaise  An Italian delight.
      -s --spagetti    The first word in the name
      -b --bolognaise  The second word in the name
      -d --dolmio      The magic ingredient!

        The author of this program explicitly
        disclaims any liability for poisoning people
        who get their recipes off the internet.

Synopsis

- data TextFormat
  - = HTML
  - | Wrap Int
- defaultWrap :: TextFormat
- data Text
  - = Line String
  - | Cols [String]
- showText :: TextFormat -> [Text] -> String

# Documentation

data TextFormat

How to output the text.

Constructors

HTML | Display as HTML.
Wrap Int | Display as text wrapped at a certain width (see `defaultWrap`).

Instances

Eq TextFormat |
Ord TextFormat |
Read TextFormat |
Show TextFormat |
Default TextFormat |

defaultWrap :: TextFormat

Wrap with the default width of 80 characters.

data Text

The data type representing some text, typically used as `[Text]`. The formatting is described by:

- `Line` values represent a paragraph of text, and may be wrapped depending on the `TextFormat`. If a `Line` value is wrapped then all leading space will be treated as an indent.
- `Cols` values represent columns of text. Within any `[Text]` all columns of the same length are grouped in tabs, with the final column being wrapped if necessary. All columns are placed adjacent with no space between them - for this reason most columns will start with a space.

Constructors

Line String |
Cols [String] |

Instances

Show Text |

showText :: TextFormat -> [Text] -> String

Show some text using the given formatting.