2013年11月2日土曜日

Blogger でgoogle-code-prettify を使う

久し振りに本家サイトを見たら使い方が簡単になっていました。
GettingStarted - google-code-prettify

Blogger で使うなら HTML/JavaScript の設定に 1 行書くだけです。
<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js?skin=sons-of-obsidian"></script>
pre タグの class に prettyprint を指定すると発動します。"<" は &lt;、">" は &gt; に置換する必要があります。
#!/usr/bin/env python
print "Hello, world."
linenums を指定すると行番号を表示します。 デフォルトのスタイルだと 5 行目から 5 行おきにしか表示されません。 skin=sons-of-obsidian を指定すると毎行表示されます。お好みで選択しましょう。
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
まみむめも
や ゆ よ
らりるれろ
わ を ん

Cygwin で Yafc をインストール

長いこと愛用している Yafc が Cygwin で提供されていないので自前でビルドしてみます。

Yafc とは Yet Another FTP Client の略で FTP クライアントの一種です。SFTP クライアントとしても利用できます。セキュリティにうるさい昨今では SFTP の方が一般的で FTP を使うことの方が稀でしょう。LFTP も有名ですが Yafc の方が好みです。

Yafc は libssh を利用しているので先に libssh をインストールします。Cygwin の setup.exe を実行するとパッケージ一覧に libssh2 が表示されますが libssh とは別物です。

libssh のインストール

libssh をコンパイルするにあたって事前に以下のパッケージをインストールしました。環境によっては他にも必要なパッケージがあるかもしれません。

libssh のコンパイルに必要なパッケージ:
  • cmake
  • gcc-g++
  • openssl-devel
  • zlib-devel
コンパイルには build ディレクトリを作成してその中で cmake, make を実行します。うまくいくと libssh が /usr/local/lib にインストールされます。

$ tar xvzf libssh-0.5.5.tar.gz
$ cd libssh-0.5.5/
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install

Yafc のインストール

これで本来の目的である Yafc のコンパイルにができます。Yafc の configure は TCGETS/TCSETS の存在をチェックしますが Cygwin には存在しません。回避策として TCGETA/TCSETA に置換します。影響度は不明ですが、特に不具合がなさそうなのでこれでよしとしました。また /usr/local/lib を RPATH にセットするので LDFLAGS にオプションをセットします。

$ tar xvJf yafc-1.2.4.tar.xz
$ cd yafc-1.2.4/
$ sed -i -e 's/TCGETS/TCGETA/g; s/TCSETS/TCSETA/g;' configure
$ CPPFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib -Wl,-rpath,/usr/local/lib" ./configure
...
compiler ....................... gcc -std=gnu99 -g -O2
preprocessor flags ............. -I/usr/local/include
linker flags ................... -L/usr/local/lib -Wl,-rpath,/usr/local/lib
libraries ......................  -lreadline -lssl -lcrypto -lz   -lssh -lssl -lcrypto -lz
installation prefix ............ /usr/local
using Kerberos 4 ...............
using Kerberos 5 ............... no, not found
using readline ................. yes
using ssh ...................... yes
using IPv6 ..................... no, not found
using NLS ...................... no, not found
$ make
$ make install

これで yafc.exe が /usr/local/bin にインストールされました。
SFTP クライアントとしてホストに接続するにはホスト名の前に ssh:// をつけます。


$ /usr/local/bin/yafc.exe ssh://hostname