【MediaWiki之SimpleMathJax擴展】MediaWiki實現支持編輯Math公式的功能

MediaWiki之SimpleMathJax擴展

前言

想要建一個物理相關的wiki,基本功能是要能夠輸入公式。因此math相關的擴展必不可少。

經過調研,我發現三種可以實現公式輸入和渲染輸出的擴展:

  • Extension:Math
  • Extension:SimpleMathJax

Math擴展屬於未來Mediawiki的主流,功能強大,未來的平臺適應性肯定也會更好,但是根據調研,它的渲染速度很慢,安裝也略複雜,需要:

  1. Mathoid服務支持和Restbase支持,我家的wiki可能很快就會換平臺,索性就拋棄了這個看似穩定的支持。
  2. Latexml支持,該支持用perl寫的,需要安裝一堆環境,比如ImageMagic toolsStrawberryPerl等等,嗯,我的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:Mathoid
  • mediawiki-Math安裝官方文檔:https://www.mediawiki.org/wiki/Extension:Math/advancedSettings#Math_output_modes
  • mediawiki-Math版本很重要官方文檔:https://www.mediawiki.org/wiki/Extension:Math/mathoid_table
  • github安裝Parsoid支持文檔:https://github.com/physikerwelt/mathoid-docs/blob/master/Guide%20for%20Installing%20and%20Setting%20up%20Mediawiki%20with%20Restbase%20and%20Mathoid.pdf
  • Latexml網站: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已經支持公式編寫啦。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章