ネタ元→http://blogs.wankuma.com/hatsune/archive/2008/03/25/129572.aspx
わんくまblog(.Text)でSyntaxHighlighterを使ってみよう。
SyntaxHighlighterはソースコードを見やすく表示するためのJavaScriptとフラッシュとCSSです。
SyntaxHighlighterの入手
http://code.google.com/p/syntaxhighlighter/にアクセスして、rarファイルをダウンロードします。RAR(ラー)ファイルはアーカイブファイルなので解凍用のソフトもどこからか探してきて解凍しましょう。
RARファイルを解凍するとjsファイル(及びclipboard.swf)が入ったScriptフォルダとSyntaxHighlighter.cssが出力されます。これらがSyntaxHighlighterに必要なファイル群です。
SyntaxHighlighterの設置
わんくまblogで使うためには、わんくまサイトスペースにJavaScriptファイルを設置してblogの設定を行うことになります。
JavaScriptファイルの統合
SyntaxHighlighterの設置例をみると言語に応じたBrushを列挙しています。
しかしこの方法では設置したBrush数分だけ通信が発生してしまうので、shCore.js以外の言語別Brushファイルは1つに連結してしまい、例えばshBrushAll.jsというファイル名で保存してから使うのが良いかと思います。
Scriptフォルダの設置
サイトスペースにScriptフォルダごとFFFTPなどを使って転送します。Scriptフォルダの中は、shCore.js、clipboard.swf、shBrushAll.jsの3ファイルになります。
なお、ちょっと確認したいだけとか、サイトスペースにファイルを設置するのが面倒だという方は、私のところのものを利用してください。利用方法は後述します。
CSSファイルの設置
サイトスペースにCSSフォルダを作成し、SyntaxHighlighter.cssファイルを転送します。
なお、ちょっと確認したいだけとか、サイトスペースにファイルを設置するのが面倒だという方は、私のところのものを利用してください。利用方法は後述します。
blogの設定
自分のblogでloginして[オプション]タブの[設定]をクリックします。
[カスタムCSS]欄の設定
[カスタムCSS]欄の必ず先頭にSyntaxHighlighter.cssファイルのインポートを指定します。
@import url("http://hatsune.wankuma.com/css/SyntaxHighlighter.css");
私の設置したCSSを利用するときは上記の内容になりますが、各自が設置したCSSファイルを利用するときは、もちろんURLの指定は実際の設置したCSSファイルのURLになります。
[ニュース/アナウンス]欄の設定
[ニュース/アナウンス]欄のどこかに次のscriptタグを記述します。
私の設置したJavaScriptファイルを利用するときは上記の内容になりますが、各自が設置したものを利用するときは、scr属性を実際の設置したファイルのURLに変更してください。
blogでの利用方法
コード部分はpreタグでくくり、name属性としてcode、class属性として言語を指定します。このclass属性に指定した内容でJavaScriptファイルで指定したfunctionを呼び出し、そこに書かれている予約語の色づけ指定に基づきソースコードを色づけします。
CREATE OR REPLACE TRIGGER cashbox_BI
BEFORE INSERT ON cashbox FOR EACH ROW
BEGIN
IF (:NEW.income IS NULL AND :NEW.outgo IS NULL) OR
(:NEW.income IS NOT NULL AND :NEW.outgo IS NOT NULL)THEN
RAISE VALUE_ERROR;
END IF;
-- Oracle 11g
:NEW.key := autonumber.NEXTVAL;
-- Oracle 10g
-- SELECT autonumber.NEXTVAL INTO :NEW.key FROM DUAL;
END;
/
このように指定すると実際は次のように表示できます。
CREATE OR REPLACE TRIGGER cashbox_BI
BEFORE INSERT ON cashbox FOR EACH ROW
BEGIN
IF (:NEW.income IS NULL AND :NEW.outgo IS NULL) OR
(:NEW.income IS NOT NULL AND :NEW.outgo IS NOT NULL)THEN
RAISE VALUE_ERROR;
END IF;
-- Oracle 11g
:NEW.key := autonumber.NEXTVAL;
-- Oracle 10g
-- SELECT autonumber.NEXTVAL INTO :NEW.key FROM DUAL;
END;
/