« 完成版 HaloScan のコメント数を全部表示する | Main | ローカルプレビュー時の公開プロセス »
Thingamablog は FTP や SFTP のサーバに直接コンテンツをアップロードするが、iBlog のようにローカルに一旦出力してブラウザでプレビューすることもできる。
私が以前から使用している iBlog は、ローカルのデータからサイトの内容をローカルに出力し、以前の公開との差分をサーバにアップロードする仕様になっている。この方針はローカルのディスクを二重に使用するというディメリットもあるが、公開する前に心ゆくまでテンプレートや CSS を調節できるし、エントリに書いた XHTML の確認もできる。Thingamablog のように公開されたものだけがブラウザで見ることができるとなると、こういう編集作業も公開されてしまう。できればそういう作業は公開前にやりたいものだ。
さらに XHTML や RSS がサーバ上にしかないというのはカスタマイズの範囲を Thingamablog だけでできることに限らせてしまう。iBlog ではプレビューと公開の間にスクリプトの実行を挟むことでプレビューで生成された XHTML を加工したり、新たなファイルを付け加えたりといったほとんどなんでもありのカスタマイズが可能になっている。この便利さを Thingamablog にももらたらしたい。
今 iBlog によるブログを Thingamablog に移行している途中なのだが、そこで iBlog のように一旦ローカルにプレビューサイトを作成してから公開するようにしてみた。やりかたは簡単。
設定パネルの [一般] の中にある [ベースパス] にローカルのプレビュー先のディレクトリを指定する。例えば Mac OS X ならば /Users/okamura/Sites/TBMemo とする。
設定パネルの [公開] の中にある [転送タイプ] のプルダウンメニューから [Local] を選択する。
そうすると「パーソナルウェブ共有」を有効にしていたら http://localhost/~okamura/TBMemo/ がプレビューサイトのベース URL になる。「パーソナルウェブ共有」を無効にしているのならば file:///Users/okamura/Sites/TBMemo/ がプレビューサイトのベース URL だ。
こうすることで Thingamablog によるそのブログの公開は実際にはプレビューを意味することになる。そして実際の公開は他のツールを使用する。例えば Mac OS X などの UNIX 系の OS ならば rsync が使用できる。iDisk をマウントした上で例えば次のようにする。
rsync --update --recursive --delete --progress ~/Sites/TBMemo /Volumes/yuji_okamura/Sites/
iDisk の Sites の直下に TBMemo というフォルダができて、その内容がローカルの Sites/TBMemo と同期される。FTP でアップロードするサイトでは Active Mounter を使ってマウントすれば同様に rsync を利用できる。
他にも便利なツールがあるかもしれない。例えば rsync 以外で私が唯一使ったことがあるのは Intego の Personal Backup だ。だがしかし試しに一度使ったきりで使わないことにしてしまった。というのは同期するフォルダやその下位フォルダ全てに隠しファイルで同期の記録が作られてしまうからだ。能率よくやるためにはそれもありかと思うが、公開する側にもそういうのが作られてしまうのは気持ち悪い。何かモードを間違えていたのかもしれない。その点 rsync はそういう懸念がない。その代わり同期が実際に始まるまでチェックに少し時間がかかってしまう。