cmdargs-0.10.13: Command line argument processing

Safe HaskellNone
LanguageHaskell98

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

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).

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

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

Show some text using the given formatting.