毎回私がソースコードを表示するのに使っているJavaScript- dp.SyntaxHighlighterの紹介です。無料でソースが公開されていますので、自由に使うことができます。
Yahoo! UI Library: Grids CSSにて、このJavaScriptを使っていましたので使うことにしました。MTなんかでは、公開するソースによっては行番号などの指示をする場合などがありますので何かと便利だと思われます。
dp.SyntaxHighlighterの特徴
- dp.SyntaxHighlighter Home Page
- http://www.dreamprojections.com/syntaxhighlighter/Default.aspx
- プログラム毎での特定要素の文字色を変えて表示することができます。
- 各ソースに行番号を付加することができます。
- IEであれば、”copy to clipboard”のリンクが表示されて公開しているコードの取得も簡単です。
- ”view plain”のリンクでテキストエリアでのソースが別画面にて表示されます。
- ”print”のリンクでソース部分を印刷することも簡単にできます。
- JavaScriptオフの状態では、テキストエリアにてコードが表示されます。
dp.SyntaxHighlighterのサポートしているプログラム言語
以下のプログラムコードをサポートしています。
- C#
- CSS
- C++
- VB & VB.NET
- Delphi, Pascal
- Java
- JavaScript
- PHP
- Python
- Ruby
- SQL
- XML, HTML, XSLT and any other XML style code
dp.SyntaxHighlighterの導入
- dp.SyntaxHighlighter Home Page
- http://www.dreamprojections.com/syntaxhighlighter/Default.aspx
上記のサイトからプログラムをDLします。ScriptsフォルダのJSファイルを今のブログのフォルダへすべてアップロードします。
CSSコード追加
StylesにあるSyntaxHighlighterファイルのCSSを既存のCSSに追加します。
ちょっとCSSを書き換えます。以下のCSSを参考にして各自にてCSSを調整しながら書き換えてみてください。もしくはYahoo! UI Library: Grids CSSのCSSを参考にして書き換えてみるといいかもしれないです。私の書き換えたパターンは以下の通りです。
基本タグ
公開するコードをすべて以下のtextareaタグのパターンで囲みます。
尚、囲むコードのプログラム言語に応じてclassセレクタを変えます。
- XMLコードの場合、
class="xml" - CSSコードの場合、
class="css" - JavaScriptコードの場合、
class="js" - Rubyコードの場合、
class="ruby" - SQLコードの場合、
class="sql" - Visual Basicコードの場合、
class="vb" - Javaコードの場合、
class="java" - pythonコードの場合、
class="python" - C#コードの場合、
class="c#" - C++コードの場合、
class="c" - Delphiコードの場合、
class="delphi"
スクリプトの追加
公開するエントリーの最後に以下のスクリプトコードを付加します。
尚、各プログラムコードによって追加するスクリプトが異なります。
以下のスクリプトが基本です。
上記のコードにプログラムによって以下のスクリプトを追加します。
例えば、わたくしの場合はXMLとCSSコードを主に情報として公開していますので、毎回エントリーの末尾に以下のコードを追加しています。
その他の機能
classセレクタの指定を変えることでさまざまな機能を追加することができます。
詳しくは、Extended configurationをご覧ください。
注意点
dp.SyntaxHighlighterを使っていて気になった点を紹介しておきます。
<textarea></textarea>について
公開するコードの中に<textarea></textarea>がある場合は、そのコードのみを実体参照に変換する必要があります。
実体参照コードに変換するには、お使いのオーサリングツールもしくはこちらの蓄々HTML実体参照変換を使うと便利です。
- 蓄々HTML実体参照変換
- http://www.akiyan.com/cc_convert_html_specialchars
私の場合は、CSSコード以外はすべて実体参照に変換しています。オーサリングツールであれば簡単に変換してくれます。
行番号が表示されない-<ol></ol>タグのCSS指定
たぶんjavascriptでDOMの置き換えをしています。お使いのブログの既存CSS設定で表示されない場合があります。一度確認してみてください。行番号が表示されない場合は、<ol></ol>タグのCSS指定が必要です。
上記のCSSを追加することで行番号が表示されるようになると思います。
CSSのleftの重複表示
以前のソースをお使いの方は、CSSのleft表示が重複表示されていましたが、先月のアップデートで改善されたみたいです。
たまに公開サイトを覗いて修正点などのバグの解決がされていますので、そのつどスクリプトをアップデートするといいですよ。
コード公開手法参考エントリー一覧
他にもコードの表示方法にはいろんな手法で公開されているみたいです。以下の参考エントリーをご覧になり、ご自分に適した方法で公開してみるといいですよ。
参考JavaScript
ブラウザ上でHTML・JavaScript・PHP・Javaを作成できるエディタです。
- Real Time Syntax Highlighting Code Editor JavaScript:
- http://www.txt.org/rtshjs/index.htm?ts=222123821226


コメントする