2

在 Ubuntu 平台上,我安装了漂亮的小 perl 脚本

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

在 cpan上可用。我不熟悉 perl,也不知道如何使用这个库来编写一个将 mediawiki 文件转换为 html 文件的 perl 脚本。例如,我只想有一个可以运行的脚本,例如

./my_convert_script input.wiki > output.html

(也许还指定基本 url 等),但不知道从哪里开始。有什么建议么?

4

2 回答 2

2

我相信@amon 是正确的,我在问题中引用的 perl 库不是我提出的任务的正确工具。

我最终使用mediawiki API和 action="parse" 使用 mediawiki 引擎转换为 HTML,结果证明它比我尝试在列表中提出的任何替代解析器更可靠。(然后我使用 pandoc 将我的 html 转换为 markdown。) 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)
}
于 2012-09-28T00:57:39.863 回答
1

Perl 库Text::MediawikiFormat并不是真正为独立使用而设计的,而是作为更大应用程序中的格式化引擎。

CPAN的文档确实展示了如何使用这个库的方法,并且确实注意到其他模块可能为一次性转换提供更好的支持。

你可以试试这个(未经测试的)单线

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

尽管这违背了该模块的全部要点(和定制能力)。

我确信有人已经想出了一个更好的方法来转换单个 MediaWiki 文件,所以这里是mediawiki 网站上的替代 MediaWiki 处理器列表。这个SO question也可以提供帮助。

其他标记语言,例如Markdown为单文件转换提供了更好的支持。Markdown 特别适合技术文档和反映电子邮件约定。(此外,它在本网站上使用。)


Ubuntu 存储库中的libfoo-bar-perl软件包是预编译的 Perl 模块。通常,这些将通过cpan或安装cpanm。虽然其中一些库确实包含脚本,但大多数不包含,也不意味着作为独立应用程序。

于 2012-09-27T22:05:40.117 回答