2016-01-31 2 views
0

Я создаю настраиваемый парсер/интерпретатор Wiki Markup. Существует большая задача, однако в отношении к интерпретации функций, подобные этим:Как я могу преобразовать разметку Wikitext, содержащую функции двойной фигурной скобки, в plaintext или html?

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

который преобразуется следующим образом:

500 feet (152 m)  

Я хотел бы избежать необходимости вручную кода интерпретации этих функций, и предпочел бы использовать метод, где я запрос в строке

[email protected]:~$ wiki-to-text "convert|3|to(-)|6|ft|abbr=on}}" 

и получить возврат:

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

Есть ли инструмент для этого? Оффлайн - это, безусловно, самое идеальное решение, но я мог бы жить с необходимостью запрашивать сервер.

ответ

2

Вы можете запросить MediaWiki api, чтобы получить анализируемый текст из wikitext. Например. для синтаксического анализа шаблона. Шаблон: Сделано из английской википедии, которую вы могли бы использовать: https://en.wikipedia.org/w/api.php?action=parse&text={{Template:done}}&title=Test (см. online docs for parse). Вам, однако, нужен экземпляр MediaWiki, который предоставляет шаблон, который вы хотите проанализировать, и который работает точно так же. Если вы устанавливаете локальный веб-сервер, вы также можете установить свой собственный экземпляр MediaWiki и локализовать wikitext.

Btw .: Также есть Parsoid project, который реализует парсер wikitext-> html-> wikitext на основе узлов. Тем не менее, он, iirc, все равно должен запрашивать api wiki для анализа шаблонов.

Смежные вопросы