Mediawiki 擴展:修訂版本之間的差異
出自六年制學程
(→Math裝不起來) |
|||
(未顯示同用戶所作出之23次版本) | |||
第 1 行: | 第 1 行: | ||
[[分類:Mediawiki]] | [[分類:Mediawiki]] | ||
==解析器函數(ParserFunctions)== | ==解析器函數(ParserFunctions)== | ||
− | + | ===安裝=== | |
− | + | 在 LocalSettings.php 中加入: | |
− | + | #MediaWiki 1.24或更早版本:require_once "$IP/extensions/ParserFunctions/ParserFunctions.php"; | |
− | + | #較晚近的版本:wfLoadExtension('ParserFunctions'); | |
− | + | 可用參數,如: | |
+ | <pre>$wgPFEnableStringFunctions=true; // 激活the intergrated字符串函數功能 | ||
+ | $wgPFStringLengthLimit=1500; // 設字符串函數中字符串最大允許長度,預設值為1000</pre> | ||
+ | ===用法=== | ||
+ | 請參考:[[mw:Help:Extension:ParserFunctions/zh|官網]] | ||
==外掛 CSS== | ==外掛 CSS== | ||
===安裝=== | ===安裝=== | ||
− | #[ | + | #[[mw:Special:ExtensionDistributor/CSS 下載]]檔案,並將其放在 extensions 目錄下的CSS目錄內。 |
#在 LocalSettings.php 中加入: | #在 LocalSettings.php 中加入: | ||
#*MediaWiki 1.29或更早版本:require_once "$IP/extensions/CSS/CSS.php"; | #*MediaWiki 1.29或更早版本:require_once "$IP/extensions/CSS/CSS.php"; | ||
第 21 行: | 第 25 行: | ||
在 wiki 頁中加: | 在 wiki 頁中加: | ||
*{{#css:MyStyles.css}} 或 {{#css:/skins/MyStyles.css}} ; | *{{#css:MyStyles.css}} 或 {{#css:/skins/MyStyles.css}} ; | ||
− | * | + | *或直接在解析器函數中寫入 CSS 規則,如下例所示: |
<pre>{{#css: | <pre>{{#css: | ||
body { | body { | ||
第 28 行: | 第 32 行: | ||
color: red; | color: red; | ||
} | } | ||
− | }#125;</pre> | + | }}</pre> |
更多資料請參考:[https://www.mediawiki.org/w/index.php?title=Extension:CSS/zh&variant=zh-tw 官網] | 更多資料請參考:[https://www.mediawiki.org/w/index.php?title=Extension:CSS/zh&variant=zh-tw 官網] | ||
+ | |||
+ | ==視覺化編輯器(visual editer)== | ||
+ | *設定 | ||
+ | *#舊版 require_once "$IP/extensions/VisualEditor/VisualEditor.php"; | ||
+ | *#新版 wfLoadExtension('VisualEditor'); | ||
+ | * MediaWiki 1.23,還需要額外的 PHP Parsoid 插件,之後的版本不用。 | ||
+ | *需要 Parsoid | ||
+ | *設 $wgVisualEditorParsoidPrefix = 'localhost'; | ||
+ | *設 $wgVisualEditorParsoidURL = 'http://localhost:8000'; // Debian,port 是 8142 | ||
+ | *設 $wgDefaultUserOptions['visualeditor-enable'] = 1; | ||
+ | *$wgHiddenPrefs[] = 'visualeditor-enable'; // 不許關閉,若要用 wiki 碼編,不用此行 | ||
+ | |||
+ | ==Math裝不起來== | ||
+ | 版本匹配: | ||
+ | <table class=nicetable> | ||
+ | <tr><th>mw版本</th><th>math版本</th></tr> | ||
+ | <tr><th>1.23</th><th>1.25</th></tr> | ||
+ | <tr><th>1.30</th><th>1.31</th></tr> | ||
+ | </table> | ||
+ | |||
+ | '''三層需求''' | ||
+ | #伺服器上須裝有 texvc ,其編譯環境需要 OCaml 3.06,這一點目前在 DS216 上還做不到。其安裝方法在 Math/math/README 中有詳述,另請見[[Mediawiki_擴充套件#texvc]]。未裝 texvc 時的失敗範例在: | ||
+ | #*[[討論:Mediawiki 外掛]] | ||
+ | #*[http://urclass.net/mediawiki/index.php?title=user:Root urclass.net/mediawiki/index.php?title=user:Root] | ||
+ | #須有「前置字_math」資料表,其結構在外掛套件的 db 資料夾中的 math.mysql.sql ,先匯入資料表,再改名為 「前置字_math」。 | ||
+ | #須進行 LocalSettings.php 設定: | ||
+ | #*在 mw1.24版之前用「require_once("$IP/extensions/Math/Math.php");」 | ||
+ | #*在 mw1.25版之後用「wfLoadExtension( 'Math' );」 | ||
+ | '''各種安裝 texvc 的方法:''' | ||
+ | #[http://galeki.is-programmer.com/posts/4170.html gem install genki-texvc] | ||
+ | #[http://www.hovercool.com/hovercool/index.php/mediawiki安装math插件 apt-get install mediawiki-math-texvc] | ||
+ | #丁丁所寫的外掛 mathImage.php ,需要線上 LaTex 生成,如: | ||
+ | #*[https://www.codecogs.com/latex/eqneditor.php?lang=zh-cn 線上LaTeX] | ||
+ | #*[http://latex.91maths.com/ LaTeX線上示例] | ||
+ | |||
+ | |||
+ | '''請參考''' | ||
+ | *[https://www.mediawiki.org/wiki/Extension:Math/zh#安裝 https://www.mediawiki.org/wiki/Extension:Math/zh#安裝] 頁中,右方模板形成之方框中: | ||
+ | *#「下載擴展」連結,進入[https://www.mediawiki.org/wiki/Special:ExtensionDistributor/Math https://www.mediawiki.org/wiki/Special:ExtensionDistributor/Math],結果下方各種版本最低只到 1.27 版無可用之版本。 | ||
+ | *#「瀏覽存儲庫」連結,進入[https://gerrit.wikimedia.org/g/mediawiki/extensions/Math https://gerrit.wikimedia.org/g/mediawiki/extensions/Math],其中有更多的早期版本,可以先讀各版本的 README 及 Math.php 看其對 MW 1.23 版的反應如下: | ||
+ | *#*對 1.26 版以上會說須 MW 1.25+ 才能用 | ||
+ | *#*對 1.25 會剛好,但仍出現「解析失敗 (缺少 "<code>texvc</code>" 執行程式;請參考 math/README 進行設定。)」 | ||
+ | *#*對 1.24,1.23 會說 MathInputCheckTexvc.php 第 65 行指令檢查到「語法有缺陷」 | ||
+ | |||
+ | ===texvc=== | ||
+ | *準備工作須先裝好以下軟件: | ||
+ | *#ocaml | ||
+ | *#*OCaml 下載:[http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz] | ||
+ | *#*下載後解壓,將整個目錄拷貝至/wiki/math/下,然後進入ocaml目錄編譯安裝:<br/>./configure生成配置文件"Makefile", "m.h" and "s.h"<br/>make world(要等很久)<br/>make opt(要等很久)<br/>umask 022(這個很重要,讓make取得執行權,少這步不會成功)<br/>make install(現在才是安裝)<br/>make clean | ||
+ | *#*執行一下ocaml命令,能看到版本號就說明OK了。 | ||
+ | *#LaTeX and dvips | ||
+ | *#*有的Linux也有這個套件,不過我還是安裝了Tex Live 2008 ,免費的: [http://www.tug.org/texlive/ http://www.tug.org/texlive/]。按照提示安裝即可。 | ||
+ | *#imagemagick | ||
+ | *#*[http://www.imagemagick.org/script/download.php http://www.imagemagick.org/script/download.php]官方有install檔案,照做就OK。 | ||
+ | *其他早期文件提到還要 | ||
+ | *#gs | ||
+ | *#cjk-latex (now called latex-cjk-all) | ||
+ | *#tetex-extra | ||
+ | *#binutils (“/usr/bin/as” is needed by make job) | ||
+ | *#gcc | ||
+ | *cd 到 MediaWiki 安裝目錄下的 math/ 子目錄,執行 make 開始安裝 texvc。 | ||
+ | *在 LocalSettings.php 中設置:<br/>$wgUseTeX = true;<br/>$wgEnableUploads = true; | ||
+ | *chmod 777 images,apach就可以自動往image目錄裡放圖了 | ||
+ | |||
+ | ===使用外部的 Mimetex=== | ||
+ | 這種方法實質上是利用外部的 cgi 鏈接來幫我們生成公式圖片,比較靈活,我們可以使用自定義的標籤或者修改代碼來實現。 | ||
+ | |||
+ | 自定義標籤方法見:[http://www.mediawiki.org/wiki/Mimetex_alternative Extension:Mimetex alternative] | ||
+ | |||
+ | 修改代碼使 math 也能過濾到使用 mimetex 見:[http://wiki.klniu.com/zh-hant/MediaWiki/利用外链CGI添加数学公式支持 利用外鏈CGI為Mediawiki添加數學公式支援] | ||
+ | |||
+ | 第二種方法是修改 includes/Math.php 下的 renderMath 方法: | ||
+ | <pre>public static function renderMath( $tex, $params=array() ) { | ||
+ | # global $wgUser; | ||
+ | # $math = new MathRenderer( $tex, $params ); | ||
+ | # $math->setOutputMode( $wgUser->getOption('math')); | ||
+ | # return $math->render(); | ||
+ | return "<img class='tex' src='http://www.forkosh.dreamhost.com/mathtex.cgi?".rawurlencode($tex)."' alt='LaTeX:".htmlspecialchars($tex)."'>"; | ||
+ | }</pre> |
2022年6月5日 (日) 14:17的最新修訂版本
目錄
解析器函數(ParserFunctions)
安裝
在 LocalSettings.php 中加入:
- MediaWiki 1.24或更早版本:require_once "$IP/extensions/ParserFunctions/ParserFunctions.php";
- 較晚近的版本:wfLoadExtension('ParserFunctions');
可用參數,如:
$wgPFEnableStringFunctions=true; // 激活the intergrated字符串函數功能 $wgPFStringLengthLimit=1500; // 設字符串函數中字符串最大允許長度,預設值為1000
用法
請參考:官網
外掛 CSS
安裝
- mw:Special:ExtensionDistributor/CSS 下載檔案,並將其放在 extensions 目錄下的CSS目錄內。
- 在 LocalSettings.php 中加入:
- MediaWiki 1.29或更早版本:require_once "$IP/extensions/CSS/CSS.php";
- 較晚近的版本:wfLoadExtension('CSS');
可用參數:
$wgCSSPath = false; # 預設值,參考到 $wgScriptPath $wgCSSPath = ''; # 參考到伺服器的文件根目錄 $wgCSSPath = 'https://example.org/stylesheets'; # 參考到其他的 site
用法
在 wiki 頁中加:
- {{#css:MyStyles.css}} 或 {{#css:/skins/MyStyles.css}} ;
- 或直接在解析器函數中寫入 CSS 規則,如下例所示:
{{#css: body { background: yellow; font-size: 20pt; color: red; } }}
更多資料請參考:官網
視覺化編輯器(visual editer)
- 設定
- 舊版 require_once "$IP/extensions/VisualEditor/VisualEditor.php";
- 新版 wfLoadExtension('VisualEditor');
- MediaWiki 1.23,還需要額外的 PHP Parsoid 插件,之後的版本不用。
- 需要 Parsoid
- 設 $wgVisualEditorParsoidPrefix = 'localhost';
- 設 $wgVisualEditorParsoidURL = 'http://localhost:8000'; // Debian,port 是 8142
- 設 $wgDefaultUserOptions['visualeditor-enable'] = 1;
- $wgHiddenPrefs[] = 'visualeditor-enable'; // 不許關閉,若要用 wiki 碼編,不用此行
Math裝不起來
版本匹配:
mw版本 | math版本 |
---|---|
1.23 | 1.25 |
1.30 | 1.31 |
三層需求
- 伺服器上須裝有 texvc ,其編譯環境需要 OCaml 3.06,這一點目前在 DS216 上還做不到。其安裝方法在 Math/math/README 中有詳述,另請見Mediawiki_擴充套件#texvc。未裝 texvc 時的失敗範例在:
- 須有「前置字_math」資料表,其結構在外掛套件的 db 資料夾中的 math.mysql.sql ,先匯入資料表,再改名為 「前置字_math」。
- 須進行 LocalSettings.php 設定:
- 在 mw1.24版之前用「require_once("$IP/extensions/Math/Math.php");」
- 在 mw1.25版之後用「wfLoadExtension( 'Math' );」
各種安裝 texvc 的方法:
- gem install genki-texvc
- apt-get install mediawiki-math-texvc
- 丁丁所寫的外掛 mathImage.php ,需要線上 LaTex 生成,如:
請參考
- https://www.mediawiki.org/wiki/Extension:Math/zh#安裝 頁中,右方模板形成之方框中:
- 「下載擴展」連結,進入https://www.mediawiki.org/wiki/Special:ExtensionDistributor/Math,結果下方各種版本最低只到 1.27 版無可用之版本。
- 「瀏覽存儲庫」連結,進入https://gerrit.wikimedia.org/g/mediawiki/extensions/Math,其中有更多的早期版本,可以先讀各版本的 README 及 Math.php 看其對 MW 1.23 版的反應如下:
- 對 1.26 版以上會說須 MW 1.25+ 才能用
- 對 1.25 會剛好,但仍出現「解析失敗 (缺少 "
texvc
" 執行程式;請參考 math/README 進行設定。)」 - 對 1.24,1.23 會說 MathInputCheckTexvc.php 第 65 行指令檢查到「語法有缺陷」
texvc
- 準備工作須先裝好以下軟件:
- ocaml
- OCaml 下載:http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.1.tar.gz
- 下載後解壓,將整個目錄拷貝至/wiki/math/下,然後進入ocaml目錄編譯安裝:
./configure生成配置文件"Makefile", "m.h" and "s.h"
make world(要等很久)
make opt(要等很久)
umask 022(這個很重要,讓make取得執行權,少這步不會成功)
make install(現在才是安裝)
make clean - 執行一下ocaml命令,能看到版本號就說明OK了。
- LaTeX and dvips
- 有的Linux也有這個套件,不過我還是安裝了Tex Live 2008 ,免費的: http://www.tug.org/texlive/。按照提示安裝即可。
- imagemagick
- http://www.imagemagick.org/script/download.php官方有install檔案,照做就OK。
- ocaml
- 其他早期文件提到還要
- gs
- cjk-latex (now called latex-cjk-all)
- tetex-extra
- binutils (“/usr/bin/as” is needed by make job)
- gcc
- cd 到 MediaWiki 安裝目錄下的 math/ 子目錄,執行 make 開始安裝 texvc。
- 在 LocalSettings.php 中設置:
$wgUseTeX = true;
$wgEnableUploads = true; - chmod 777 images,apach就可以自動往image目錄裡放圖了
使用外部的 Mimetex
這種方法實質上是利用外部的 cgi 鏈接來幫我們生成公式圖片,比較靈活,我們可以使用自定義的標籤或者修改代碼來實現。
自定義標籤方法見:Extension:Mimetex alternative
修改代碼使 math 也能過濾到使用 mimetex 見:利用外鏈CGI為Mediawiki添加數學公式支援
第二種方法是修改 includes/Math.php 下的 renderMath 方法:
public static function renderMath( $tex, $params=array() ) { # global $wgUser; # $math = new MathRenderer( $tex, $params ); # $math->setOutputMode( $wgUser->getOption('math')); # return $math->render(); return "<img class='tex' src='http://www.forkosh.dreamhost.com/mathtex.cgi?".rawurlencode($tex)."' alt='LaTeX:".htmlspecialchars($tex)."'>"; }