User:Stux/getCurrPage-lookup Template

From Homestar Runner Wiki

(Difference between revisions)
Jump to: navigation, search
(the name parameter needs to handle transclusion correctly)
(My nesting was all over the place! ok, i think this should fix it.)
Line 1: Line 1:
{{<!--
{{<!--
-->{{{1}}}<!-- /* call a template based on 1st parameter, we want to get a value by index */
-->{{{1}}}<!-- /* call a template based on 1st parameter, we want to get a value by index */
-
-->|{{<!--
+
-->|{{#expr: <!-- /* we want to add an offset to the returned index */
-
-->{{#expr: <!-- /* we want to add an offset to the returned index */
+
  -->{{<!--
   -->{{{1}}}<!-- /* call the template again to get its index by name */
   -->{{{1}}}<!-- /* call the template again to get its index by name */
   -->|{{#if:{{{name|}}}|{{{name|}}}|{{PAGENAME}}}}<!-- /* by default, if a name isn't specified, use {{PAGENAME}}. */
   -->|{{#if:{{{name|}}}|{{{name|}}}|{{PAGENAME}}}}<!-- /* by default, if a name isn't specified, use {{PAGENAME}}. */
Line 8: Line 8:
-->+{{#if:{{{next|}}}|1|{{#if:{{{prev|}}}|-1|0}}}}<!-- /* calculate offset
-->+{{#if:{{{next|}}}|1|{{#if:{{{prev|}}}|-1|0}}}}<!-- /* calculate offset
-->}}<!-- /* end #expr: */
-->}}<!-- /* end #expr: */
-
-->}}<!-- /* end first call */ -->
+
-->}}<!-- /* end first call */ --><noinclude>
-
<noinclude>
+
This crazy meta-template will query another template for its nav index or name based on the current <code><nowiki>{{PAGENAME}}</nowiki></code> value.  Optionally, it can also provide the next and previous name/index values based on the same criteria.
This crazy meta-template will query another template for its nav index or name based on the current <code><nowiki>{{PAGENAME}}</nowiki></code> value.  Optionally, it can also provide the next and previous name/index values based on the same criteria.

Revision as of 11:00, 26 January 2021

{{{{{1}}}|Expression error: Unrecognised punctuation character "{"}}

This crazy meta-template will query another template for its nav index or name based on the current {{PAGENAME}} value. Optionally, it can also provide the next and previous name/index values based on the same criteria.

Usage

{{getCurrPage-lookup|template-name|[name=alternative name]|[prev=1]|[next=1]}}
  • template-name — the template to use to query the name and index
  • name — (optional) the name to use for lookup, otherwise use {{PAGENAME}}
  • prev — if set, return the previous item in the nav list
  • next — if set, return the next item in the nav list

Note: if both prev and next are set, only next is obeyed. If neither are set, the template returns the lookup value for the current name. In most cases this will be the value of {{PAGENAME}} itself (and so using {{PAGENAME}} directly would be more efficient!)

Expected Input Template Parameter Format

We expect the template to take the following parameters:

{{template-name|idx or name (to lookup)|[n=1]}}

The optional n=1 parameter determines whether the lookup is by index or by name:

{{template-name|idx}}

This returns a full (or sometimes partial) page name value based on its nav index. Also,

{{template-name|name|n=1}}

Would return a nav index value based on a Page Name.

Personal tools