2012年1月18日水曜日

ソース部分をSyntaxHighlighterで表示する

このブログに載せる記事の中で、プログラム部分をわかりやすくしたいと考えていた所、「SyntaxHighlighter」という物があることを知った。
javascriptを使って整形するらしい。

SyntaxHighlighter

これを使うと以下のように出来る。

「例」
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // iPad
} else {
    // それ以外
}

「出来る」と書いたが、実際にはSyntaxHighlighterのHPのinstllationに書かれている方法は
Bloggerではそのまま使えない。
Bloggerにはjavascriptファイルを中に置くことが出来ないので、外部サーバーのどこかに置くか、
記事の中に全てを埋め込む必要がある。

最初は、script実体をファイルから本文内に展開していた。
scriptなので表示されないが、結構な行数である。
しかも、再編集をかけるとなぜか無効になってしまう問題があった
(スクリプティング部分が勝手に書き換えられてしまう感じ。再貼り付けすると直る)。

そのため、別の場所に置いたファイルを読み込ませるようにした。
これなら再編集してもおかしくならないし、比較的簡単。

ただし、SyntaxHighlighterからダウンロードしたファイルをそのまま展開したディレクトリ構造と、
installationに書かれているサンプルに書かれているディレクトリ構造は異なるので、
書き換えが必要である。
また、リストに入れる言語別に使用するスクリプトファイルも変更しなければならない。

また、Objective-CではC用のスクリプトを使うのだが、これにはバグがあって、
プロトコル宣言である<プロトコル名>を1行で書くと、リストの最後というか
<pre>の直前にそのプロトコル行が再表示されてしまう。
これを回避するには<とプロトコル名と>を改行で分けて記述すれば良い。
スクリプトを書き換えれば直るのかもしれないが、解らなかった。

HTMLモードで記述し直す必要があるので、過去にさかのぼっての適応は
「気が向いたら」することにした。

Bloggerが標準でサポートしてくれれば良いのだが。
それとも、私が知らないだけで方法はあるのだろうか?







0 件のコメント:

コメントを投稿