« ブログやってます | メイン | Ruby on Rails データベースmigration入門2 »

編集部ブログはgoogle-code-prettifyを使っております

iioka@人生色々
です。

CodeZine編集部ブログでは、ソースコードに自動的に色づけしてくれるツール、
「google-code-prettify」を使用しています。

google-code-prettify - Google Code


google-code-prettifyはCSSとJSのセットで、
ページロード時にpreタグに囲まれた内容をJavaScriptで色づけしていく仕組みになっています。
プログラミング言語を自動的に判別してくれるので、とても便利。


ところで、
最近では安定した挙動のgoogle-code-prettifyなんですが、
相変わらず環境設定に手こずる自分は、
今回のgoogle-code-prettify導入にも、もれなく手こずってしまいました。
(すでに導入されたブロガーさんたちの記事も読んだんですが、それでも手こずったさ)


ということで以下、メモです。
なお、これはCodeZine編集部ブログの環境だから起きたことかもしれないので、
他の環境では無問題かもしれません。
ご参考までに。

・small版を導入すると「null」とか言われる。
google-code-prettifyは普通のバージョンと、コメントやスペースを除去した「small」版が公開されているのですが、
small版を入れると、色づけに失敗し、preタグの中に「null」と表示されてしまいました。
対策:通常版を導入し、コメントを適当に削除して使いました。


・主にFirefoxで変な改行が混じる
ソースコードの頭と後ろに改行が混じってしまいました。
対策:preタグ直後からソースを書き始める。

<pre class="prettyprint">
public…

ではなく、

<pre class="prettyprint">public…

と書く。行末も同じく、ソース終了直後に閉じタグを記述。


・それでも主にFirefoxで変な改行が混じる
文頭のみならず文中にも改行が混じってしまう。
対策:preタグの前に改行を加える。

これは、google-code-prettifyというよりもブログツールが原因かもしれません。
文章を書いてて、次の行にpreタグを書いてしまうとダメみたいです。
なので、

…というソースは以下のようになります。
<pre class="prettyprint">public…

ではなく、

…というソースは以下のようになります。
(改行)
<pre class="prettyprint">public…

としたほうがいいみたいです。閉じタグの後も改行しました。


・レンダリング遅くて困りんぐ
多くのブロガーさんが指摘していましたが、bodyタグのonloadで関数を呼ぶようにすると
ページ全てを読み込むまで待つため、遅くなってしまうようです。
対策:閉じbodyタグの直前で関数を呼ぶ。

ただし、CodeZine編集部ブログでは、左ペイン、中ペイン、右ペインの順にロードするので、
右ペインロード直前で関数を呼ぶようにしました。


この後、運用してて特に問題がなければCodeZine本体でもgoogle-code-prettifyを使いたいなと思います。
その際、リアルタイムでJavaScriptを実行するわけではなく、
あらかじめ実行したHTMLをパブリッシュしておき、表示するようにすれば、
今まで通りのスピードで表示できるかな、とか考えてます。

みなさんも、ぜひ使ってみてはいかがでしょうか。

トラックバック

このエントリーのトラックバックURL:
http://blog.shoeisha.com/cgi-bin/mt/mt-tb.cgi/185

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

スポンサーサイト