Difference between revisions of "Template:Tree"

From Green Family Wiki
Jump to: navigation, search
(Created page with "<noinclude>Apply a template to a string, and then recursively apply this function to each "child", as defined by a function. * First parameter: Root of the tree * Second param...")
 
m (13 revisions imported: Initial import from smithfam)
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<noinclude>Apply a template to a string, and then recursively apply this function to each "child", as defined by a function.
+
<noinclude>Apply a template to a string, and then recursively apply this template to each "child", as defined by a function.
 
* First parameter: Root of the tree
 
* First parameter: Root of the tree
 
* Second parameter: Delimiter used to separate each application of the template; default is comma+space
 
* Second parameter: Delimiter used to separate each application of the template; default is comma+space
 
* ''template'': Template to apply to each node (first parameter is the node; ''depth'' and ''index'' are the tree coordinates, 1-based)
 
* ''template'': Template to apply to each node (first parameter is the node; ''depth'' and ''index'' are the tree coordinates, 1-based)
* ''children'': Function mapping a parent to children (first parameter is the node; second parameter is the requested index, 1-based; empty indicates no more children)
+
* ''children'': Function mapping a parent to children (first parameter is the node; ''depth'' and ''index'' are the tree coordinates of the child, 1-based; empty result indicates no more children)
* ''skip root'': Whether the root of the tree should be skipped; if so, the root's children have depth 1
+
* ''start depth'': What depth to consider the root to be at; default is 1
</noinclude><includeonly>{{Tree/Subtree|{{{2|, }}}||
+
* ''skip root'': Whether the root of the tree should be skipped; if set, the root's children have the start depth
| currentparent={{{1|}}}
+
</noinclude><includeonly>{{#if:{{{1|}}}
| skip={{{skip root|}}}
+
| {{#if: {{#ifexist: {{{children}}} | yes}}{{#ifexist: Template:{{{children}}} | yes}}
| depth=1
+
| {{#if:{{{skip root|}}}
| count=1
+
| {{Tree/Children|{{{2|, }}}||
| template={{{template|}}}
+
  | current parent={{{1}}}
| children={{{children|}}}
+
  | current child={{{{{children}}}|{{{1}}}| depth={{#if:{{{start depth|}}}|{{{start depth}}}|1}} | index=1 }}
}}</includeonly>
+
  | depth={{#if:{{{start depth|}}}|{{{start depth}}}|1}}
 +
  | index=1
 +
  | template={{{template}}}
 +
  | children={{{children}}}
 +
  }}
 +
| {{Tree/Subtree|{{{2|, }}}|
 +
  | current parent={{{1}}}
 +
  | depth={{#if:{{{start depth|}}}|{{{start depth}}}|1}}
 +
  | index=1
 +
  | template={{{template}}}
 +
  | children={{{children}}}
 +
  }}
 +
}}
 +
| {{#if:{{{skip root|}}}||{{{{{template}}}|{{{1}}}| depth={{#if:{{{start depth|}}}|{{{start depth}}}|1}} | index=1}}}}
 +
}}}}</includeonly>

Latest revision as of 12:11, 7 December 2015

Apply a template to a string, and then recursively apply this template to each "child", as defined by a function.

  • First parameter: Root of the tree
  • Second parameter: Delimiter used to separate each application of the template; default is comma+space
  • template: Template to apply to each node (first parameter is the node; depth and index are the tree coordinates, 1-based)
  • children: Function mapping a parent to children (first parameter is the node; depth and index are the tree coordinates of the child, 1-based; empty result indicates no more children)
  • start depth: What depth to consider the root to be at; default is 1
  • skip root: Whether the root of the tree should be skipped; if set, the root's children have the start depth