| サマリ | google-code-prettify を利用してソースコードを色分け表示する |
|---|---|
| リビジョン | 1.0 |
| 対応バージョン | 1.4.6 以降 |
| 作者 | revulo |
すべての整形済みテキストが自動的にハイライトされるよう、PukiWiki を改造する方法もあるようですが、
といった場合には有用だと思います。
PHP のコードを構文ハイライトして表示した例を以下に示します。
<?php
/**
* phphighlight.inc.php - Syntax highlighting using highlight_string() function
*
* @author revulo
* @licence http://www.gnu.org/licenses/gpl.html GPLv2
* @link http://www.revulo.com/PukiWiki/Plugin/PHPHighlight.html
*/
function plugin_phphighlight_convert()
{
$args = func_get_args();
$source = rtrim(end($args));
$html = highlight_string($source, true);
$before = array(
">\n<",
'<font color="',
'font>',
'code>',
);
$after = array(
'><',
'<span style="color: ',
'span>',
'pre>',
);
return str_replace($before, $after, $html);
}
?>
prettify.inc.php プラグインのアーカイブファイルをダウンロードし、 PukiWiki をインストールしてあるディレクトリで展開します。
$ tar xvfz prettify-1.0.tar.gz
次に、不具合を修正した google-code-prettify を作りましたので、これもダウンロードして下さい。 展開して出てきたファイルは、PukiWiki の skin/prettify ディレクトリにコピーして下さい。
$ cd skin/prettify $ unzip prettify-14-Jul-2008_revulo.zip
あとは pukiwiki.ini.php の設定を以下のように変更して下さい。
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0);
書式は次のようになっています。
#prettify{{
……
ソースコード
……
}}
これで google-code-prettify が、 何の言語のコードなのかを自動的に識別し、構文ハイライトして表示してくれます。
prettify.inc.php の先頭部分で以下の値を設定することで、カスタマイズができます。
また、skin/prettify/prettify.css ファイルを書き換えれば、表示される色を変更できます。
同様の機能を持つプラグインが他にもあるのでまとめておきます。
| プラグイン名 | 使用ライブラリ |
| geshi.inc.php | |
| highlighter.inc.php | |
| prettify.inc.js | |
| shjs.inc.php | |
| 独自に実装 (PHP) | |