Posted by をかもと at 2008年10月15日 水曜日
今までは、ソースコードのハイライト表示を iG:Syntax Hiliter を使用していたのだが、思う所あってsyntax highlighter で表示するようにした。
で、この JavaScript を WordPress に導入する際に良いプラグインが無いか探したのだが、いまいちなものばかりだったので自作。
といっても、要件は iG:Syntax Hiliter と同様に指定できるものって事だけだったので、あっさりとできあがり。
対応言語は、c, cpp, csharp, java, javascript, delphi, pascal, php, python, ruby, vb, vbnet, sql, css, xml, html, xhtml, xslt。
ブログエントリ内への記述方法は iG:Syntax Hiliter と同様にして以下のように記述.
[言語名 num="10"]hogehoge(); fugafuga():[/言語名]
のように記述すると、指定した言語に合わせてハイライト表示します。
# 実際には [] 内の言語名は c, javascript などの対応言語名を記述してください。
# num="?" で数値指定すると行番号のカウントを指定された番号から開始します。
ソースコード部分は勝手に実態参照文字列に変換しますので、ソースをそのまま書いておっけです。
メニュー部分とかを日本語化したら WordPress Plugins/JSeries で正式リリースしようと思いますが、機能に満足してしまったので、ここで開発を止めてしまうかも。
2008/10/29 追記
メニュー部分を多言語対応して JSeries でリリースしました。
ダウンロードと詳細な説明は下記を参照してください。
WordPress Plugins/JSeries » Syntax Highlighter for WordPress
つぶやく
おかもとさま。
初めまして。MNNと申します。
“Syntax Highlighter for WordPress” を使わせていただこうとしたのですが、
プラグインを有効化しようとすると、syntax_highlighter.php:34でwokCommonController classが無いとのエラーでプラグインを有効化する事が出来ません。
includes/common-controller.php内でwokController classの定義がされているため、syntax_highlighter.phpの記述をwokControllerに変更したところとりあえずプラグインの有効化は出来たようです(まだソースコードは記述していないためこれ以上の動作は確認できていないのですが…)。
お手数ですが、JSeriesでリリースされている “Syntax Highlighter for WordPress” をご確認いただけますでしょうか。
MNN さん、はじめまして。
あわわ、本当だ。
私のプラグインで共通で使っている Class の名前を変更したんですが、その修正漏れでした
修正して、JSeries の配布物を入れ替えておきました。
ご報告ありがとうございます。
をかもとさま。
修正ありがとうございます。無事”Syntax Highlighter for WordPress”を有効化する事が出来ました。”Quick Comments”共々使わせていただきます。
便利なプラグインの公開ありがとうございました。
先日はコメントありがとうございます、早速のSyntaxHighlighter2.0への対応お疲れ様です^^
ちなみにJSeriesにアップされていたVer.2.0.0をテスト環境にインストールしてみたところ、エラーが出てインストールできなかったのでご報告を。
エラーはincludes/common-controller.phpの67行目でsyntax error, unexpected ‘)’ との事です。
67行目のifが抜けていたからのようなので
file_exists(trailingslashit(ABSPATH . $this->plugins_dir . $this->plugin_dir). ‘includes/js/jquery-1.3.1.min.js’)) {
を
if(file_exists(trailingslashit(ABSPATH . $this->plugins_dir . $this->plugin_dir) . ‘includes/js/jquery-1.3.1.min.js’)) {
とすると無事動きました。
php4でも動作確認しました、ありがとうございます^^
daruman さん、どもです。
あわわ、本当だ
不具合報告ありがとうございます。
早速 JSeries の方、修正しておきました。
先日は修正ありがとうございます、折角なので別立てでレビューしてみました。
と、宣伝じゃなく報告を。
highlight-linesがどうも効いてないです、複数ラインを指定する際[1,2…]で記述すると閉じ括弧がショートコードの閉じと誤認される形になってました。
またhighlight-linesの呼び出しのスペルも違うのかもしれません。
修正点ですが恐らくsyntax_heghlighter.phpの264行目
(!empty($highlight_lines) ? ” highlight-lines: {$highlight_lines};” : ”)
を
(!empty($highlight_lines) ? ” highlight: [$highlight_lines];” : ”)
と修正すると、こちらの環境ではうまく表示されました。
また、この際複数行指定する時の記述は
highlight_lines=[1, 2, 3]
ではなく
highlight_lines=1, 2, 3
もしくは
highlight_lines=”1, 2, 3″
だと通るようです。
合ってるか少し不安ですが、一応報告まで。
daruman さん、どもです。
おぉ!本当だ
これは、不具合ですね、修正します。
修正方法は、ご指摘のとおりです。
ライセンスについての基本的な質問になってしまうかも知れませんが、
Syntax Highlighter2.0がDonationwareということは、
このプラグインを使用する際にもそれが適用されるということなのでしょうか?
GW28 さん、はじめまして。
このプラグインのライセンスは GPL のみ適用させてもらっています。
ただし Syntax Highlighter 2.0 については Donationware ですので、もし良ければ開発者に寄付してあげてください。
をかもとさん、ご返答頂いてありがとうございます。
やはりプラグインに使用している他のライブラリやコードのライセンスは継承されるのですね。
ありがとうございました。
初めまして
最近バージョンアップしたWordPress2.82(ja)でSyntax Highlighter2.01を使用させていただいております。
プラグインの有効化は出来たのですが、スタイルシート[css]〜[/css]が整形されないようです。
[html]は整形されます。
以上ご報告まで
scorpion さん、はじめまして。
うーん、私の環境も WordPress 2.8.2(ja) + Syntax Highlighter 2.01 なんですが、問題なく整形されます。
ひょっとして、そちらでお使いの他のプラグインで [css] というショートタグを使用するものがあるのでは無いでしょうか?
Syntax Highlighter 以外のすべてのプラグインを停止した状態でも整形されないでしょうか?
整形されるようだったら、一つ一つプラグインを有効にしていって、どのプラグインと競合しているか確かめてみてください。
をかもと様

返信有難うございます。
テーマを2.8.2のdefaultに戻してプラグインをこのHighLighterだけ有効にして試してみましたが[css]〜[/css]は整形されませんでした。
う〜ん、何ででしょ??
ちなみに前POSTの時に使用していたテーマは「iNove」です
私も使わせていただいておりますが、同じように[css]〜[/css]が利きません。
環境は以下です。
【WordPress】 2.8.3
【プラグイン】 Akismet、WP Multibyte Patch、Syntax Highlighter for WordPress
【テーマ】 monochrome 1.2
公開中のblogなので、夜中にでもテーマ変更などして見ます。
取り急ぎ報告まで。
どうぞ宜しくお願いいたします。
torham さん、はじめまして。
お二方から報告があったってことは、私のテスト環境でたまたまうまくいってるだけなのかも知れませんね。
時間のあるときに確認します。
ご迷惑をおかけしますが、少々お待ちください m(_ _)m
torham さん、scorpion さん、すいません。
CSS が反映されなかった件、原因が分かりました。
修正した Ver.2.0.2 を JSeries でリリースしましたので、アップデートをお願いします。
http://sourceforge.jp/projects/wppluginsj/downloads/43064/syntax-highlighter.2.0.2.zip
をかもと様、早速新バージョン試してみました。
CSSばっちりでした!
お忙しいところ、どうもありがとうございました!
今後とも宜しくお願いします。
torham さん、どもです。
今回は、不具合報告ありがとうございました。
テストしきれていない所が多々あるので、こういった報告は非常に助かります。
Ver.2.0.2をありがたく使わせていただいてます。
ビジュアルエディタだと二重にエスケープされるので、
エスケープされないように改造して使ってます。
また、do_shortcode関数のプライオリティを変更されているようで、
そのため他のショートコードに影響することがあります。
詳しくは自分のサイトで紹介させていただいてますが、
改善していただけるとうれしいです。
MuRa さん、はじめまして。
ご指摘の件を修正し、Syntax Highlighter Ver.2.1.x に対応させた Ver.2.1.364 をリリースしました。
よろしければバージョンアップしてください。
http://wppluginsj.sourceforge.jp/syntax-highlighter/
修正早すぎw
さっそく入れてみたところ、ばっちしです!JavaScriptも新しくなって見やすくなってますね。
ありがとうございます。
タブやスペースが編集中に変換されてしまうのはTinyMCEを直さないとなりませんね。
ぐぐったらTinyMCEのおせっかい変換機能をオフにする方法が色々あるみたいなので試してみます。
ちなみに、ここのコメント送信、IE8だとコメントが空ですって出て送信できなかったです。
気になってたけど、手抜きしていた所を指摘されたので修正しました。
TinyMCEのお節介変換機能は、残念ながら対応する予定はありません。
これをオフにしちゃうと、影響範囲が大きそうなので。