为 wiki 制作一个更简单的解析器函数

Making a simpler parser function for a wiki

我需要一个关于游戏 (Alphabetty Wiki) 的 wiki 模板,该模板在给定特定级别(例如“42”->“1-50”)时提供一系列级别

我可以使用多个#ifexpr 来制作一个,但我现在想知道是否有更简单的解决方案。 我尝试使用 #switch,但它看起来更笨重。

我问这个只是为了更多地了解解析器函数,因为我制作的模板已经可以使用了。

模板:

{{#ifexpr:{{{1|}}}<=50|1-50|<!--
-->{{#ifexpr:{{{1|}}}<=95|51-95|<!--
-->{{#ifexpr:{{{1|}}}<=140|96-140|<!--
-->{{#ifexpr:{{{1|}}}<=185|141-185|<!--
-->{{#ifexpr:{{{1|}}}<=230|186-230|<!--
-->{{#ifexpr:{{{1|}}}<=275|231-275|<!--
-->{{#ifexpr:{{{1|}}}<=320|276-320|<!--
-->{{#ifexpr:{{{1|}}}<=365|321-365|<!--
-->{{#ifexpr:{{{1|}}}<=410|366-410|<!--
-->{{#ifexpr:{{{1|}}}<=455|411-455|<!--
-->{{#ifexpr:{{{1|}}}<=500|456-500|<!--
-->{{#ifexpr:{{{1|}}}<=545|501-545|<!--
-->{{#ifexpr:{{{1|}}}<=590|546-590|<!--
-->{{#ifexpr:{{{1|}}}<=620|591-620|<!--
-->{{#ifexpr:{{{1|}}}<=650|621-650|<!--
-->{{#ifexpr:{{{1|}}}<=680|651-680|<!--
-->{{#ifexpr:{{{1|}}}<=710|681-710|<!--
-->{{#ifexpr:{{{1|}}}<=740|711-740|<!--
-->{{#ifexpr:{{{1|}}}<=770|741-770|<!--
-->{{#ifexpr:{{{1|}}}<=800|771-800|<!--
-->{{#ifexpr:{{{1|}}}<=830|801-830|<!--
-->{{#ifexpr:{{{1|}}}<=860|831-860|<!--
-->{{#ifexpr:{{{1|}}}<=890|861-890|891-920}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

如果您了解 wikicode 的工作原理,您可以直接在 wiki 上进行测试(您不需要帐户即可进行编辑,切换到“源代码编辑器”):https://alphabettysaga.fandom.com/fr/wiki/Mod%C3%A8le:Chapitre?action=edit

感谢您的宝贵时间。

{{{#expr:}}使用一些算术:

<includeonly>{{#ifexpr:{{{1|}}}<=50|1-50|{{#ifexpr:{{{1|}}}<=590|<!--

range length is 45

-->{{#expr: 51 + trunc ( ( {{{1|}}} - 50 ) / 45 ) * 45 }}-{{#expr: 95 + trunc ( ( {{{1|}}} - 50 ) / 45 ) * 45 }}|{{#ifexpr:{{{1|}}} <= 890|<!--

range length is 30

-->{{#expr: 591 + trunc ( ( {{{1|}}} - 590 ) / 30 ) * 30 }}-{{#expr: 620 + trunc ( ( {{{1|}}} - 590 ) / 30 ) * 30 }}|

891-920
}} }} }}</includeonly><noinclude>
{| class="wikitable"
! Level !! Range
|-
| 5 || {{Range|5}}
|-
| 45 || {{Range|45}}
|-
| 55 || {{Range|55}}
|-
| 100 || {{Range|100}}
|-
| 585 || {{Range|585}}
|-
| 595 || {{Range|595}}
|-
| 885 || {{Range|885}}
|-
| 895 || {{Range|895}}
|}</noinclude>