mediaWiki高级用法:TemplateData和Cargo
不得不说mediawiki用来收集整理资料真的非常合适,除了后端需要PHP环境这一个缺点,几乎挑不出什么毛病,无论自用还是团队协作都很好上手。除了最基本的纯文本编辑,模板功能也是一大亮点。最近在阶段性地收集公众号文章,借助Cargo和TemplateData可以实现一个很cool的功能:每个条目按照预设的表单录入。这样既保证了录入效率和完整性,也方便后续查找。
用了一段时间发现一个小问题:每次用模板录入的时候只能手动输入文本,TemplateData不支持多选或者时间选择器。一番搜索,发现最新的TemplateData插件已经在开发版加入了这个功能,同时还需要更新VisualEditor。试着手动替换最新版插件,编辑模板时新增了建议值一栏,然而启动VE时却被告知master分支现在只支持1.37版本的Mediawiki。
纠结了半天,无奈下拉栏诱惑力实在太强,还是下狠心来个大更新。官网提供了两种安装开发版的方式,下载压缩包直接覆盖或者git拉取。考虑到可能要测试不同的低版本,还是选择了后者。因为是从最近的1.36升上去,需要改动的地方并不多,按照文档一步一步操作。首先扫一眼Release Note,然后是UPGRADE文件。要注意以下几点:
不要直接拉mediawiki全仓库,过程会慢的你想哭,我们只需要主分支和最新几个commit。拉取完先更新下子模块,此外还需要composer。
git clone --depth 3 --branch master https://gerrit.wikimedia.org/r/mediawiki/core.git public
cd public
git submodule update --init --recursive
## 更新php插件
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
cd public
composer update --no-dev除了VE之外的所有插件文件夹中的内容都复制过来,然后是皮肤文件夹,
LocalSettings.php
文件。对于VE我们从git拉取。images文件夹复制过来后需要改下文件权限chown -R www-data:www-data images
,最后去maintenance文件夹运行更新php update.php
Timeless皮肤似乎有些不兼容,nginx一直记录warning,所以替换为git拉取的开发版。
VE拉取完之后还有一个步骤,更新子模块:
git submodule update --init
会出现各种奇奇怪怪的问题,比如前端报错,VE报错,总之一通重启,逐个排除,终于跑通了流程
很可惜还是TemplateData还是不支持Time picker等高级组件,不过也可以用下拉框曲线救国,预设成类似2021-09-
这种,然后手动加上日份,机智如我~
9.13更新
事情比我想象的还是要复杂些,通过上述操作,只有当vitrualEditor可用的时候,页面没有刷新,切换到VE的master分支并原地刷新页面才能看到上面的截图,只要关闭页面重开或者点到其他页面再返回,VE就会报错Error contacting the Parsoid/RESTBase server (HTTP 404)
。就这个问题又纠结了好久,各种方法试遍了都没用,只有切换回REL1_36
才能顺利打开VE,然而这样的话多选框就没有了,白折腾。为了VE不至于废掉,只能很不爽地切换回旧版。
今天无意中瞟了一眼VE的安装文档,无意中发现这样一句话”You must follow the instructions on the Parsoid page to configure Parsoid if you are installing VisualEditor from git”,原文还加粗显示了,然鹅一直被我忽略。。。顺着文档拉取parsoid(我放在了extensions文件夹,注意填绝对路径),在LocalSettings.php
中做好相应配置,检查nginx配置(居然已经填好了rest.php的规则,之前复制粘贴没有去琢磨每条规则的作用),VE切换回master分支,运行。多选框又回来了!尝试切换页面,一切正常。
所以这件事告诉我们:仔细读文档是多么重要~~
参考
⚓ T53375 TemplateData: Add parameter type for selecting one of predefined values (like “” or ENUM) (wikimedia.org)
Download from Git - MediaWiki
/ - mediawiki/core - Gitiles (wikimedia.org)
Extension:VisualEditor - MediaWiki