Difference between revisions of "Template:Metadata id"

From wiki.vg
Jump to navigation Jump to search
m (... and that's not how ifeq works)
(One other way?)
Line 3: Line 3:
 
     {{#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}}}}}}
     {{#ifeq: {{{1|unchanged}}} | added |
+
     {{#switch: {{{1|}}}
 +
    | added =
 
         {{change||{{#var:pre_meta}}}}
 
         {{change||{{#var:pre_meta}}}}
 
         {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
 
         {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
     |{{#ifeq: {{{1|unchanged}}} | removed |
+
     | removed =
 
         {{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}}}}
     |{{#ifeq: {{{1|unchanged}}} | unchanged |
+
     | =
 +
    | 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}}}}
 
         {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
 
         {{#vardefine:meta_pre_{{#var:meta_current_entity}}|{{#expr:{{#var:pre_meta}}+1}}}}
     | <!-- Note: #switch seems to give really broken results -->
+
     | #default =
 
         <strong class="error">Invalid parameter to [[Template:Metadata id]] {{{1}}}</strong>
 
         <strong class="error">Invalid parameter to [[Template:Metadata id]] {{{1}}}</strong>
     }}}}}}
+
     }}
 
| <!-- Full release mode -->
 
| <!-- Full release mode -->
 
     {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}
 
     {{#vardefineecho:cur_meta|{{#var:meta_{{#var:meta_current_entity}}}}}}

Revision as of 03:02, 3 May 2019

Used to generate incremental entity metadata IDs.

cur_meta and pre_meta are local variables, to avoid redundancy. meta_current_entity is defined elsewhere, 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 unchanged (default), added, or removed, which can be used to mark metadata entries that were added or removed in the prerelease.