Note. The original goal of this template was to make writing the documentation easier by avoiding the need to repeat the code twice, once enclosed in the pre tags and once without. Unfortunately this is not possible. Parameters are transcluded when used unless in certain tags (pre, nowiki). Unfortunately these tags are passed to the module as strip markers so it is not possible to strip the tags from a transclusion protected parameter in the Lua module.
Update. The code can be reused if wrapped in nowiki tags. The contents can be extracted from the nowiki strip markers, so it is now possible to use the code twice, once wrapped in pre tags to display the code and the a second time after processing to show the output.
This template is designed to aid writing documentation of the {{clade}} by showing examples of code and the executed output, with option description and comment. It creates a table with four columns:
a description of what the example in the row shows
Selecting columns. Columns may be omitted optionally. The columns to be shown are indicated by the following four parameters.
|description= indicates that the description column should be shown. If used with a value it will set the header (default: Description).
|code= indicates that the code column should be shown. A value will be used as the header (default: Code).
|output= indicates that the output column should be shown. A value will be used as the header (default: Output).
|comment= indicates that the comment column should be shown. A value will be used as the header (default: Commment).
Omitting the parameter omits the column. For instance, just using |code= and |output= just shows the code and output (as shown on the right).
Content of rows. The content of the rows is used using the parameters with a numerical suffix indicating the row number:
|description1= contains text describing the example in the first row. Similarly for |description2= ... |descriptionN.
|code1= contains the clade code for the first row wrapped <pre> or <nowiki> tags.
|output1= contains the transcluded output of the clade code. This parameter is not necessary if the |code1= is wrapped in <nowiki> tags, when the |code1= content will be used to render the output.
The following table uses {{clade example}} to give some example uses of the clade template system for building cladograms. use edit mode to see how it is used.
Description
Code
Output
Comment
Simple clade element
{{clade|label1=Label
|1={{clade|1=Leaf A
|2=Leaf B
}}}}
Label
Leaf A
Leaf B
Two child elements
A more complex clade structure
{{clade|label1=Label
|1={{clade|1=Node A (terminal)
|label2=Node B
|sublabel2=(internal)
|2={{clade|1=Leaf 1
|2=Leaf 2
}}}}}}
Label
Node A (terminal)
Node B
Leaf 1
Leaf 2
(internal)
Two levels. The second clade element is nested in the first.
description 3
code 3
output 3
comment 3
description 4
code 4
output 4
comment 4
Wrap the code in nowiki tags to avoid duplication of the code.
{{clade|label1=Label
|1={{clade|1=Node A (terminal)
|label2=Node B
|sublabel2=(internal)
|2={{clade|1=Leaf 1
|2=Leaf 2
}}}}}}
Label
Node A (terminal)
Node B
Leaf 1
Leaf 2
(internal)
The code is extracted from the nowiki stripmarker, so |output5= is not required.