MediaWiki之SimpleMathJax扩展
前言
想要建一个物理相关的wiki,基本功能是要能够输入公式。因此math相关的扩展必不可少。
经过调研,我发现三种可以实现公式输入和渲染输出的扩展:
- Extension:Math
- Extension:SimpleMathJax
Math扩展
属于未来Mediawiki的主流,功能强大,未来的平台适应性肯定也会更好,但是根据调研,它的渲染速度很慢,安装也略复杂,需要:
- 有
Mathoid
服务支持和Restbase
支持,我家的wiki可能很快就会换平台,索性就抛弃了这个看似稳定的支持。 Latexml
支持,该支持用perl写的,需要安装一堆环境,比如ImageMagic tools
、StrawberryPerl
等等,嗯,我的SimpleMathJax已经调通了,它的支持环境还没装好。
有兴趣的童鞋可以自己调研尝试安装,到时候可以交流。参考文档:
mediawiki-Math
官方文档:https://www.mediawiki.org/wiki/Extension:Math/zh;https://www.mediawiki.org/wiki/Extension:Math/Restbase;https://www.mediawiki.org/wiki/Manual:Mathoidmediawiki-Math
安装官方文档:https://www.mediawiki.org/wiki/Extension:Math/advancedSettings#Math_output_modesmediawiki-Math
之版本很重要官方文档:https://www.mediawiki.org/wiki/Extension:Math/mathoid_tablegithub安装Parsoid
支持文档:https://github.com/physikerwelt/mathoid-docs/blob/master/Guide%20for%20Installing%20and%20Setting%20up%20Mediawiki%20with%20Restbase%20and%20Mathoid.pdfLatexml
网站:https://dlmf.nist.gov/LaTeXML/get.html- 一个博客参考(我水平不行,读起来有些混乱)https://blog.yoitsu.moe/mediawiki/restbase_and_math_for_mediawiki.html
正文SimpleMathJax
安装过程太简单,实在让人开心不已。
说明文档mediawiki:https://www.mediawiki.org/wiki/Extension:SimpleMathJax
说明文档git:https://github.com/jmnote/SimpleMathJax
- 下载:https://github.com/jmnote/SimpleMathJax/archive/master.zip
- 安装:解压并将它移动至
mediawiki/extension
文件夹,重命名为SimpleMathJax
- 配置:配置
mediawiki/localsettings.php
文件:
wfLoadExtension( 'SimpleMathJax' );
# default font size is 110
# If you want to change font size, set $wgSmjSize like below.
# $wgSmjSize = 150;
# If you want to enable some additional inlineMath symbol pairs, set $wgSimpleMathJaxInlineMath like below.
# $wgSmjInlineMath = [ [ "$", "$" ], [ "\\(", "\\)" ] ];
# If you want to use local module, set $wgSmjUseCDN like below.
# $wgSmjUseCDN = false;
- 支持预览设置——我失败了,找不到Common.js,哪位大神看到可以指点一下,我的mediawiki是1.34版本。
// 官方文档:添加MediaWiki:Common.js:
function waitForMathJax($content) {
if (typeof MathJax === 'undefined') {
setTimeout(function () { waitForMathJax($content); }, 1000);
} else {
MathJax.Hub.Queue(["Typeset", MathJax.Hub, $content[0]]).execute();
}
}
mw.hook('wikipage.content').add(waitForMathJax);
where is Common.js
。。。。。。。。。。。
虽然最后这一步没能成功,但是我的mediawiki已经支持公式编写啦。