Template:Simple Horizontal timeline/doc

This is a Lua implementation of Horizontal timeline. It has all the functionality of the legacy one with few more features added to it.

Basic Plot settings

 * bordr Border of the plot
 * bgCol Background color of the plot
 * width Width of the timeline plot. Defaults to 100%, can be in px or em too
 * caption shows a centered text. Can be used to show legends. Intended to be used to label the axis
 * from and to Necessary parameters which denotes the start and end of the timeline axis. The entire timeline (for the entire plot) including other type of rows are drawn to this scale. to may or may not be greater than from. (see inc for more on this) If any bars described using parameters shown below lie outside these values, they will be trimmed or eliminated depending on their position.
 * inc Optional Increment to be added to from to reach to and be displayed along the axis. If not specified it will be automatically calculated. If to is greater than from then inc should be positive and vice versa. If not the outcome is undetermined.

The row$n$ parameter
row$n$ specifies how horizontal rows are drawn. You can have as many rows as you want. Subscript are positive intigers. They specify where the row is rendered on the plot. Lower subscript indicate higher on the plot. That is row3 will be above row4

Three differenct types of rows are possible. They are:
 * scale: Specifies where the axis is drawn. (how it is drawn can be found in the Scale Row section below).
 * timeline: Specifies where and how the bars are drawn.
 * note: Row that contains arrow marked notes to give explanations to the graph.

Generic Parameters

 * height Applies height of timeline and note rows.

Each of these types of rows have their own attributes specified with an hyphen. For example, the style of a row$n$ can be specified as row$n$-style. Full list of available attributes and their description can be found below.

Scale Row

 * axis-negativeFmt, axis-positiveFmt and axis-zeroFmt Formatting options for Axis scale. If you want more customization, (like completely hiding a single label on the axis) use the following:
 * axis-value - Used to replace the value label on the axis (It will work if and only if the exact value appears on it).
 * axis-marker-value - Used to replace the marker point for a label that appears on the axis. (It will work if and only if the exact value appears on it).
 * axis-nudge Amount of nudge to be applied to the axis label, defaults to -1.8em.


 * axis-marker-1878=
 * axis-1878=

Timeline Row

 * row$n$-bordertop and row$n$-borderbottom Specifies the top and bottom border for the row.
 * row$n$-texttop specifies vertical nudge for the bar labels for the entire row.
 * row$n$-colour or row$n$-color specifies the row's background color.
 * Note: colour or color both are acceptable variations for the whole module.


 * row$n$-i-from Starting point for the bar. This is optional, if not specified, will start from value specified in from.
 * row$n$-i-to Ending point for the bar.
 * row$n$-i-text Label for the bar.
 * row$n$-i-fontsize Font size for the label.
 * row$n$-i-texttop Vertical nudge for the label of i$th$ bar.
 * row$n$-i-colour bar colour.
 * row$n$-i-border bar border (See Known Issues).


 * Note on Subscripts:
 * row$n$-i- denotes the attribute value for i$th$ bar on the n$th$ row.
 * Here subscript n is a positive number used to group rows and their attributed. They may not occur continuous in your script, but are displayed in ascending order.
 * Subscript i is also a positive number which is used to group bar on a specific row.

Style Parameter of the Timeline Row

 * row$n$-style and row$n$-i-style can be used to provide row specific or bar specific styles. Those styles which repeat for every bar or for every row may be grouped into styles and be applied globally. The style prefixes can be anything other than row. See example below on how styleDefault is used to apply style common to all rows and stylePopes/styleAntiPopes are used to specify bar specific styles.

Note Row

 * row$n$-i-at Necessary parameter. Specifies where the note is placed
 * row$n$-i-text Specifies the content of the note
 * row$n$-i-shift and row$n$-i-lift Specifies the nudge applied to the note. Defaults to 0em
 * row$n$-i-arrow Specifies the arrow Character. Defaults to ↓. Nullify with.

Example Usage
Note: row1-5-lift is missing. Same as n, i does not have to be continuous.

Usage Tips

 * You can use timeline inside navbox for a collapsible frame. See Restoration Movement Timeline graphical timeline for a working example.
 * If navbox spoils the line spacing, it is better to use hidden begin and hidden end. See Vietnam War graphical timeline for a working example.
 * It is possible to render only a single row by directly calling the module as . See Geological eras or Geological periods for a working example.
 * If you create a single row template, it can easily be embedded in a different template with different scale. The single row template will be automatically cropped to fit the parent template. See how Geological eras and Geological periods are embedded in Extinction events graphical timeline
 * Different browsers have different ways of rendering. It's probably worth checking your finished timeline in at least IE, Firefox and Chrome if you are making a particularly complex timeline.

Examples

 * Extinction events graphical timeline
 * Prime Ministers of Spain - Democratic Spain graphical timeline
 * Vietnam War graphical timeline
 * Restoration Movement Timeline graphical timeline
 * Cricket in the Great War timeline
 * Portland Youth Philharmonic graphical timeline
 * WikiProject Java/When graphical timeline
 * Tremors Release Dates

Known Issues

 * Left and bottom border for bars (not rows) will not render properly in old browsers which lacks support for CSS3 Box-sizing.(Refer here for full supported browser list) All modern browsers provides at-least minimal support for this. Also only in extereme circumstances you will need to set bar border. Most of the time row border will be sufficient. Hence this should not be a problem.