可以创建整个Wiki的ZIM文件吗?(我自己的,基于mediawiki)

Dr.*_*Bob 7 mediawiki

我想生成我们自己的Wiki的离线ZIM版本(在Mediawiki上运行).收集扩展是轻而易举的安装,但仅适用于选择单个页面,下一步可以将其合并为单个ZIM文件.

但是有了数百页的维基,这很难做到,基于单页.我想要整个wiki的zim-dump.我知道这是可能的,因为整个维基百科也有一个zim文件.

但是,我找不到如何做到这一点.有人能帮忙吗?提前致谢!

pde*_*eli 5

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

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

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

请在下面找到我所做的分步说明。请注意,主要指令来自GitHub 上openZIM 的 mwoffliner分支,因此这些指令的大部分功劳归于他们。

节点

$ 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
Run Code Online (Sandbox Code Playgroud)

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

$ sudo apt install jpegoptim advancecomp gifsicle pngquant imagemagick redis-server git meson g++ pkg-config libzim-dev
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

ZimWriterFS 手动安装

来源

$ 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
Run Code Online (Sandbox Code Playgroud)

VirtualBox - 从主机操作系统访问 VirtualBox 来宾

  • 来源

    1. 启动 VirtualBox 6.xx
    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. 附加到:选择 Host-only Adapter
    22. 名称:vboxnet0
    23. 单击确定
    24. 启动访客机

mwoffliner 命令发出

此命令假设:

  • MediaWiki wiki 已启动并运行,
  • VirtualBox 将 IP 地址归因于192.168.56.5来宾操作系统(请参阅上面VirtualBox - 从主机操作系统访问 VirtualBox 来宾部分下的说明)(使用 来检查操作系统的 IP 地址ifconfig
  • LocalSettings.php$wgServer = "http://192.168.56.5";(检查操作系统的 IP 地址ifconfig
  • 你的维基名称是 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


Nem*_*emo 1

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