【问题标题】:Possible to create ZIM file of whole Wiki? (my own, based on mediawiki)可以创建整个 Wiki 的 ZIM 文件吗? (我自己的,基于 mediawiki)
【发布时间】:2019-01-15 18:20:52
【问题描述】:

我想生成我们自己的 Wiki(在 Mediawiki 上运行)的离线 ZIM 版本。Collection extension 易于安装,但仅适用于选择单个页面,在下一步中可以将其组合成单个 ZIM 文件。

但是对于数百页的 wiki,这太难了,基于单页。我想要整个 wiki 的 zim-dump。我知道这是可能的,因为complete wikipedia 也有一个 zimfile。

但是,我找不到这是如何完成的。 有谁能帮忙吗? 提前致谢!

【问题讨论】:

  • 根据this page,维基百科 ZIM 转储是使用“Mediawiki DumpHTML extension 的黑客版本,带有额外的自定义脚本”创建的。
  • 所以如果我理解正确的话,目前根本不可能。也就是说:目前还没有软件可以做到这一点。无赖!

标签: mediawiki


【解决方案1】:

我不知道这个答案在多大程度上仍然相关,但它就在这里......

经过一番苦恼,我终于设法从我基于 MediaWiki 的私人 wiki 创建了一个 ZIM 文件:

  • 我从这个页面开始:OpenZIM - Build your ZIM file
  • 我测试了所有列出的可能性,但只有 mwoffliner 有效(对我而言)
  • 安装在VirtualBox(版本 6.0.0)Ubuntu 18.10 Desktop 来宾中完成,托管在 Mac 上(macOS Mojave,与 10.14.2)
    • 请注意,我最终将客户操作系统用作无头操作系统,因此图形界面变得无用,下一步将使用 Ubuntu 的服务器版本
  • 经过一番努力,我设法使mwoffliner 工作,但并非没有GitHub 上的开发人员的宝贵帮助

请在下面找到有关我所做操作的分步说明。请注意,主要指令来自openZIM on GitHubmwoffliner 分支,因此这些指令的大部分功劳归于它们。

NodeJS

$ sudo apt install curl
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash && source ~/.bashrc && nvm install stable && node --version

图像处理&Redis&git&meson&gcc&g++&pkg-config安装

$ sudo apt install jpegoptim advancecomp gifsicle pngquant imagemagick redis-server git meson g++ pkg-config libzim-dev

libzim-dev:从版本 2.0.0 手动升级到版本 >=4.0.0

1- 如果已经安装了 libzim 2.0.0 (libzim-dev),则继续卸载它,否则继续第 2 点。

$ sudo apt remove libzim-dev #removes libzim 2.0.0
$ sudo apt purge libzim-dev
$ sudo apt autoremove #removes libzim2

2- 安装 libzim 版本 >=4.0.0

$ sudo apt install cython3 liblzma-dev libgumbo-dev libicu-dev libmagic-dev libxapian-dev python-dev python-pip python-virtualenv zlib1g-dev
$ git clone https://github.com/openzim/libzim.git
$ cd libzim
$ meson . build
$ ninja -C build
$ sudo ninja -C build install
$ sudo ldconfig

ZimWriterFS 手动安装

(Source)

$ cd ~/Downloads/
$ sudo apt install librsvg2-bin
$ git clone https://github.com/openzim/zimwriterfs.git
$ cd zimwriterfs
$ meson . build
$ ninja -C build
$ sudo ninja -C build install
$ zimwriterfs
zimwriterfs usage page should appear

VirtualBox - 从主机操作系统访问 VirtualBox Guest

  • (Source)

    1. 启动 VirtualBox 6.x.x
    2. 菜单文件
    3. 选择主机网络管理器...
    4. 选择选项卡 DHCP 服务器
    5. 点击创建(窗口左上角)
    6. 选择启用服务器
    7. 服务器地址:192.168.56.2
    8. 服务器掩码 255.255.255.0
    9. 下界地址:192.168.56.3
    10. 上界地址:192.168.56.254
    11. 选择选项卡适配器
    12. 确认选择了“手动配置适配器”,
    13. IPv4 地址:192.168.56.1
    14. IPv4 网络掩码:255.255.255.0
    15. 点击关闭
    16. 右键单击客户机
    17. 选择设置...(或直接按 cmd-s)
    18. 选择标签网络
    19. 选择选项卡适配器 2
    20. 点击启用网络适配器
    21. 附加到:选择仅主机适配器
    22. 名称:vboxnet0
    23. 点击确定
    24. 启动客户机

mwoffliner 命令发出

此命令假定:

  • MediaWiki wiki 已启动并运行,
  • VirtualBox 将 IP 地址 192.168.56.5 分配给来宾操作系统(请参阅上面 VirtualBox - 从主机操作系统访问 VirtualBox 来宾部分下的说明)(使用 ifconfig 检查操作系统的 IP 地址)
  • LocalSettings.php$wgServer = "http://192.168.56.5";(用ifconfig检查操作系统的IP地址)
  • 您的维基名称是YourWiki
  • 包含您的 wiki 的 MediaWiki 文件夹位于 /var/www/html/(即 /var/www/html/YourWiki)中

实际命令

mwoffliner --mwUrl=http://192.168.56.5/YourWiki --adminEmail=foo@bar.net --verbose --redis=redis://127.0.0.1:6379 --mwWikiPath=/ --mwApiPath=api.php --localParsoid

【讨论】:

  • 谢谢。对于他们所谓的“免费、开放、高度压缩的格式”来说,这是一项艰巨的工作。除此之外,到目前为止,Kiwix 提供的 ZIM 文件大约有 1 年的历史……我记得那天我有一台袖珍电脑。不知何故,这在当时更容易......
【解决方案2】:

是的,你可以,但这并不容易。 Kiwix 开发人员现在正在研究基于 Parsoid 的解决方案:http://sourceforge.net/p/kiwix/other/ci/master/tree/mwoffliner/ 简而言之,Parsoid 是 MediaWiki VisualEditor 的后端,它负责将 wikitext 转换为 HTML,反之亦然。它有一个 HTML 版本的缓存,可用于此类内容。 https://www.mediawiki.org/wiki/Parsoid 应该提供一些有关如何设置的信息...

【讨论】:

    【解决方案3】:

    您可能想要测试一些工具。一些已被移除,但其中大部分正在开发中。

    这里有一些关于如何准备材料和使用的注意事项 zimwriterfs。笔记不完整,因为它们是基于我的有限 工具使用体验(取自http://www.openzim.org/wiki/Build_your_ZIM_file

    这是从现有 HTML 内容创建 ZIM 文件的链接 “请参阅 http://www.openzim.org/wiki/Zimwriterfs_instructions 了解概述,并阅读下面有关 zimwriterfs 的部分了解更多上下文”

    我尝试了另一个名为 Zim - 桌面 Wiki 的 Windows 程序 http://zim-wiki.org/ 是有限的,但您可以尝试一下。相反,它会将 ZIM 转换为 HTML。

    无论如何,让我们知道进展如何,我也有兴趣建立自己的 zim 文件。祝你好运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多