⚠️ Warning: This is a draft ⚠️

This means it might contain formatting issues, incorrect code, conceptual problems, or other severe issues.

If you want to help to improve and eventually enable this page, please fork RosettaGit's repository and open a merge request on GitHub.

'''Uses:''' (tool name) ('''Component[s]:''' Component1, Component2, ComponentN )'''Uses:''' [[SMW::off]]{{#set:Uses {{{1}}}={{{1}}}/{{{2}}}}}<!--

-->[[Category:{{{2}}}]]<!--

There must be a component N=1, for there to be a component N>1. If there's no component N=1, then there's no reason to put any of the component list artifacts in. -->{{#if: {{{component1|}}}|<!--

--> (<!--

Is there more than one component? -->{{#if: {{{component2}}}|'''Components:''' |'''Component:''' }}<!--

-->{{#foreach: component$n$|<!--

-->[[SMW::on]]<!--

-->[[Uses {{{1}}}::{{{1}}}/{{{2}}}/{{{component$n$}}}|{{{component$n$}}}]], <!--

Ending #foreach -->}}<!--

Ending #if componentN -->}}<!--

Only apply if we have components. -->{{#if: {{{component1|}}}| ) }}<!--

Ending examplemeta div. -->

<!--

-->

This template is intended to handle the case where a {{{1}}} has many components within it (examples of this include CPAN, RubyGems and Tcllib). It has two required parameters: {{uses from|''{{{1}}}''|''component''}}. The ''{{{1}}}'' is the name of the overall {{{1}}} of components (which should also be the name of a category here on RC) and the ''component'' is the name of the component within it (which can be almost any string).

==Discussion== This template is derived from {{tmpl|tcllib}}, and seeks to have a similar aim, except more generically, and as a potential eventual replacement for {{tmpl|libheader}} and {{tmpl|works with}}. (And {{tmpl|tcllib}}, if it achieves sufficient functionality.)

What it does

  • Associates the page with the {{{1}}}: ** Semantically, as [[Uses {{{1}}}::{{{2}}}] ** As part of [[:Category:{{{2}}}]] (though this may eventually change) ** By linking to [[{{{1}}}/{{{2}}}]].
  • Associates the page with each component specified ** Semantically, as [[Uses {{{1}}}::{{{2}}}/{{{componentN}}}]] (Placing the component as a subpage of the {{{1}}} ** By linking to [[{{{1}}}/{{{2}}}/{{{componentN}}}]].

===What it needs to do (eventually)===

  • Associate {{{1}}} version information with the page.
  • Associate component version information with the page.

What it should do

  • Avoid using MediaWiki categories as possible.

The richer the relationships we can define, the more powerful the search options we'll have available.

{{template}}[[Category:Example description templates]]