如何将包含双大括号函数的 Wikitext 标记转换为纯文本或 html?

Aki*_*iva 2 markup wiki mediawiki wikipedia wikitext

我正在创建一个定制的 Wiki 标记解析器/解释器。然而,解释这样的函数是一项艰巨的任务:

\n\n
{{convert|500|ft|m|0}}\n
Run Code Online (Sandbox Code Playgroud)\n\n

其转换如下:

\n\n
500 feet (152 m)    \n
Run Code Online (Sandbox Code Playgroud)\n\n

我想避免手动编码这些函数的解释,而宁愿采用查询字符串的方法

\n\n
+akiva@akiva-ThinkPad-X230:~$ wiki-to-text "convert|3|to(-)|6|ft|abbr=on}}"\n
Run Code Online (Sandbox Code Playgroud)\n\n

并获得以下回报:

\n\n
"3 to 6 ft (0.91\xe2\x80\x931.83 m)"\n
Run Code Online (Sandbox Code Playgroud)\n\n

有没有工具可以做到这一点?离线是迄今为止最理想的解决方案,但我可以忍受必须查询服务器。

\n

Flo*_*ian 5

您可以查询MediaWiki api以从 wikitext 获取解析后的文本。例如,要解析模板 Template:Done 从英文维基百科,您可以使用:(https://en.wikipedia.org/w/api.php?action=parse&text={{Template:done}}&title=Test请参阅在线文档以了解 parse)。但是,您需要一个 MediaWiki 实例来提供您想要解析的模板,并且其工作方式完全相同。如果您在本地安装网络服务器,您也可以安装自己的 MediaWiki 实例并在本地解析 wiki 文本。

顺便说一句:还有Parsoid 项目,它实现了一个基于节点的 wikitext->html->wikitext 解析器。然而,iirc仍然需要查询wiki的api来解析模板。