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已經支持公式編寫啦。