Template:Diagram/doc

This template was originally ported from by Rye Greenwood, and was heavily rewritten and optimized.

Please note that some line drawing symbols are different from origin.

This is a template for rendering simple diagrams consisting of boxes and connecting lines such as family tree based on an ASCII art-like syntax. The trees are displayed as HTML tables using CSS attributes, and may contain arbitrary wiki markup within the boxes.

Example usage
This code: 

Produces this:

Parameters
The  parameter of the   template should be used to describe the overall layout of the tree. This summary is for accessibility: it is read aloud to visually impaired readers who use screen readers, and is invisible to sighted readers.

The  template produces one row in a diagram table. The template accepts up to 80 unnamed parameters describing the contents of the table. Each parameter specifies a tile or a box.
 * Tiles are line drawing symbols consisting of horizontal and vertical lines and various corners and crossings thereof. Tiles are specified using single-character symbols that more or less approximate the shape of the tile in appearance.   A special case of a tile is the empty tile, specified by a _, 0 or O character.  A table of supported tiles is given below.


 * Boxes can contain arbitrary wiki markup. The contents of boxes are specified using additional named parameters appended to the template call.  Each box is three tiles wide and normally has a 2 pixels wide blue border.  Boxes can have any name that is a valid template parameter name, although single character names should be avoided to prevent conflicts with tile symbols.

Style attributes
The appearance of the boxes may be controlled by the optional template parameter boxstyle. The former sets the width of the box border in pixels, while the latter can be used to append arbitrary CSS declarations directly to the box style attributes. For example, the following code:



produces a result like this:

Style attributes can even be set for individual boxes, as in the example below:



which produces the output:

Also, you can deal with CSS by class/id, like this: 

and CSS:  .type-A{ /* styles for all type-A boxes */ } .type-B{ /* styles for all type-B boxes */ } /* styles for WHITE */ } .box-red{ /* styles for RED */ } .box-green{ /* styles for GREEN */ } .box-blue{ /* styles for BLUE */ }
 * 1) white-box{

The  template also accepts optional ,   and   parameters that can be used to set CSS styles/class/id for the entire diagram.

NOTE: The Diagram itself will always have a  class, and all boxes in diagrams will always have a   class, so you can use   selector (or more qualified,  ) to set default styles for boxes.