Pukiwiki にソースコードの載せる場合は、見やすくなるようにブロックで表示したりして何かと苦労します。
(左に半角スペース空けたりとか)
そこで、いろんな言語のソースコードの構文を、ハイライト表示してくれるプラグインを見つけました。
今回はハイライト表示のプラグインについて紹介します。
プラグイン
有名なプラグインでは「geshi.inc.php」があります。
ライセンスは GPLv2 で、Pukiwiki1.4.6 以降に対応しているようです。
2008年現在の最新バージョンは geshi-1.2.tar.gz ですが、2018 年現在開発サイトは存在しませんでした。
また、これは内部で GeSHi を使っているので下記のサイトで別途ダウンロードが必要になります。
現在(2018年9月)の最新バージョンは GeSHi 1.0.9.0 のようです。
(GeSHi-1.0.9.0.tar.gz)
インストール方法
インストール方法は 2 つの圧縮ファイルを指定のディレクトリで解凍するだけになります。
この時、パーミッションは環境に応じて調整して下さい。
Pukiwiki のホームディレクトリが /home/www/pukiwiki とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # プラグインを解凍します $ cd /home/www/pukiwiki $ tar xvfz geshi-1.2.tar.gz # キャッシュディレクトリ書き込み権限を与えます # 777 である必要はないですね $ chmod 777 cache/geshi # GeSHi を解凍します $ cd /home/www/pukiwiki/plugin $ tar xvfz GeSHi-1.0.7.20.tar.gz # pukiwiki の設定ファイルを調整します $ vi /home/www/pukiwiki/pukiwiki.ini.php define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); # よく使う言語が決まっている人はデフォルト言語を設定しておくと楽です。 $ vi /home/www/pukiwiki/plugin/geshi.inc.php if (!defined('PLUGIN_GESHI_DEFAULT_LANGUAGE')) { define('PLUGIN_GESHI_DEFAULT_LANGUAGE', 'php'); } |
使い方は以下のように #geshi() を使います。
オプションには言語や行表示などがあります。
1 2 3 4 5 6 7 8 9 10 11 12 | #geshi(php,number){{ <?php echo 'PHPのコードです。'; ?> }} #geshi(java,number){{ public class test { public String getWord() { return "Javaのコードです。"; } } }} |
対応しているプログラム言語
実際に対応している言語を調べてなかったので調査しました。
その結果、以下の言語に対応していることがわかりました。Pukiwiki では #geshi() の引数に当てはまるものを入れて下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | Actionscript ADA Apache Log AppleScript ASM ASP AutoIT Backus-Naur form Bash BlitzBasic C C for Macs C# C++ CAD DCL CadLisp CFDG ColdFusion CSS Delphi DIV DOS Eiffel Fortran Fortran FreeBasic GML Groovy HTML Inno IO Java Java 5 Javascript LaTeX Lisp Lua Microprocessor ASM mIRC MySQL NSIS Objective C OCaml OpenOffice BASIC Oracle 8 SQL Pascal Perl PHP PL/SQL Python Q(uick)BASIC robots.txt Ruby SAS Scheme SDLBasic Smalltalk Smarty SQL T-SQL TCL thinBasic Uno IDL VB.NET Visual BASIC Visual Fox Pro Winbatch X++ XML Z80 ASM |