Template:Uses from: Difference between revisions
(Some basic usage instructions) |
(→Discussion: Cleaned up formatting. Should hopefully be easier to read.) |
||
Line 11: | Line 11: | ||
Other ultimate goals that make its behavior variously different from current {{tmpl|tcllib}}, {{tmpl|libheader}} and {{tmpl|works with}}: |
Other ultimate goals that make its behavior variously different from current {{tmpl|tcllib}}, {{tmpl|libheader}} and {{tmpl|works with}}: |
||
* Avoid using MW categories. Use semantic properties instead. (MW categories have particular behavior when used in semantic queries.) |
* Avoid using MW categories. Use semantic properties instead. (MW categories have particular behavior when used in semantic queries.) |
||
* Apply the semantic property '''uses::{{{1}}}''' |
* 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 '''component''') Add a semantic property to the page indicating that it uses {{{1}}}. |
* Accept an undefined number of additional ''named'' arguments as components of that library. (var name might be '''component''') Add a semantic property to the page indicating that it uses {{{1}}}. |
||
** <tt>uses '''{{{1}}}''' component::'''{{{component}}}'''</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}}} |
* Accept library version as a single named argument. (var name might be '''version''') Tag the transcluding page as using that version of library {{{1}}}. |
||
** If {{{component}}} is supplied, also apply '''uses {{{1}}} version {{{version}}} component::{{{component}}}' and '''uses {{{1}}} component {{{component}}} version::{{{version}}}'''. |
|||
** <tt>uses '''{{{1}}}''' version:'''{{{version}}}'''</tt>. |
|||
* For each {{{component}}} supplied, if any, apply |
|||
** <tt>uses '''{{{1}}}''' version '''{{{version}}}''' component::'''{{{component}}}'''</tt>. |
|||
** <tt>uses '''{{{1}}}''' component '''{{{component}}}''' version::'''{{{version}}}'''</tt>. |
|||
The richer the relationships we can define, the more powerful the search options we'll have available. |
The richer the relationships we can define, the more powerful the search options we'll have available. |
Revision as of 12:51, 12 November 2010
This template is intended to handle the case where a library has many components within it (examples of this include CPAN, RubyGems and Tcllib). It has two required parameters: {{uses from|library|component}}. The library is the name of the overall library 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 {{tcllib}}, and seeks to have a similar aim, except more generically, and as a potential eventual replacement for {{libheader}} and {{works with}}. (And {{tcllib}}, if it achieves sufficient functionality.)
Design goals in common with {{tcllib}}, {{libheader}} and {{works with}}:
- Use {{{1}}} as the library name.
Other ultimate goals that make its behavior variously different from current {{tcllib}}, {{libheader}} and {{works with}}:
- Avoid using MW categories. Use semantic properties instead. (MW categories have particular behavior when used in semantic queries.)
- Apply the semantic property uses::{{{1}}}
- Accept an undefined number of additional named arguments as components of that library. (var name might be component) Add a semantic property to the page indicating that it uses {{{1}}}.
- uses {{{1}}} component::{{{component}}}
- Accept library version as a single named argument. (var name might be version) Tag the transcluding page as using that version of library {{{1}}}.
- uses {{{1}}} version:{{{version}}}.
- For each {{{component}}} supplied, if any, apply
- uses {{{1}}} version {{{version}}} component::{{{component}}}.
- uses {{{1}}} component {{{component}}} version::{{{version}}}.
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.)