Difference between revisions of "Versionsort"
From Sega Retro
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}}|)}}}} | ||
− | |}}{{ | + | |}}{{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. | ||
Revision as of 13:46, 10 November 2019
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