codehighlight.inc.php†
サマリ | プログラムのソースコードを色分けして表示 |
リビジョン | 0.6.1 |
対応バージョン | 1.5.4, 1.4.6 |
投稿者 | sky |
投稿日 | |
ライセンス | GPL |
緊急: r0.3.0からr0.4.3.1までに脆弱性が見付かりました。
r0.4.3.2で修正したので至急乗り換えるようにお願い致します。
重要 : このプラグインは将来複数行のプラグイン引数の方式が大きく変更する可能性があります。仕様変更に追随できる方のみご試用ください。
PukiWiki 1.4.6 からプラグインへの複数行引数がオプションとして拡張されました。
標準ではOFFになっています。
開発に関する話は
開発サイト
に移動しました。
リリースは引続きこのページで行います。
プログラムのソースコードの中に含まれるキーワードとコメントを色分けして表示します。
PukiWikiPlus!
にはプラグインへの複数行引数拡張と共にこのプラグインが同梱されています。
引用元†
次の2つのサイトにあったハイライトを元にしています。
2つともサイトが消失してしまったようです。
最新版はコードが別の物に置き換わっています。
それぞれのサイトで尋ねないようにしてください。
このプラグインの製作関係者†
- sky
- sakurai: http:// www.wikiroom.com/sakurai/
- アクア
ダウンロード†
http://briefcase.yahoo.co.jp/sky20050724/
PHP8対応版 byはいふん†
使い方は本家とほぼ同様です。
ルーチェ様が更新してくださったものを更にPukiWiki1.5とPHP8に対応させてみました。
変更箇所†
- 定義PLUGIN_CODE_LANG_ALIASで言語名のエイリアスを設定できるようにしました。
- PHP8への対応
- PukiWiki 1.5.xへの対応
- UTF-8化
インストール†
- phpファイル (code.inc.phpと code/ 以下のファイル)
をプラグインディレクトリ (デフォルトで pukiwiki/plugin) に置きます。
- pngイメージファイル(code_dot.png, outline_open.png, outline_close.png) をイメージディレクトリ(デフォルトで pukiwiki/image) に置きます。
- ファイル code.css と code.js をスキンディレクトリ(デフォルトで pukiwiki/skin) に置きます。
- cssファイル (pukiwiki.css.php) に次の1行を追加します。
@import "./code.css";
- 挿入場所は@charsetの前後でないと無効です。
if ($media != 'print') $media = 'screen';
// Output CSS ----
?>
@charset "<?php echo $charset ?>";
@import "./code.css";
pre, dl, ol, p, blockquote { line-height:130%; }
blockquote { margin-left:32px; }
body,td {
使い方†
- ブロックプラグイン
#code[([言語名] {,[menu|nomenu], [number|nonumber], \
[outline|nooutline], [icon|noicon]}, ファイル名)|)]{{
ソースコード
}}
- コマンド
?plugin=code &page=ページ名
ページに記述†
#code[(言語名,オプション)]{{
ソースコード
}}
ファイル取り込み†
#code([言語名][,オプション],ファイル名)
#code([言語名][,オプション],URL)
URLを指定して取り込む場合は
ソース内に記述された制限を解除してください。
ライセンス : GPL
pre.inc.php†
共通のライブラリを使用するpre.inc.phpを同梱しました。
質問・コメント†
- ブロックプラグインの書式例は、合ってるんですか? -- bc
- ソースに「}}」があるとダメですね。ちょっと改造が必要ですね。 -- Matthew
- ソースに「}}」がある場合は{{{ソース内容}}}と括りを増やせばいけるはず? --
- lib/convert_html.php を読んでいたら括弧の数は幾つでもよいみたいですね。確かに増やすと表示されました。解決解決。ありがとうございました。 -- Matthew
- code(delphi)を使うと、一行ずれてしまいます・・・。なんとかならいなかなー。サンプルがなぜか0から始まっているし・・・ --
- code(ruby)もずれます。サンプルの方もなぜか、0からはじまってるようで・・・ --
- code(c)だとエラーがでるのは何故・・・ -- Matthew
- メンテ終了ですか?(´д`;)どなたか直しませんか?言いだしっぺの法則か・・・ --
- google-code-prettify http:// plaza.rakuten.co.jp/nobuvrooom/diary/200707120000/ --
- 活動再開?pukiwiki全体に言えることだけど、コメントとかの古い情報をどこかに置いて、新しい情報のみにすると見やすくなるかも… --
- phpのソースで、頭に「<?php」がついてない場合の特殊処理で、戻す処理の正規表現にマッチしないため勝手に「<?php ~ ?>」で囲まれてしまいます。$html = preg_replace('/(?:<span[^>]*><\?php <\/span>|<\?php )(.*)?(?:<span[^>]*>\?><\/span>|\?>)/m','$1',$html); --
- 自作プラグイン/geshi.inc.php GeSHi を利用してソースコードを色分け表示する --
- IE6でちゃんと表示されないのは何で?FireFoxだとちゃんと表示される --
- ううぅぅ、脱帽でござりまする。 -- sky
- ありがとうございます。(上の書き込みはcode.inc.phpのskyと関係ありません。) -- sky
- code_0_6_0_pr3i の code/codehighlight.php 1204行目 「isset($spaceHash[$code])」は「isset($htmlHash[$code])」の誤りかと。 -- ルーチェ
- これを修正しないと、 #include <stdio.h> 等の <~> がHTMLタグとして扱われてしまい、表示されなくなります。 -- ルーチェ
- ダウンロード先のリンクが切れてしまっているようですが、現在はどこからダウンロードできるでしょうか --
- GPLとのことなので、上述のバグを修正してC++/CLIに対応させたものを配布してみます。 → http:// www.ruche-home.net/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9#pukiwiki-code -- ルーチェ
- ↑2009-11-13更新 -- PHP用ハイライト処理を全体的に修正。上で指摘されているバグも修正。 -- ルーチェ
- code,codehighlightプラグインの代替: 自作プラグイン/code_x.inc.php#code_alternatives -- umorigu
- PukiWiki 1.5.4 RC2&PHP8へ対応させてみました。 -- はいふん