graphviz-2999.20.1.0: Bindings to Graphviz for graph visualisation.
Copyright(c) Ivan Lazar Miljenovic
License3-Clause BSD-style
MaintainerIvan.Miljenovic@gmail.com
Safe HaskellNone
LanguageHaskell2010

Data.GraphViz.Attributes.HTML

Description

This module is written to be imported qualified. It defines the syntax for HTML-like values for use in Graphviz. Please note that these values are not really HTML, but the term "HTML" is used throughout as it is less cumbersome than "HTML-like". To be able to use this, the version of Graphviz must be at least 1.10. For more information, please see: http://graphviz.org/doc/info/shapes.html#html

The actual definition of the syntax specifies that these types must be valid XML syntax. As such, this assumed when printing and parsing, though the correct escape/descaping for ", &, < and > are automatically done when printing and parsing.

Differences from how Graphviz treats HTML-like values:

  • Graphviz only specifies the above-listed characters must be escaped; however, internally it also escapes -, ' and multiple sequences of spaces. This library attempts to match this behaviour. Please let me know if this behaviour (especially about escaping multiple spaces) is unwanted.
  • When parsing escaped HTML characters, numeric escapes are converted to the corresponding character as are the various characters listed above; all other escaped characters (apart from those listed above) are silently ignored and removed from the input (since technically these must be valid XML, which doesn't recognise as many named escape characters as does HTML).
  • All whitespace read in is kept (even if Graphviz would ignore multiple whitespace characters); when printing them, however, they are replaced with non-breaking spaces. As such, if multiple literal whitespace characters are used in a sequence, then the result of parsing and then printing some Dot code will not be the same as the initial Dot code. Furthermore, all whitespace characters are printed as spaces.
  • It is assumed that all parsed & values are the beginning of an XML escape sequence (which must finish with a ; character).
  • There should be no pre-escaped characters in values; when printing, the & will get escaped without considering if that is an escaped character.
Synopsis

Documentation

data Label #

The overall type for HTML-like labels. Fundamentally, HTML-like values in Graphviz are either textual (i.e. a single element with formatting) or a table. Note that Label values can be nested via LabelCell.

Constructors

Text Text 
Table Table 

Instances

Instances details
Eq Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Label -> Label -> Bool #

(/=) :: Label -> Label -> Bool #

Ord Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Label -> Label -> Ordering #

(<) :: Label -> Label -> Bool #

(<=) :: Label -> Label -> Bool #

(>) :: Label -> Label -> Bool #

(>=) :: Label -> Label -> Bool #

max :: Label -> Label -> Label #

min :: Label -> Label -> Label #

Read Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Label -> ShowS #

show :: Label -> String #

showList :: [Label] -> ShowS #

ParseDot Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Label # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Labellable Label # 
Instance details

Defined in Data.GraphViz.Attributes

Methods

toLabelValue :: Label -> Label0 #

type Text = [TextItem] #

Represents a textual component of an HTML-like label. It is assumed that a Text list is non-empty. It is preferable to "group" Str values together rather than have individual ones. Note that when printing, the individual values are concatenated together without spaces, and when parsing anything that isn't a tag is assumed to be a Str: that is, something like "<BR/> <BR/>" is parsed as:

[Newline [], Str " ", Newline []]

data TextItem #

Textual items in HTML-like labels.

Constructors

Str Text 
Newline Attributes

Only accepts an optional Align Attribute; defined this way for ease of printing/parsing.

Font Attributes Text 
Format Format Text

Only available in Graphviz >= 2.28.0.

data Format #

Constructors

Italics 
Bold 
Underline 
Overline

Requires Graphviz >= 2.38.0.

Subscript 
Superscript 

Instances

Instances details
Bounded Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Format -> Format -> Bool #

(/=) :: Format -> Format -> Bool #

Ord Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Read Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

ParseDot Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Format # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data Table #

A table in HTML-like labels. Tables are optionally wrapped in overall FONT tags.

Constructors

HTable 

Fields

Instances

Instances details
Eq Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Table -> Table -> Bool #

(/=) :: Table -> Table -> Bool #

Ord Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Table -> Table -> Ordering #

(<) :: Table -> Table -> Bool #

(<=) :: Table -> Table -> Bool #

(>) :: Table -> Table -> Bool #

(>=) :: Table -> Table -> Bool #

max :: Table -> Table -> Table #

min :: Table -> Table -> Table #

Read Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Table -> ShowS #

show :: Table -> String #

showList :: [Table] -> ShowS #

ParseDot Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Table # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Labellable Table # 
Instance details

Defined in Data.GraphViz.Attributes

Methods

toLabelValue :: Table -> Label #

data Row #

A row in a Table. The list of Cell values is assumed to be non-empty.

Constructors

Cells [Cell] 
HorizontalRule

Should be between Cells values, requires Graphviz >= 2.29.0

Instances

Instances details
Eq Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Row -> Row -> Bool #

(/=) :: Row -> Row -> Bool #

Ord Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Row -> Row -> Ordering #

(<) :: Row -> Row -> Bool #

(<=) :: Row -> Row -> Bool #

(>) :: Row -> Row -> Bool #

(>=) :: Row -> Row -> Bool #

max :: Row -> Row -> Row #

min :: Row -> Row -> Row #

Read Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Row -> ShowS #

show :: Row -> String #

showList :: [Row] -> ShowS #

ParseDot Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Row # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data Cell #

Cells either recursively contain another Label or else a path to an image file.

Constructors

LabelCell Attributes Label 
ImgCell Attributes Img 
VerticalRule

Should be between LabelCell or ImgCell values, requires Graphviz >= 2.29.0

Instances

Instances details
Eq Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Cell -> Cell -> Bool #

(/=) :: Cell -> Cell -> Bool #

Ord Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Cell -> Cell -> Ordering #

(<) :: Cell -> Cell -> Bool #

(<=) :: Cell -> Cell -> Bool #

(>) :: Cell -> Cell -> Bool #

(>=) :: Cell -> Cell -> Bool #

max :: Cell -> Cell -> Cell #

min :: Cell -> Cell -> Cell #

Read Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Cell -> ShowS #

show :: Cell -> String #

showList :: [Cell] -> ShowS #

ParseDot Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Cell # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

newtype Img #

The path to an image; accepted Attributes are Scale and Src.

Constructors

Img Attributes 

Instances

Instances details
Eq Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Img -> Img -> Bool #

(/=) :: Img -> Img -> Bool #

Ord Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Img -> Img -> Ordering #

(<) :: Img -> Img -> Bool #

(<=) :: Img -> Img -> Bool #

(>) :: Img -> Img -> Bool #

(>=) :: Img -> Img -> Bool #

max :: Img -> Img -> Img #

min :: Img -> Img -> Img #

Read Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Img -> ShowS #

show :: Img -> String #

showList :: [Img] -> ShowS #

ParseDot Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Img # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

type Attributes = [Attribute] #

The various HTML-like label-specific attributes being used.

data Attribute #

Note that not all Attribute values are valid everywhere: see the comments for each one on where it is valid.

Constructors

Align Align

Valid for: Table, Cell, Newline.

BAlign Align

Valid for: Cell.

BGColor Color

Valid for: Table (including tableFontAttrs), Cell, Font.

Border Word8

Valid for: Table, Cell. Default is 1; 0 represents no border.

CellBorder Word8

Valid for: Table. Default is 1; 0 represents no border.

CellPadding Word8

Valid for: Table, Cell. Default is 2.

CellSpacing Word8

Valid for: Table, Cell. Default is 2; maximum is 127.

Color Color

Valid for: Table, Cell.

ColSpan Word16

Valid for: Cell. Default is 1.

Columns CellFormat

Valid for: Table. Requires Graphviz >= 2.40.1

Face Text

Valid for: tableFontAttrs, Font.

FixedSize Bool

Valid for: Table, Cell. Default is False.

GradientAngle Int

Valid for: Table, Cell. Default is 0. Requires Graphviz >= 2.40.1

Height Word16

Valid for: Table, Cell.

HRef Text

Valid for: Table, Cell.

ID Text

Valid for: Table, Cell. Requires Graphviz >= 2.29.0

PointSize Double

Valid for: tableFontAttrs, Font.

Port PortName

Valid for: Table, Cell.

Rows CellFormat

Valid for: Table. Requires Graphviz >= 2.40.1

RowSpan Word16

Valid for: Cell.

Scale Scale

Valid for: Img.

Sides [Side]

Valid for: Table, Cell. Default is [LeftSide, TopSide, RightSide, BottomSide]. Requires Graphviz >= 2.40.1

Src FilePath

Valid for: Img.

Style Style

Valid for: Table, Cell. Requires Graphviz >= 2.40.1

Target Text

Valid for: Table, Cell.

Title Text

Valid for: Table, Cell. Has an alias of TOOLTIP.

VAlign VAlign

Valid for: Table, Cell.

Width Word16

Valid for: Table, Cell.

data Align #

Specifies horizontal placement. When an object is allocated more space than required, this value determines where the extra space is placed left and right of the object.

Constructors

HLeft 
HCenter

Default value.

HRight 
HText

LabelCell values only; aligns lines of text using the full cell width. The alignment of a line is determined by its (possibly implicit) associated Newline element.

Instances

Instances details
Bounded Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Align -> Align -> Bool #

(/=) :: Align -> Align -> Bool #

Ord Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Align -> Align -> Ordering #

(<) :: Align -> Align -> Bool #

(<=) :: Align -> Align -> Bool #

(>) :: Align -> Align -> Bool #

(>=) :: Align -> Align -> Bool #

max :: Align -> Align -> Align #

min :: Align -> Align -> Align #

Read Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Align -> ShowS #

show :: Align -> String #

showList :: [Align] -> ShowS #

ParseDot Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Align # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data VAlign #

Specifies vertical placement. When an object is allocated more space than required, this value determines where the extra space is placed above and below the object.

Constructors

HTop 
HMiddle

Default value.

HBottom 

Instances

Instances details
Bounded VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: VAlign -> VAlign -> Bool #

(/=) :: VAlign -> VAlign -> Bool #

Ord VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Read VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

ParseDot VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot VAlign # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data CellFormat #

Constructors

RuleBetween 

Instances

Instances details
Bounded CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Ord CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Read CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

ParseDot CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot CellFormat # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data Scale #

Specifies how an image will use any extra space available in its cell. If undefined, the image inherits the value of the ImageScale attribute.

Instances

Instances details
Bounded Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Scale -> Scale -> Bool #

(/=) :: Scale -> Scale -> Bool #

Ord Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Scale -> Scale -> Ordering #

(<) :: Scale -> Scale -> Bool #

(<=) :: Scale -> Scale -> Bool #

(>) :: Scale -> Scale -> Bool #

(>=) :: Scale -> Scale -> Bool #

max :: Scale -> Scale -> Scale #

min :: Scale -> Scale -> Scale #

Read Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Scale -> ShowS #

show :: Scale -> String #

showList :: [Scale] -> ShowS #

ParseDot Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Scale # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data Side #

Which sides of a border in a cell or table should be drawn, if a border is drawn.

Instances

Instances details
Bounded Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

succ :: Side -> Side #

pred :: Side -> Side #

toEnum :: Int -> Side #

fromEnum :: Side -> Int #

enumFrom :: Side -> [Side] #

enumFromThen :: Side -> Side -> [Side] #

enumFromTo :: Side -> Side -> [Side] #

enumFromThenTo :: Side -> Side -> Side -> [Side] #

Eq Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Side -> Side -> Bool #

(/=) :: Side -> Side -> Bool #

Ord Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Side -> Side -> Ordering #

(<) :: Side -> Side -> Bool #

(<=) :: Side -> Side -> Bool #

(>) :: Side -> Side -> Bool #

(>=) :: Side -> Side -> Bool #

max :: Side -> Side -> Side #

min :: Side -> Side -> Side #

Read Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Side -> ShowS #

show :: Side -> String #

showList :: [Side] -> ShowS #

ParseDot Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Side # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

data Style #

Constructors

Rounded

Valid for Table

Radial

Valid for Table, Cell.

Instances

Instances details
Bounded Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Enum Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Eq Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

(==) :: Style -> Style -> Bool #

(/=) :: Style -> Style -> Bool #

Ord Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

compare :: Style -> Style -> Ordering #

(<) :: Style -> Style -> Bool #

(<=) :: Style -> Style -> Bool #

(>) :: Style -> Style -> Bool #

(>=) :: Style -> Style -> Bool #

max :: Style -> Style -> Style #

min :: Style -> Style -> Style #

Read Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Show Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

Methods

showsPrec :: Int -> Style -> ShowS #

show :: Style -> String #

showList :: [Style] -> ShowS #

ParseDot Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML

PrintDot Style # 
Instance details

Defined in Data.GraphViz.Attributes.HTML