サマリ | 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 | GeSHi (PHP) |
highlighter.inc.php | PEAR::Text_Highlighter (PHP) |
prettify.inc.js | google-code-prettify (JavaScript) |
shjs.inc.php | SHJS (JavaScript) |
codehighlight.inc.php | 独自に実装 (PHP) |
highlight.inc.php | SyntaxHighlighter (JavaScript) |