Difference between revisions of "Template:List lookup helper"

From QBWiki
Jump to navigation Jump to search
m
m
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
<includeonly>{{#ifeq:{{#var:page_name}}|{{{1}}}|<!--
 
<includeonly>{{#ifeq:{{#var:page_name}}|{{{1}}}|<!--
 
If page name is previously defined AND it equals arg1 then this invocation of the template can be skipped. This maintains the invariant of "loaded exactly once" if this is transcluded in another template that is itself transcluded multiple times.
 
If page name is previously defined AND it equals arg1 then this invocation of the template can be skipped. This maintains the invariant of "loaded exactly once" if this is transcluded in another template that is itself transcluded multiple times.
-->|{{Add|invocations|1}}{{#vardefine:page_name|{{{1}}}}}{{#vardefine:loaded_page|{{:{{#var:page_name}}}}}}{{#vardefine:cleaned_page|{{#explode:{{#var:loaded_page}}|===|0}}}}{{#vardefine:minindex|0}}{{#vardefine:maxindex|1}}<!--
+
-->|{{Add|invocations|1}}{{#vardefine:page_name|{{{1}}}}}{{#vardefine:loaded_page|{{:{{#var:page_name}}}}}}{{#vardefine:cleaned_page|{{#explode:{{#var:loaded_page}}|==|0}}}}{{#vardefine:minindex|0}}{{#vardefine:maxindex|1}}<!--
 
Find the upper bound of the size in steps of 2^n
 
Find the upper bound of the size in steps of 2^n
 
-->{{#while:
 
-->{{#while:
Line 21: Line 21:
 
* page_name - the page name provided as arg1
 
* page_name - the page name provided as arg1
 
* loaded_page - the text of page_name
 
* loaded_page - the text of page_name
* cleaned_page - the text of page_name before the first section header ("<nowiki>===</nowiki>")
+
* cleaned_page - the text of page_name before the first section header ("<nowiki>==</nowiki>")
 
* length - the length of the list
 
* length - the length of the list
 
* entry_i - the entry in the list at position ''i'', where i is in <nowiki>[1, length-1]</nowiki> (0-indexed)
 
* entry_i - the entry in the list at position ''i'', where i is in <nowiki>[1, length-1]</nowiki> (0-indexed)
Line 30: Line 30:
 
{{:QBWiki:Quick links/lingo}}
 
{{:QBWiki:Quick links/lingo}}
 
{{List lookup helper|QBWiki:Quick links/lingo}}
 
{{List lookup helper|QBWiki:Quick links/lingo}}
 +
{{#var:cleaned_page}}
 
{{#var:length}}, {{#var:invocations}}
 
{{#var:length}}, {{#var:invocations}}
  
Line 37: Line 38:
 
{{:QBWiki:Quick links/lingo}}
 
{{:QBWiki:Quick links/lingo}}
 
{{List lookup helper|QBWiki:Quick links/lingo}}
 
{{List lookup helper|QBWiki:Quick links/lingo}}
 +
{{#var:cleaned_page}}
 
{{#var:length}}, {{#var:invocations}}
 
{{#var:length}}, {{#var:invocations}}
  
 
{{#loop:jj|1|{{#var:length}}|{{#var:entry_{{#var:jj}}}}<br/>}}
 
{{#loop:jj|1|{{#var:length}}|{{#var:entry_{{#var:jj}}}}<br/>}}
 
}}</noinclude>
 
}}</noinclude>

Latest revision as of 21:23, 14 December 2025

Template documentation

Given a list page, loads it exactly once and sets up enough variables it will not need to be loaded again to retrieve any entry. If this template has been invoked before with the same page_name, no-op.

  • page_name - the page name provided as arg1
  • loaded_page - the text of page_name
  • cleaned_page - the text of page_name before the first section header ("==")
  • length - the length of the list
  • entry_i - the entry in the list at position i, where i is in [1, length-1] (0-indexed)

There is also the housekeeping variable "invocations", which equals the number of times this template was resolved and should thus always be 1.

{{:QBWiki:Quick links/lingo}}
{{List lookup helper|QBWiki:Quick links/lingo}}
{{#var:cleaned_page}}
{{#var:length}}, {{#var:invocations}}

{{#loop:jj|1|{{#var:length}}|{{#var:entry_{{#var:jj}}}}<br/>}}


  • Wondering why people keep saying "m"?
  • Confused what a "vulcher" is?
  • Want to find out about "superpowers"?
  • Wondering just what makes something "important"?
  • Heard something about the "canon"?


  • Wondering why people keep saying "m"?
  • Confused what a "vulcher" is?
  • Want to find out about "superpowers"?
  • Wondering just what makes something "important"?
  • Heard something about the "canon"?

5, 1

Wondering why people keep saying "m"?
Confused what a "vulcher" is?
Want to find out about "superpowers"?
Wondering just what makes something "important"?
Heard something about the "canon"?