1

我正在创建一个自定义的 Wiki 标记解析器/解释器。然而,在解释这些函数方面有一项艰巨的任务:

{{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)"

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

4

1 回答 1

3

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

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

于 2016-02-02T13:48:21.677 回答