我有一个 MediaWiki 正在运行,它代表了一本德语术语词典及其对本地方言的翻译。每页包含一个术语、它的翻译和一些附加信息。
现在,对于字典的可打印版本,我需要完整导出所有术语及其翻译。由于这是页面内容的摘录,我想我需要以可解析格式完整导出最新版本的所有页面,例如xml 或 csv。
有没有人做过或者可以指点我一个工具?
我应该提到,我没有对服务器的完全访问权限,例如没有命令行,但我可以添加 MediaWiki 扩展或访问 MySQL 数据库。
最佳答案
您可以直接从数据库中导出页面内容。它将是原始 wiki 标记,就像使用 Special:Export 时一样。但是编写导出脚本会更容易,并且您无需确保所有页面都属于某个特殊类别。
下面是一个例子:
SELECT page_title, page_touched, old_text
FROM revision,page,text
WHERE revision.rev_id=page.page_latest
AND text.old_id=revision.rev_text_id;
如果您的 wiki 使用 Postgresql,则表“text”被命名为“pagecontent”,您可能需要指定架构。在这种情况下,相同的查询将是:
SET search_path TO mediawiki,public;
SELECT page_title, page_touched, old_text
FROM revision,page,pagecontent
WHERE revision.rev_id=page.page_latest
AND pagecontent.old_id=revision.rev_text_id;
关于export - 如何从 MediaWiki 的所有页面导出文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6739999/