【问题标题】:Convert MediaWiki wikitext format to HTML using command line使用命令行将 MediaWiki wikitext 格式转换为 HTML
【发布时间】:2012-03-09 18:40:56
【问题描述】:

我倾向于编写大量文档,因此 MediaWiki 格式对我来说很容易理解,而且与编写传统 HTML 相比,它为我节省了大量时间。然而,我也写了一篇博客,发现一直从键盘切换到鼠标来为 HTML 输入正确的标签会增加很多时间。我希望能够用 Mediawiki 语法编写我的文章,然后将其转换为 HTML 以在我的博客上使用。

我已经尝试过 Google-ing,但必须需要更好的命名法,因为令人惊讶的是我找不到任何东西。

我使用 Linux,并且更愿意从命令行执行此操作。

有人有什么想法或想法吗?

【问题讨论】:

标签: html linux command-line mediawiki wikitext


【解决方案1】:

This page 列出了您可以尝试的大量 MediaWiki 解析器。

【讨论】:

    【解决方案2】:

    对此进行了一些研究,并认为在这里采取的一个好方法是学习通用标记语言,如 restructuredtext 或 markdown,然后能够从那里进行转换。发现了一个名为 pandoc 的程序,它可以将其中任何一个转换为 HTML 和 Mediawiki。感谢您的帮助。

    例子:

    pandoc -f mediawiki -s myfile.mediawiki  -o myfile.html -s
    

    【讨论】:

    • 请不要。 Alternative parsers wikitext 总是非常脆弱,因为 wikitext 的设计方式(未)。
    • 我刚刚尝试 pandoc 作为将 mediawiki 转换为 tex 和 HTML 的答案的结果,我对结果非常满意。我不能说它的脆弱性,但如果你只是使用标题、列表等基础知识,它看起来非常好。它可以很好地与其他 UNIX 命令配合使用,因为它支持标准输入/标准输出 IO,这对管道非常有用。
    • Pandoc 无法识别完整的 wiki 标记。因此会有很多文章无法正确解析。我自己试过了。
    • @Waschbaer - 如果你还记得,它在哪种 mediawiki 语法上失败了?考虑使用它的读者可能不需要主要针对类似维基百科的用例的不受支持的功能。
    【解决方案3】:

    最好使用 MediaWiki 解析器。好消息是 MediaWiki 1.19 将为此提供一个命令行工具!

    免责声明:我编写了该工具。

    脚本是maintenance/parse.php 一些直接来自源代码的使用示例:

    自己输入文字,用 Control + D 结束:

    $ php maintenance/parse.php --title foo
    ''[[foo]]''^D
    <p><i><strong class="selflink">foo</strong></i>
    </p>
    $
    

    常用的文件输入法:

    $ echo "'''bold'''" > /tmp/foo.txt
    $ php maintenance/parse.php /tmp/foo.txt
    <p><b>bold</b>
    </p>$
    

    当然还有管道到标准输入:

    $ cat /tmp/foo | php maintenance/parse.php
    <p><b>bold</b>
    </p>$
    

    从今天开始,您可以从 http://svn.wikimedia.org/svnroot/mediawiki/trunk/phase3/maintenance/parse.php 获取脚本并将其放置在您的维护目录中。它应该适用于 MediaWiki 1.18

    该脚本将在 MediaWiki 1.19.0 中提供。

    【讨论】:

    • 其实这非常有用,正是我所需要的。感谢安托万的信息。
    • 我在尝试时收到错误“PHP 致命错误:在 /scratch4/dhruv/mediawiki-1.20.2/includes/db/DatabaseMysql.php 的第 326 行调用未定义的函数 mysql_error()”运行上述。知道如何解决吗?
    • 还有,为什么这个工具要加入--dbuser和--dbpass?
    • @dhruvbird eval.php 脚本是一个旧脚本,尚未迁移以识别--dbuser 和--dbpass :( 我已经填写了错误bugzilla.wikimedia.org/45254 来跟踪它,尽管那是不是什么高优先级项目=)
    • 我在使用 CDB 文件时遇到了一些权限问题,因此绕过它们的懒惰方法是使用 sudo。然后它起作用了。
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 2015-09-14
    相关资源
    最近更新 更多