てぃーだブログ › CE CreativeSection › JavaScript › SyntaxHighlighterをTidaBlogに実装してみる

2010年03月30日

SyntaxHighlighterをTidaBlogに実装してみる

オッスおら開発K!ワクワクすんぞー

ということで記念すべき第1回目は・・・
てぃーだブログにおけるSyntaxHighlighter実装について!
はい。かなりモテない会話の要素の1つです。

SyntaxHighlighter
http://alexgorbatchev.com/wiki/SyntaxHighlighter

その前に・・・
SyntaxHighlighterとは何ぞや?」というボーイに簡単に説明。

プログラマや開発者が技術系のサイト/ブログ等で自ら書いたソースコードを公開したり自慢したり威嚇する際に、色付けをして第三者から見やすくしてくれるボーイですよボーイ。他にもGoogle製のGoogle code pretty等もあるけど、今回は見た目的に良さそうだったのでSyntaxHighlighterをチョイス。

んではサンプルをば少々。

PHP

$last = array("1"=>"天さん","2"=>"死なないで");
foreach($last as $v){
//コメント
echo trim($v);
if($nappa){
$nappa["status"] = true;
die("チャオズ~!");
}
}

AS3

public function onExit(e:Event):void
{
//コメント
trace("終了します");
}

XML/HTML

<div id="link">
<!-- コメント -->
<a href="test.html">テスト</a>
<img src="test.png" border="0" />
</div>

コピペ用の窓を出したり、即座にクリップボードにコピーしたり。
行番号も出る。いたれりつくせり。万歳!

他にも様々な言語に対応しております。
ColdFusion,C#,C++,Erlang,Delphi,Python,Ruby,SQL,Visual Basicアンドモア。どんだけよ。
http://alexgorbatchev.com/wiki/SyntaxHighlighter:Brushes


それでは導入手順を。

とりあえずおもむろに最新版を落としましょう。
http://alexgorbatchev.com/wiki/SyntaxHighlighter:Download
(執筆時のバージョンは2.1.364でした)

血まなこ気味に解凍しましょう。

解凍後のscriptsフォルダとstylesフォルダを使います。
筆者は分かりやすくscripts→js styles→css とリネームしました。

これらを
てぃーだブログ:ヘッドタグ内で召喚するので、
まずはフォルダごと自サイト等にアップします。
(TI-DAてjsとかcssとかアップ出来ます?もし可能だったらゴメン)

てぃーだブログのテンプレートの編集画面で
headタグ内にこんな感じでソースを追加します。

<script type="text/javascript" src="http://YourSite/js/shCore.js"></script>
<script type="text/javascript" src="http://YourSite/js/shBrushPhp.js"></script>
<link type="text/css" rel="stylesheet" href="http://YourSite/css/shCore.css"/>
<link type="text/css" rel="stylesheet" href="http://YourSite/css/shThemeDefault.css"/>
<script type="text/javascript">
SyntaxHighlighter.config.clipboardSwf = 'http://YourSite/js/clipboard.swf';
SyntaxHighlighter.config.stripBrs = true;
SyntaxHighlighter.all();
</script>

"YourSite"を実際のアップロード先URLに置き換えて下さい。
shCore.js,shCore.cssは必須っぽいです。
上のサンプルではshBrushPhp.jsだけが読まれているため
PHPスクリプトを表示させるだけの設定になります。他の言語を表示させたい場合は、

<script type="text/javascript" src="http://YourSite/js/shBrushAS3.js"></script>
<script type="text/javascript" src="http://YourSite/js/shBrushCss.js"></script>
<script type="text/javascript" src="http://YourSite/js/shBrushXml.js"></script>
<script type="text/javascript" src="http://YourSite/js/shBrushJScript.js"></script>

このように必要な言語分ガンガン突っ込んでいきます。
必要になった時に初めて追加する方針で良いと思います。

shThemeDefault.cssは配色テーマのファイルです。
これをshThemeEmacs.cssやshThemeRDark.css等に変更すると見た目が変わります。
お好きなデザインを。

<script type="text/javascript">
SyntaxHighlighter.config.clipboardSwf = 'http://YourSite/js/clipboard.swf';
SyntaxHighlighter.config.stripBrs = true;
SyntaxHighlighter.all();
</script>

この部分も実行するため必要です。
てぃーだブログでは改行コードが<br>に変換されて表示されるので、
3行目のオプションSyntaxHighlighter.config.stripBrs = true;が必要なようです。

後は、本文中に

<pre class="brush:php;">
ここに表示させたいソースコードを記述
</pre>

<pre>タグでこのようにソースコードを包囲します。
表示させる言語に合わせてclassの指定を
brush:as3; , brush:xml; , brush:jscript;
という具合に指定します。


良いことばっかりかと思えば1つだけ注意点があります。

<pre>タグ内「<」「>」「&」は、特殊文字として認識される為、
「&lt;」「&gt;」「&amp;」とHTMLエスケープした形で記述しなければなりません。

XML/HTMLコーダーの方は一度テキストエディタ等で検索置き換えしてからペーストする等の
一手間が必要です。でも、やっぱり日記風にソースコードを書いていきたいし、
このあたりの解決法は後々考えてみますわ。


今回は紹介と簡単な導入方法で終わってしまいました。
本当は、jsファイルcssファイル圧縮やPHPでのjsファイル結合等も書きたかったのですが・・・


あんまりこればっかり書いてたら怒られそうなのでw
このあたりで。


それでは良いソースコードライフを。




Posted by CE CreativeSection at 23:47│Comments(0)JavaScript
この記事へのトラックバック
クリエイティブセクションのKちゃんです。開発Kと名前がかぶってすみません。セクションの皆さんが撮影や開発などお仕事の事をお伝えしているなか、私は、大好きな食べ物の事をいろい...
Kちゃんのお取り寄せ天国ばんざい!【CE CreativeSection】at 2010年03月31日 21:37
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。