如何使用Perl文本MediawikiFormat将mediawiki转换为xhtml?
在Ubuntu平台上,我安装了漂亮的小perl脚本如何使用Perl文本MediawikiFormat将mediawiki转换为xhtml?,html,perl,converter,mediawiki,wikitext,Html,Perl,Converter,Mediawiki,Wikitext,在Ubuntu平台上,我安装了漂亮的小perl脚本 libtext-mediawikiformat-perl - Convert Mediawiki markup into other text formats 这是可用的。我不熟悉perl,也不知道如何使用这个库编写将mediawiki文件转换为html文件的perl脚本。e、 我只想有一个脚本,我可以运行,如 ./my_convert_script input.wiki > output.html (可能还指定了基本url等),但不
libtext-mediawikiformat-perl - Convert Mediawiki markup into other text formats
这是可用的。我不熟悉perl,也不知道如何使用这个库编写将mediawiki文件转换为html文件的perl脚本。e、 我只想有一个脚本,我可以运行,如
./my_convert_script input.wiki > output.html
(可能还指定了基本url等),但不知道从何处开始。有什么建议吗?Perl库
Text::MediawikiFormat
并非真正用于独立使用,而是作为更大应用程序中的格式化引擎
实际上,展示了如何使用这个库,并注意到其他模块可能会为一次性转换提供更好的支持
你可以试试这条(未经测试的)单班轮
perl -MText::MediawikiFormat -e'$/=undef; print Text::MediawikiFormat::format(<>)' input.wiki >output.html
perl-MText::MediawikiFormat-e'$/=undf;打印文本::MediawikiFormat::format()'input.wiki>output.html
尽管这违背了本模块的全部要点(和定制能力)
我确信已经有人想出了一种更好的方法来转换单个MediaWiki文件,所以这里是MediaWiki网站上的一个例子。这也会有所帮助
其他标记语言(例如)为单文件转换提供了更好的支持。降价特别适用于技术文档和电子邮件约定。(此外,它也用于此站点。)
Ubuntu存储库中的
libfoo-bar perl
包是预编译的perl模块。通常,这些将通过cpan
或cpanm
安装。虽然这些库中有一些确实包含脚本,但大多数不包含脚本,也不是作为独立应用程序使用。我认为@amon是正确的,我在问题中引用的perl库不是适合我提出的任务的工具
最后,我使用with the 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)
}
wiki\u谢谢你的回答。我从一个非常普通的问题和一系列可选的MediaWiki处理器开始,但在尝试了一些不起作用或只支持MediaWiki语法的子集之后,我想我最好去别的地方看看。(其他答案也没什么用处,因为pandoc对mediawiki只有一种方式。)我完全同意降价会更好——我的目标是从我的旧mediawiki页面中删除所有旧内容,并将其全部转换为降价。令人惊讶的是,考虑到mediawiki工具比markdown旧得多,它并不容易找到。@cboetting一个可能的原因是没有真正的方法将wikitext转换为markdown。最多可以将wikitext的一个子集转换为markdown,但这仍然很困难,因为wikitext不是一种定义的标记语言。现在事情可能变得更容易了,这使得wikitext解析更加“科学”。不重新发明MediaWiki解析器,这是一个巨大的+1。)