Как я могу использовать Perl Text-MediawikiFormat для преобразования mediawiki в xhtml?

На платформе Ubuntu я установил симпатичный маленький Perl-скрипт

libtext-mediawikiformat-perl - Convert Mediawiki markup into other text formats

который доступен на cpan. Я не знаком с Perl и понятия не имею, как использовать эту библиотеку для написания сценария Perl, который преобразует файл MediaWiki в HTML-файл. например, я хотел бы просто иметь скрипт, который я могу запустить, такой как

./my_convert_script input.wiki > output.html

(возможно, также указав базовый URL и т. д.), но понятия не имею, с чего начать. Какие-либо предложения?

2 ответа

Решение

Библиотека Perl Text::MediawikiFormat на самом деле не предназначен для автономного использования, а скорее как механизм форматирования внутри более крупного приложения.

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

Вы можете попробовать этот (не проверенный) один вкладыш

perl -MText::MediawikiFormat -e'$/=undef; print Text::MediawikiFormat::format(<>)' input.wiki >output.html

хотя это бросает вызов всему смыслу (и способностям настройки) этого модуля.

Я уверен, что кто-то уже придумал лучший способ конвертировать отдельные файлы MediaWiki, поэтому вот список альтернативных процессоров MediaWiki на сайте mediawiki. Этот ТАК вопрос может также помочь.

Другие языки разметки, такие как Markdown, обеспечивают лучшую поддержку преобразования в один файл. Markdown особенно хорошо подходит для технических документов и соглашений по электронной почте. (Также он используется на этом сайте.)


libfoo-bar-perl пакеты в репозиториях Ubuntu - это предварительно скомпилированные модули Perl. Обычно они устанавливаются через cpan или же cpanm, Хотя некоторые из этих библиотек содержат сценарии, большинство из них не содержат и не предназначены для использования в качестве автономных приложений.

Я считаю, @amon правильно, что библиотека Perl, на которую я ссылаюсь в этом вопросе, не является подходящим инструментом для предложенной мной задачи.

В итоге я использовал mediawiki API с action="parse" для преобразования в HTML с помощью движка mediawiki, который оказался намного более надежным, чем любой из альтернативных парсеров, которые я пробовал в списке. (Затем я использовал pandoc для преобразования моего html в уценку.) MediaWiki API также обрабатывает извлечение категорий и других метаданных, и мне просто нужно было добавить базовый URL к внутренним изображениям и ссылкам на страницы.

Учитывая заголовок страницы и базовый URL, я написал это как функцию R.

wiki_parse <- function(page, baseurl, format="json", ...){
  require(httr)
  action = "parse"
  addr <- paste(baseurl, "/api.php?format=", format, "&action=", action, "&page=", page, sep="")
  config <- c(add_headers("User-Agent" = "rwiki"), ...)
  out <- GET(addr, config=config)
  parsed_content(out)
}
Другие вопросы по тегам