Template:Uses from: Difference between revisions

Yanked version code for the time being. Rewrote description.
(Removed usage of version.)
(Yanked version code for the time being. Rewrote description.)
Line 1:
<div class="examplemeta libheader">'''Uses:''' [[SMW::off]]<!--
 
-->[[uses::Library/{{{1}}}|{{{1}}}]]<!--
-->{{#set:Uses library=Library/{{{1}}}}}<!--
 
Removed usage of 'version'
{{#if: {{{version|}}}|
 
[[SMW::on]]{{#set:Uses {{{1}}} version={{{version}}}}}[[SMW::off]]
 
Ending #if
}}
 
-->[[Category:{{{1}}}]]<!--
Line 37 ⟶ 29:
 
-->[[Uses library::Library/{{{1}}}/{{{component$n$}}}|{{{component$n$}}}]], <!--
 
(Removed use of 'version' for now.)
{{#if: {{{version|}}}
 
{#set:Uses Library/{{{1}}} version={{{version}}} component={{{component$n$}}}}}
{{#set:Uses {{{1}}} component={{{component$n$}}} version={{{version}}}}}
 
|}}
 
Ending #foreach
Line 62 ⟶ 46:
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===
Design goals in common with {{tmpl|tcllib}}, {{tmpl|libheader}} and {{tmpl|works with}}:
* UseAssociates {{{1}}}the aspage with the library name.:
** Semantically, as <tt><nowiki>[[Uses library::{{{1}}}]</nowiki></tt>
** As part of <tt>[[:Category:{{{1}}}]]</tt> (though this may eventually change)
** By linking to <tt>[[Library/{{{1}}}]]</tt>.
* Associates the page with each component specified
** Semantically, as <tt><nowiki>[[Uses library::{{{1}}}/{{{componentN}}}]]</nowiki></tt> (Placing the component as a subpage of the library
** By linking to <tt><nowiki>[[Library/{{{1}}}/{{{componentN}}}]]</nowiki></tt>.
 
===What it needs to do (eventually)===
Other ultimate goals that make its behavior variously different from current {{tmpl|tcllib}}, {{tmpl|libheader}} and {{tmpl|works with}}:
* Associate library version information with the page.
* Avoid using MW categories. Use semantic properties instead. (MW categories have particular behavior when used in semantic queries.)
* Associate component version information with the page.
* Apply the semantic property <tt>'''uses::{{{1}}}'''</tt>
* Accept an undefined number of additional ''named'' arguments as components of that library. (var name might be '''componentN''') Add a semantic property to the page indicating that it uses {{{1}}}.
** <tt>uses '''{{{1}}}''' component::'''{{{component1}}}''', '''{{{component2}}}''', etc...</tt>
* Accept library version as a single named argument. (var name might be '''version''') Tag the transcluding page as using that version of library {{{1}}}.
** <tt>uses '''{{{1}}}''' version:'''{{{version}}}'''</tt>.
* For each {{{componentN}}} supplied, if any, apply
** <tt>uses '''{{{1}}}''' version '''{{{version}}}''' component::'''{{{componentN}}}'''</tt>.
** <tt>uses '''{{{1}}}''' component '''{{{componentN}}}''' version::'''{{{version}}}'''</tt>.
 
We can probably define a componentNver parameter, and use per-component properties of:
* <tt>uses '''{{{1}}}''' version '''{{{version}}}''' component::'''{{{componentN}}}'''</tt>.
* <tt>uses '''{{{1}}}''' component '''{{{componentN}}}''' version::'''{{{componenNver}}}'''</tt>.
* <tt>uses '''{{{1}}}''' version '''{{{version}}}''' component '''{{{componentN}}}''' version::'''{{{componenNver}}}'''</tt>.
 
===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.
 
(Unless someone can figure out a better way to apply pagename/libname/component/version with the semantic properties.)
 
{{template}}[[Category:Example description templates]]</noinclude>