Difference between revisions of "Template:ListEdges"

From AtlasWiki
Jump to: navigation, search
(Switching to permitted and specified edges, instead of just one class of edge relationships)
(removing the trailing empty line from the tables)
 
(One intermediate revision by the same user not shown)
Line 41: Line 41:
 
 
 
We gather the information on inherited edges as well, then defer to a helper template to print the actual tables
 
We gather the information on inherited edges as well, then defer to a helper template to print the actual tables
 +
 +
There's one tricky bit here: we need to have a <PARENT_SEP> separator if and only if a parent actually contributes connections. We do that by not using the separator argument of the #arrayprint:parentsArray, and instead printing <PARENT_SEP> after each one...which results in one small problem: there's an extra <PARENT_SEP> on the end that we need to remove...so we parse the result into an array again, slice off the final element with #arrayslice, and re-print it using <PARENT_SEP> as the separator.
 
 
 
--></noinclude>{{ListEdges.generateTable
 
--></noinclude>{{ListEdges.generateTable
Line 47: Line 49:
 
| nodeTitle = <abbr title="The node that the edge comes from">Predecessor</abbr>
 
| nodeTitle = <abbr title="The node that the edge comes from">Predecessor</abbr>
 
| uninheritedEdges = {{#arrayprint:specifiedInEdges|<EDGE_SEP>}}
 
| uninheritedEdges = {{#arrayprint:specifiedInEdges|<EDGE_SEP>}}
| inheritedEdges = {{#arrayprint:parentsArray|<PARENT_SEP>|@@@@|{{#if:{{EdgesTo|@@@@|specified}}|@@@@<PARENT>{{EdgesTo|@@@@|specified}} }} }}
+
| inheritedEdges = {{#arraydefine:temp|{{#arrayprint:parentsArray||@@@@|{{#if:{{EdgesTo|@@@@|specified}}|@@@@<PARENT>{{EdgesTo|@@@@|specified}}<PARENT_SEP>}} }}|<PARENT_SEP>|}}{{#arrayslice:temp|temp|0|{{#expr:{{#arraysize:temp}}-1}}}}{{#arrayprint:temp|<PARENT_SEP>|@@@@|@@@@}}
 
}}{{ListEdges.generateTable
 
}}{{ListEdges.generateTable
 
| title = Specified Out Edges
 
| title = Specified Out Edges
Line 53: Line 55:
 
| nodeTitle = <abbr title="The node that the edge points to">Successor</abbr>
 
| nodeTitle = <abbr title="The node that the edge points to">Successor</abbr>
 
| uninheritedEdges = {{#arrayprint:specifiedOutEdges|<EDGE_SEP>}}
 
| uninheritedEdges = {{#arrayprint:specifiedOutEdges|<EDGE_SEP>}}
| inheritedEdges = {{#arrayprint:parentsArray|<PARENT_SEP>|@@@@|{{#if:{{EdgesFrom|@@@@|specified}}|@@@@<PARENT>{{EdgesFrom|@@@@|specified}} }} }}
+
| inheritedEdges = {{#arraydefine:temp|{{#arrayprint:parentsArray||@@@@|{{#if:{{EdgesFrom|@@@@|specified}}|@@@@<PARENT>{{EdgesFrom|@@@@|specified}}<PARENT_SEP>}} }}|<PARENT_SEP>|}}{{#arrayslice:temp|temp|0|{{#expr:{{#arraysize:temp}}-1}}}}{{#arrayprint:temp|<PARENT_SEP>|@@@@|@@@@}}
 
}}{{ListEdges.generateTable
 
}}{{ListEdges.generateTable
 
| title = Known Possible In Edges
 
| title = Known Possible In Edges
Line 59: Line 61:
 
| nodeTitle = <abbr title="The node that the edge comes from">Predecessor</abbr>
 
| nodeTitle = <abbr title="The node that the edge comes from">Predecessor</abbr>
 
| uninheritedEdges = {{#arrayprint:permittedInEdges|<EDGE_SEP>}}
 
| uninheritedEdges = {{#arrayprint:permittedInEdges|<EDGE_SEP>}}
| inheritedEdges = {{#arrayprint:parentsArray|<PARENT_SEP>|@@@@|{{#if:{{EdgesTo|@@@@|permitted}}|@@@@<PARENT>{{EdgesTo|@@@@|permitted}} }} }}
+
| inheritedEdges = {{#arraydefine:temp|{{#arrayprint:parentsArray||@@@@|{{#if:{{EdgesTo|@@@@|permitted}}|@@@@<PARENT>{{EdgesTo|@@@@|permitted}}<PARENT_SEP>}} }}|<PARENT_SEP>|}}{{#arrayslice:temp|temp|0|{{#expr:{{#arraysize:temp}}-1}}}}{{#arrayprint:temp|<PARENT_SEP>|@@@@|@@@@}}
 
}}{{ListEdges.generateTable
 
}}{{ListEdges.generateTable
 
| title = Known Possible Out Edges
 
| title = Known Possible Out Edges
Line 65: Line 67:
 
| nodeTitle = <abbr title="The node that the edge points to">Successor</abbr>
 
| nodeTitle = <abbr title="The node that the edge points to">Successor</abbr>
 
| uninheritedEdges = {{#arrayprint:permittedOutEdges|<EDGE_SEP>}}
 
| uninheritedEdges = {{#arrayprint:permittedOutEdges|<EDGE_SEP>}}
| inheritedEdges = {{#arrayprint:parentsArray|<PARENT_SEP>|@@@@|{{#if:{{EdgesFrom|@@@@|permitted}}|@@@@<PARENT>{{EdgesFrom|@@@@|permitted}} }} }}
+
| inheritedEdges = {{#arraydefine:temp|{{#arrayprint:parentsArray||@@@@|{{#if:{{EdgesFrom|@@@@|permitted}}|@@@@<PARENT>{{EdgesFrom|@@@@|permitted}}<PARENT_SEP>}} }}|<PARENT_SEP>|}}{{#arrayslice:temp|temp|0|{{#expr:{{#arraysize:temp}}-1}}}}{{#arrayprint:temp|<PARENT_SEP>|@@@@|@@@@}}
 
}}
 
}}

Latest revision as of 14:03, 12 May 2014

For use on node kind pages, automatically lists edges declared on the current page.

If the parameter "parents" is given a comma-separated list of the parents of the node, inherited edges will also be listed.