Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Perl文本MediawikiFormat将mediawiki转换为xhtml?_Html_Perl_Converter_Mediawiki_Wikitext - Fatal编程技术网

如何使用Perl文本MediawikiFormat将mediawiki转换为xhtml?

如何使用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等),但不

在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等),但不知道从何处开始。有什么建议吗?

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。)