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

时间:2016-01-31 14:31:57

标签: mediawiki wiki markup wikipedia wikitext

我正在创建一个自定义的Wiki Markup解析器/解释器。然而,在解释这些功能方面有一项重大任务:

{{convert|500|ft|m|0}}

转换如下:

500 feet (152 m)    

我希望避免手动编写这些函数的解释,而宁愿使用我查询字符串的方法

+akiva@akiva-ThinkPad-X230:~$ wiki-to-text "convert|3|to(-)|6|ft|abbr=on}}"

并获得返回:

"3 to 6 ft (0.91–1.83 m)"

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

1 个答案:

答案 0 :(得分:2)

您可以查询MediaWiki api以从wikitext获取已解析的文本。例如。解析模板模板:从您可以使用的英语维基百科中完成:https://en.wikipedia.org/w/api.php?action=parse&text={{Template:done}}&title=Test(参见online docs for parse)。但是,您需要一个MediaWiki实例,该实例提供您要解析的模板,并且其工作方式完全相同。如果您在本地安装Web服务器,则可以安装自己的MediaWiki实例并在本地解析wiki文本。

Btw。:还有Parsoid project,它实现了基于节点的wikitext-> html-> wikitext解析器。但是,iirc仍然需要查询wiki的api来解析模板。