code.inc.php

サマリSyntaxHighlighterを利用したコードの装飾
リビジョン0.8
対応バージョン1.4.7
投稿者ubo
投稿日2012-08-30 (木) 17:01:25

概要

SyntaxHighlighter3.0もしくは2.1を使ってソースコードを装飾して表示します
sh.inc.phpをベースにhighlight.inc.phpを基にした改良を加え、独自機能を追加しました
類似のPukiWikiプラグインと比べると

  • オプションに対応
  • SyntaxHighlighter3.0対応(2系でも可)
  • 必要なものだけをロード
  • js読み込みをヘッダーにて行う

などの特徴があります
すでに同名のプラグインがありますが作者がこの名前を使いたかったので・・・
使っている人は注意して下さい
ライセンスは LGPL 3です

ダウンロード

ここ(http://www.emanong.net/pub/files/ema200.zip )からどうぞ
本当はこのサイトに上げたいのですけどアップロードできないので

更新履歴

version更新情報
0.82012.08.30 初回版

使い方

#code(言語名,オプション1,オプション2,・・・){{
ソースコード内容
}}
  • 指定できる言語名はSyntaxHighlighterに依存します
    参考 > http://alexgorbatchev.com/SyntaxHighlighter/manual/brushes/
  • 言語名が無いとplainになります
  • オプションは無くても動きますが、つける場合は言語名を必ず書いて下さい

用例

#code(php,first-line:7,tab-size:2){{
<php?
echo 'SyntaxHighlighter!';
?>
}}

注意点
}}がコードの一行中に存在したら改行して分ける、もしくは文頭と文末の{と}の数を増やすこと

オプション参考

gutter:false      行頭番号無し設定
first-line:7      行頭番号の開始値
highlight:[1.2]   指定した数値の行をハイライト(,ではなく.で区切ること)
tab-size:4        tabインデントの幅サイズ設定
auto-links:false  http://から始まるURL記述がアンカー対応になるのを回避
collapse:true     ソース折りたたみ・展開(toolbar:trueも一緒に書く必要がある)
gutter:false      行番号非表示
smart-tabs:true   インデントがきれいにそろう
html-script:true  HTML とスクリプトの混合をハイライト (必ず shBrushXml.js をロードすること)
toolbar:false     ツールバーの非表示

導入

  1. pukiwiki.ini.php内
    define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
    のときは0にしておく(複数行のプラグインを実行可能に)
  2. code.inc.phpをダウンロードしてPlugin内に入れる
  3. SyntaxHighlighter3.0を http://alexgorbatchev.com/SyntaxHighlighter/download/ よりダウンロード
  4. 解凍して、中のscriptsとstylesフォルダを丸ごとPukiWikiのディレクトリのskin/sh/にコピー

その他

  • Lua言語も使えるようにしてあります
    使う場合はshBrushLua.jsを見つけてきてscriptsにコピーすること
    ※3.0に対応していないものも多く出回っているので注意。韓国のサイトで拾ったものが使いやすかったです
  • お好みでcode.inc.phpの中のSH_SKINの値を書き換えて好きなスキンにできます
  • 2系で使う場合はcode.inc.phpを書き換える必要があります
    68行目
    $head_tags[] .= '<link type="text/css" rel="stylesheet" href="' . SH_PATH . 'styles/shCore' . SH_SKIN . '.css"/>
    $head_tags[] .= '<link type="text/css" rel="stylesheet" href="' . SH_PATH . 'styles/shCore.css"/>
    として、72行目
    SyntaxHighlighter.defaults.toolbar = false;
    SyntaxHighlighter.config.tagName = "' . SH_TAG_NAME . '";
    SyntaxHighlighter.config.clipboardSwf = "' . SH_PATH . 'scripts/clipboard.swf";
    と書き換えること
  • html-scriptオプションを使いたい場合はcode.inc.phpの70行目あたりに
    <script type="text/javascript" src="' . $script . SH_PATH . 'scripts/shBrushXml.js"></script>
    を加えるなどしてどこかでshBrushXml.jsを読み込んでおくこと
    htmlinsertプラグインを使ってもいいと思う
    裏技として
    #code(xml,collapse:true){{
    
    }}
    を使うページに書いておくのもあり(3系)

メモ

  • 吐き出すHTMLコードに無駄があるのと3.0から導入されたshAutoloader.jsに対応していないのが少し不満
  • 3.0から導入されたTitleの設定をつけたい
  • $sh_countなるグローバル変数?を勝手に作っている
  • ライセンスに詳しくないためまずいことをしているかも
    他何かあったらコメントでお願いします

コメント

  • ローカル用でしたがせっかく作ったので投稿してみました。バグあるかもです
    公開する場所がなかったのでアップローダーにあげてます。消えてたらごめんなさい -- ubo? 2012-08-30 (木) 18:01:26
  • 類似の自作プラグイン: 自作プラグイン/sh.inc.php -- 2012-08-30 (木) 21:59:53
  • ページが削除されていたので復旧しました。 -- 2013-08-02 (金) 16:04:37
  • PukiWiki Plus のgit 最新版 + SyntaxHighLighter 3.0.83で動かしているのですが、auto-links のオプションが動作せず、常に<a> のHTMLコードが挿入されてしまいます。他のオプションは正常に動作しているようです。改善するのに何か良い方法はありますでしょうか。 -- 2013-08-02 (金) 16:08:51
    • PukiWiki Plus! など、PukiWiki派生のものは当サイトでは管理しておりません。 質問などは、各サポートサイトでお尋ね下さい。 当サイトでのご質問はご遠慮下さい。 -- 2013-08-03 (土) 01:22:09

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-04 (月) 18:39:01
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.387 sec.

OSDN