Mediawiki 擴展:修訂版本之間的差異

出自六年制學程
跳轉到: 導覽搜尋
Math裝不起來
Math裝不起來
 
(未顯示同用戶所作出之1次版本)
第 37 行: 第 37 行:
  
 
==視覺化編輯器(visual editer)==
 
==視覺化編輯器(visual editer)==
 +
*設定
 +
*#舊版 require_once "$IP/extensions/VisualEditor/VisualEditor.php";
 +
*#新版 wfLoadExtension('VisualEditor');
 +
* MediaWiki 1.23,還需要額外的 PHP Parsoid 插件,之後的版本不用。
 
*需要 Parsoid
 
*需要 Parsoid
 
*設 $wgVisualEditorParsoidPrefix = 'localhost';
 
*設 $wgVisualEditorParsoidPrefix = 'localhost';
第 42 行: 第 46 行:
 
*設 $wgDefaultUserOptions['visualeditor-enable'] = 1;
 
*設 $wgDefaultUserOptions['visualeditor-enable'] = 1;
 
*$wgHiddenPrefs[] = 'visualeditor-enable'; // 不許關閉,若要用 wiki 碼編,不用此行
 
*$wgHiddenPrefs[] = 'visualeditor-enable'; // 不許關閉,若要用 wiki 碼編,不用此行
*設 require_once "$IP/extensions/VisualEditor/VisualEditor.php";
 
* MediaWiki 1.23,還需要額外的 PHP Parsoid 插件,之後的版本不用。
 
  
 
==Math裝不起來==
 
==Math裝不起來==
第 76 行: 第 78 行:
 
*#*對 1.25 會剛好,但仍出現「解析失敗 (缺少 "<code>texvc</code>" 執行程式;請參考 math/README 進行設定。)」
 
*#*對 1.25 會剛好,但仍出現「解析失敗 (缺少 "<code>texvc</code>" 執行程式;請參考 math/README 進行設定。)」
 
*#*對 1.24,1.23 會說 MathInputCheckTexvc.php 第 65 行指令檢查到「語法有缺陷」
 
*#*對 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-&gt;setOutputMode( $wgUser-&gt;getOption('math'));
 +
# return $math-&gt;render();
 +
return "&lt;img class='tex' src='http://www.forkosh.dreamhost.com/mathtex.cgi?".rawurlencode($tex)."' alt='LaTeX:".htmlspecialchars($tex)."'&gt;";
 +
}</pre>

2022年6月5日 (日) 14:17的最新修訂版本

解析器函數(ParserFunctions)

安裝

在 LocalSettings.php 中加入:

  1. MediaWiki 1.24或更早版本:require_once "$IP/extensions/ParserFunctions/ParserFunctions.php";
  2. 較晚近的版本:wfLoadExtension('ParserFunctions');

可用參數,如:

$wgPFEnableStringFunctions=true; // 激活the intergrated字符串函數功能
$wgPFStringLengthLimit=1500; // 設字符串函數中字符串最大允許長度,預設值為1000

用法

請參考:官網

外掛 CSS

安裝

  1. mw:Special:ExtensionDistributor/CSS 下載檔案,並將其放在 extensions 目錄下的CSS目錄內。
  2. 在 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)

  • 設定
    1. 舊版 require_once "$IP/extensions/VisualEditor/VisualEditor.php";
    2. 新版 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.231.25
1.301.31

三層需求

  1. 伺服器上須裝有 texvc ,其編譯環境需要 OCaml 3.06,這一點目前在 DS216 上還做不到。其安裝方法在 Math/math/README 中有詳述,另請見Mediawiki_擴充套件#texvc。未裝 texvc 時的失敗範例在:
  2. 須有「前置字_math」資料表,其結構在外掛套件的 db 資料夾中的 math.mysql.sql ,先匯入資料表,再改名為 「前置字_math」。
  3. 須進行 LocalSettings.php 設定:
    • 在 mw1.24版之前用「require_once("$IP/extensions/Math/Math.php");」
    • 在 mw1.25版之後用「wfLoadExtension( 'Math' );」

各種安裝 texvc 的方法:

  1. gem install genki-texvc
  2. apt-get install mediawiki-math-texvc
  3. 丁丁所寫的外掛 mathImage.php ,需要線上 LaTex 生成,如:


請參考

texvc

  • 準備工作須先裝好以下軟件:
    1. 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了。
    2. LaTeX and dvips
      • 有的Linux也有這個套件,不過我還是安裝了Tex Live 2008 ,免費的: http://www.tug.org/texlive/。按照提示安裝即可。
    3. imagemagick
  • 其他早期文件提到還要
    1. gs
    2. cjk-latex (now called latex-cjk-all)
    3. tetex-extra
    4. binutils (“/usr/bin/as” is needed by make job)
    5. 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)."'>";
}