Difference between revisions of "Template:Metadata id"

From wiki.vg
Jump to navigation Jump to search
(I really hope that this does not work, since it wouldn't make sense)
(Add warning for non-empty first parameter)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<includeonly>
+
<includeonly>{{#if:{{#var:meta_prerelease}}|<!-- Prerelease mode -->
{{#if:{{#var:meta_prerelease}}|<!-- Prerelease mode -->
 
 
     {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
 
     {{#vardefine:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
 
     {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
 
     {{#vardefine:pre_meta|{{#var:meta_pre_{{#var:meta_current_entity}}}}}}
     {{#switch: {{#if:{{{1|}}}|{{{1}}}|unchanged}}
+
     {{#switch: {{{1}}}
 
     | added =
 
     | added =
 
         {{change||{{#var:pre_meta}}}}
 
         {{change||{{#var:pre_meta}}}}
Line 10: Line 9:
 
         {{change|{{#var:cur_meta}}|}}
 
         {{change|{{#var:cur_meta}}|}}
 
         {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
 
         {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
     | unchanged =
+
     | =
 
         {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{change|{{#var:cur_meta}}|{{#var:pre_meta}}}} }}
 
         {{#ifeq: {{#var:cur_meta}}|{{#var:pre_meta}} | {{#var:cur_meta}} | {{change|{{#var:cur_meta}}|{{#var:pre_meta}}}} }}
 
         {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
 
         {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
Line 20: Line 19:
 
     {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
 
     {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
 
     {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
 
     {{#vardefine:meta_{{#var:meta_current_entity}}|{{#expr:{{#var:cur_meta}}+1}}}}
 +
    {{#ifeq: {{{1}}}|||<strong class="error">[[Template:Metadata id]] must be used as <code><nowiki>{{Metadata id|}}</nowiki></code> (with an empty first parameter) for technical reasons</strong>}}
 
}}</includeonly><noinclude>
 
}}</includeonly><noinclude>
 
Used to generate incremental entity metadata IDs.
 
Used to generate incremental entity metadata IDs.
  
<code>cur_meta</code> and <code>pre_meta</code> are local variables, to avoid redundancy.  <code>meta_current_entity</code> is defined elsewhere, and <code>meta_<var>entity</var></code> and <code>meta_pre_<var>entity</var></code> are accessed via it.  Those two values are incremented after this template.
+
The simplest usage is <code><nowiki>{{Metadata id|}}</nowiki></code>; an empty first parameter is required to avoid caching issues (see [https://phabricator.wikimedia.org/T191574#4607891 T191574]).
  
Behavior changes if a <code>meta_prerelease</code> variable is defined: the template supports an optional parameter which may be set to <code>unchanged</code> (default), <code>added</code>, or <code>removed</code>, which can be used to mark metadata entries that were added or removed in the prerelease.
+
<code>cur_meta</code> and <code>pre_meta</code> are local variables, to avoid redundancy.  <code>meta_current_entity</code> is defined elsewhere (by <code><nowiki>{{</nowiki>[[Template:Metadata inherit|Metadata inherit]]<nowiki>}}</nowiki></code>), and <code>meta_<var>entity</var></code> and <code>meta_pre_<var>entity</var></code> are accessed via it.  Those two values are incremented after this template.
 +
 
 +
Behavior changes if a <code>meta_prerelease</code> variable is defined: the template supports an optional parameter which may be set to blank, <code>added</code>, or <code>removed</code>, which can be used to mark metadata entries that were added or removed in the prerelease.
 
</noinclude>
 
</noinclude>

Latest revision as of 06:35, 9 January 2020

Used to generate incremental entity metadata IDs.

The simplest usage is {{Metadata id|}}; an empty first parameter is required to avoid caching issues (see T191574).

cur_meta and pre_meta are local variables, to avoid redundancy. meta_current_entity is defined elsewhere (by {{Metadata inherit}}), and meta_entity and meta_pre_entity are accessed via it. Those two values are incremented after this template.

Behavior changes if a meta_prerelease variable is defined: the template supports an optional parameter which may be set to blank, added, or removed, which can be used to mark metadata entries that were added or removed in the prerelease.