【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已经支持公式编写啦。
在这里插入图片描述

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