Difference between revisions of "Versionsort"

From Sega Retro

Line 1: Line 1:
<includeonly>{{#vardefine:vin|{{{1|}}}}}{{#iferror:{{#expr:{{#var:vin}}}}|
+
<includeonly>{{#vardefine:vin|{{#explode:{{{1|}}}|(|0}}}}{{#iferror:{{#expr:{{#var:vin}}}}|
 
{{#vardefine:vin|{{lc:{{#var:vin}}}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|a}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|b}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|c}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|d}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|e}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|f}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|g}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|h}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|i}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|j}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|k}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|l}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|m}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|n}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|o}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|p}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|q}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|r}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|s}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|t}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|u}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|v}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|w}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|x}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|y}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|z}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}| }}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|(}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|)}}}}
 
{{#vardefine:vin|{{lc:{{#var:vin}}}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|a}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|b}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|c}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|d}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|e}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|f}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|g}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|h}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|i}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|j}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|k}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|l}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|m}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|n}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|o}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|p}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|q}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|r}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|s}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|t}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|u}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|v}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|w}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|x}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|y}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|z}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}| }}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|(}}}}{{#vardefine:vin|{{#replace:{{#var:vin}}|)}}}}
 
|}}{{#pad:{{#explode:{{#var:vin}}|.|0}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|1}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|2}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|3}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|4}}|6|0}}</includeonly><noinclude>
 
|}}{{#pad:{{#explode:{{#var:vin}}|.|0}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|1}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|2}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|3}}|6|0}}{{#pad:{{#explode:{{#var:vin}}|.|4}}|6|0}}</includeonly><noinclude>
Line 11: Line 11:
  
 
<nowiki>{{versionsort|99.X.555 (Hello)}}</nowiki> returns {{versionsort|99.X.555 (Hello)}}
 
<nowiki>{{versionsort|99.X.555 (Hello)}}</nowiki> returns {{versionsort|99.X.555 (Hello)}}
 +
 +
<nowiki>{{versionsort|4.5.6 (123)}}</nowiki> returns {{versionsort|4.5.6 (123)}}
  
 
[[Category:Sega Retro templates]]
 
[[Category:Sega Retro templates]]
 
</noinclude>
 
</noinclude>

Revision as of 17:02, 30 March 2017

Converts a version number into something a wiki table can sort. Letters and brackets are stripped/ignored.

Example:

{{versionsort|1.2.3}} returns {{#pad:1|6|0}}{{#pad:2|6|0}}{{#pad:3|6|0}}{{#pad:|6|0}}{{#pad:|6|0}}

{{versionsort|2.55.0.1}} returns {{#pad:2|6|0}}{{#pad:55|6|0}}{{#pad:0|6|0}}{{#pad:1|6|0}}{{#pad:|6|0}}

{{versionsort|99.X.555 (Hello)}} returns {{#pad:99|6|0}}{{#pad:|6|0}}{{#pad:555|6|0}}{{#pad:|6|0}}{{#pad:|6|0}}

{{versionsort|4.5.6 (123)}} returns {{#pad:4|6|0}}{{#pad:5|6|0}}{{#pad:6|6|0}}{{#pad:|6|0}}{{#pad:|6|0}}