ラベル Blogger の投稿を表示しています。 すべての投稿を表示
ラベル Blogger の投稿を表示しています。 すべての投稿を表示

2014年2月9日日曜日

Blogger でソースコードを綺麗に貼る

突然ですが、技術ブログをちゃんと書こうと思い立ちました。
技術ブログを書くにはソースコードを綺麗に表示することが必要なので、今回は準備として、その方法を調べました。

SyntaxHighlighterを使います。
こちらのブログを参考にさせてもらいました!)

1. 基本的な準備

最初に流れを書くと下記のような感じです。
  1. Syntax Highlighter Scripts Generator で、タグを取得
  2. 上のタグをテンプレートのHeaderにコピペ
Generator では、ソースを表示する際のDesign Themeの選択と、利用予定の言語を選択します。


「Generate」ボタンを押すと、タグが発行されます。
例えば、Python、Java、JavaScript、HTMLを選択したときのタグは下記のとおりです。

<link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" rel="stylesheet" type="text/css"></link>
<link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css" rel="stylesheet" type="text/css"></link>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js" type="text/javascript"></script>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>

あとはこのタグをテンプレートのHeaderにコピペすれば準備完了です。

2. 使い方

<pre>タグで囲むだけです。<pre>タグの書式は、

<pre class="brush: alias"></pre>

上の"alias"の部分を言語に合わせて、java、html等を代入してください。
またこのpreタグには色々な拡張があり、たとえばインデントためのTab幅を設定するtab-sizeなんかがあります。詳しくはSyntaxHighlighter.configを御覧ください。

3. カスタマイズ・注意点

デフォルトだと右上にソースコード領域に"?"ボタンがでるので、これを消します。公式サイトへのリンクなのですが、申し訳ないですが邪魔なので。。
消し方は簡単で、下記のコードをGeneratorで発行したタグに追加するだけです。

SyntaxHighlighter.defaults['toolbar'] = false;

最後に、注意点が2つ。
まず、これはBloggerのプレビューには反映されません。投稿して確かめるしか無いです。
あと、ソースはHTMLとして直接書くので、HTMLなどのコードを表示しようとすると"<"を書く場合は"&lt;"と書く必要があります。この変換は何かのエディタでやっても良いですが、下記の技を使うと便利です。
  1. 投稿画面の普通のリッチテキストモードにHTMLコードを貼る
  2. HTML作成モードに移ると"<"が"&lt;"に変換されているので、それを<pre>タグで囲む
せっかく準備したので、これからどしどしブログ更新します。

2011年6月30日木曜日

Bloggerのキーバインドと戦った話

お久しぶりです。
驚くことに前回「ブログはじめました。」ってエントリーを書いてから、はや1ヶ月が立ちました。びっくりです。

とは言っても、この1ヶ月完全にブログのことを忘れていたわけではありません。
むしろ隔日くらいでブログ更新してないことを思い出しては、そこはかとない罪悪感を感じていました。

ではなぜ更新しなかったかと言うと、bloggerのキーバインドのせいです。具体的には、これ↓です。
  • Ctrl+P:「投稿を公開」
話は変わりますが、自分が好きなエディタはemacsです。
emacsのキーバインドはこんな感じです。
  • Ctrl+P:「↑(上向きカーソル)」
このキーバインドは完全に癖になっているので、
カーソルを上に移動しようとするたびに投稿する
という悲劇が生じました。実際、最初のエントリーを書いてる最中、数十回に渡り投稿しました。
(ちなみにbloggerではCtrl+Dが一時保存に設定されていて、Ctrl+D→Deleteが癖になってる自分にはこれも邪魔でした。)

編集途中のブログを公開しちゃうとかとても恥ずかしいので、この問題を解決しないことには先に進めないわけです。

ぶっちゃけて言えば、設定を「以前のエディタ」に変えてやれば解決するし、ローカルでつくって貼ってもいいし、まぁ色々と解決策はあったわけですが、なんだか負けた気がするのでどうにか「最新エディタ」で「キーバインドを無効にする」方法を探りました。

結論から言えば、firefox+KeySnailで解決しました。

最近はchromeを使っていたため、さっぱり気が付きませんでした。chromeにNinjaKit入れてユーザースクリプト書いて…とか試してたんですが、これが一番手っ取り早いのでこれで行きます。
ちなみにchromeでもYakShaveっていうKeyBind系の拡張を入れてるのですが、これではbloggerのキーバインドには勝てなかったみたいです。

なにはともあれ、これで障壁が無くなったので、これからはブログどしどし書きます。