最終更新: 2008-11-02 (日) 08:11:40
このページをDeliciousに追加 このページをはてなブックマークに追加 このページをlivedoor クリップに追加 このページをYahoo!ブックマークに追加

prettify.inc.php

サマリgoogle-code-prettify を利用してソースコードを色分け表示する
リビジョン1.0
対応バージョン1.4.6 以降
作者revulo

目次

概要

  • 様々な言語のソースコードを構文ハイライトして表示します
  • 内部で google-code-prettify を利用しています
  • C や Bash や XML に構文が似た多くの言語に対応しています
  • オリジナルの google-code-prettify が Internet Explorer でうまく動作しないのを修正してあります *1
  • PukiWiki の本体やスキンを書き換える必要はありません

すべての整形済みテキストが自動的にハイライトされるよう、PukiWiki を改造する方法もあるようですが、

  • 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 の先頭部分で以下の値を設定することで、カスタマイズができます。

PLUGIN_PRETTIFY_LIB_URI
google-code-prettify がインストールされているディレクトリ

また、skin/prettify/prettify.css ファイルを書き換えれば、表示される色を変更できます。

ライセンス

  • プラグイン本体: GPL
  • google-code-prettify: Apache License 2.0

ダウンロード

更新履歴

  • Version 1.0 (2008/11/02)
    • 初公開

備考

同様の機能を持つプラグインが他にもあるのでまとめておきます。

プラグイン名使用ライブラリ
geshi.inc.phpGeSHi (PHP)
highlighter.inc.phpPEAR::Text_Highlighter (PHP)
prettify.inc.jsgoogle-code-prettify (JavaScript)
shjs.inc.phpSHJS (JavaScript)
codehighlight.inc.php独自に実装 (PHP)
highlight.inc.phpSyntaxHighlighter (JavaScript)

(Counter:1, Today:1, Yesterday:0)
トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   最終更新のRSS