Difference between revisions of "Versionsort"

From Sega Retro

 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
<includeonly>{{#vardefine:vin|{{#explode:{{{1|}}}|(|0}}}}{{#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>
+
|}}{{padleft:{{#explode:{{#var:vin}}|.|0}}|6|0}}{{padleft:{{#explode:{{#var:vin}}|.|1}}|6|0}}{{padleft:{{#explode:{{#var:vin}}|.|2}}|6|0}}{{padleft:{{#explode:{{#var:vin}}|.|3}}|6|0}}{{padleft:{{#explode:{{#var:vin}}|.|4}}|6|0}}</includeonly><noinclude>
 
Converts a version number into something a wiki table can sort. Letters and brackets are stripped/ignored.
 
Converts a version number into something a wiki table can sort. Letters and brackets are stripped/ignored.
  
Line 14: Line 14:
 
<nowiki>{{versionsort|4.5.6 (123)}}</nowiki> returns {{versionsort|4.5.6 (123)}}
 
<nowiki>{{versionsort|4.5.6 (123)}}</nowiki> returns {{versionsort|4.5.6 (123)}}
  
[[Category:Sega Retro templates]]
+
[[Category:Templates]]
 
</noinclude>
 
</noinclude>

Latest revision as of 18:00, 1 January 2022

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

Example:

{{versionsort|1.2.3}} returns 000001000002000003000000000000

{{versionsort|2.55.0.1}} returns 000002000055000000000001000000

{{versionsort|99.X.555 (Hello)}} returns 000099000000000555000000000000

{{versionsort|4.5.6 (123)}} returns 000004000005000006000000000000