cmdargs-0.9.5: Command line argument processing

Safe Haskell | None

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.