dp.SyntaxHighlighter-コード表示に役立つJavaScript

| コメント(0) | トラックバック(2)

ブログなどでソースコードを公開する際に役立つJavascript-dp.SyntaxHighlighterの紹介です。各プログラムコードで特定要素のカラーを変えて表示することができます。

毎回私がソースコードを表示するのに使っているJavaScript- dp.SyntaxHighlighterの紹介です。無料でソースが公開されていますので、自由に使うことができます。

syntax.gif

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

トラックバック(2)

トラックバックURL: http://weblibrary.s224.xrea.com/x/mt/mt-tb.cgi/175

前々から、ソースコードを載せるには・・・と思っていましたが、 Web Desig... 続きを読む

今までのデザインでは pre タグ or code タグで PHP などのコードを表示していましたが、今回のサーバ移転&デザイン変更を機にコードの表示に ... 続きを読む

コメントする

ウェブページ

   
  
OpenID対応しています OpenIDについて
Powered by Movable Type 4.25

このブログ記事について

このページは、cool_ni_ikouが2006年10月21日 13:38に書いたブログ記事です。

ひとつ前のブログ記事は「ブックレビュー-100の悩みに100のデザイン 自分を変える「解決法」 (新書) 」です。

次のブログ記事は「Highslide JS用アトリビュート追加-Movable Type(ムーバルタイプ)埋め込み画像カスタマイズ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。