目次
いきなり結論。
既存ブログサービスの問題に対する考察 で考えた理想のBlog環境は 以下のものを組み合わせることにより、ほぼ満足いく環境ができた。
今見ているこのBlogのソースコードは全て
https://github.com/tanarky/tanarky.github.com
に上げている。
以下、詳細。
GitHubでは、コードだけではなく、HTMLなどのドキュメントも GitHubのサーバを用いて公開することができる。
静的なファイルであれば、HTMLやCSS/Javascriptなど公開可能。 画像ファイルも公開可能だが、無料ユーザの場合、容量制限が300Mなので、 画像ファイル置き場としてはあまり望ましくない。 PHPファイルなどサーバサイドでの動的処理は動かない。
この手段は、一部のオープンソースプロジェクトでよく利用されている。
設定な方法詳細は、 GitHub Pages を参照すれば詳しく書いてあるが ユーザごとのページ設定手順をざっと説明すると、以下の通り。
と、いたって簡単。
tanarky.github.com というドメイン名が気に入らなければ、 独自ドメイン設定も可能 。
valuedomainなどで取得済みのドメイン名が example.com だった場合、
github.example.com というサブドメインで公開したければ、
cname github pages.github.com.
サブドメインではなく、 example.com で公開したければ、
a @ 207.97.227.245
と、どちらかお好みのDNS設定をする。
次に、tanarky.github.comというリポジトリの直下に、 CNAME というファイル名で、 中身に公開したい独自ドメイン名を書く。
example.com で公開したければ、
example.com
と1行書いて保存すればOK。
これをgit pushして、DNSの設定が反映されれば設定完了。
GitHubを用いることで、無料のHTMLサーバと、 gitによるコード管理とバックアップ環境が、同時に無料で手に入ってしまった。
Blogofile とは、markdown形式やrestructuredText形式のファイルから、 静的HTMLをgenerateして、ブログページを構築してくれるPythonで書かれたツールのこと。
1コマンドでカテゴリ分類やRSSなども一括でgenerateしてくれる。
インストール方法、の前に、まずはPython環境を整える必要があるので、 Ubuntu11.10のPython開発環境を整備 を一読することをおすすめします。
綺麗なPython環境ができたところで、インストール。
% pip install blogofile
% cd ~/github/tanarky.github.com
% mkdir _blogofile
% cd _blogofile
% blogofile init simple_blog
% blogofile build
これで完了。 ポイントとしては、ディレクトリ名を "_blogofile" と "_" から始まる名前にしておくこと。
GitHub Page経由では、"_" から始まるファイル名やディレクトリ名は見えなくなるという仕様を利用するため。
github経由でソースが見れるんだから意味ないじゃん、という言い分もあるが、 GitHub Page経由では公開する必要がないファイルなので、 公開したいファイルやディレクトリと明示的に区別するために、"_" から始まる名前にしておく。
buildが終わったら、blogofileには、 Webサーバが同梱されている ので、
% blogofile serve 10080
Blogofile server started on 127.0.0.1:10080 ...
などとWebサーバを起動させれば、http://localhost:10080/でサイトを確認することができる。
投稿は、_blogofile/_post/ 以下に、markdown形式やrst形式などでファイルを置いておけば、 build実行時に勝手にブログ記事にしてくれる。
自分はrst形式に慣れているので、rst形式で記事を書いている。
デザインを1から作るのは大変なので、使ったことがある jQuery UI を使おうか、と思ったが、 このブログでは、勉強がてら、 Bootstrap from twitter を使ってみた。
アイコンなどの画像は一切ついていないが、 レイアウトなど、非常に直感的にデザインをいじることができるので満足している。
動的な処理は一切動かないので、各種ブログパーツに委ねないと、なんとも寂しいブログになるので、 好みのものを配置する。
個人的に、あまりブログパーツを置き過ぎると表示が重くなるのと、 見た目もごちゃごちゃするので、おいたのは以下のものだけ。
DISQUS は、Javascriptで動く、コメントやトラックバック機能を実現できるモジュールで、 このブログの一番下にも貼ってあるブログパーツ。
ログインしないとコメントさせない設定、など非常に機能が豊富で、 何より静的なHTMLの中でこういう機能が実現できるのが嬉しい。
静的なHTMLのブログ、ということでいくつか諦めた機能は以下。
長々と書いたが、上記のような構成のブログ環境は、アメリカなど海外ではやや浸透しつつある構成っぽい。 ぐぐると英語のページが色々ひっかかったので。
ただ、上記の設定内容を1つのページにまとめて書かれたものはなかったので、頑張って書いてみた次第。
GitHubにpushしなくても、上述の通り、Blogofileにはwebサーバも同梱されているので、 プライベートなブログとしてこっそり書くこともできるし、 個人ブログという用途だけではなく、プロジェクトページや企業ページでも使えると思うので、 興味を持った人は是非お試しください。
Blogofileの動作変更、SEO対策、記事を書く上でのgit branchの使い方、など 細かい設定点は他にも色々あるので、今後記事にしていく予定。
2009/08 - 2010/07まで、ブログを1年間毎日更新する、という目標を掲げて、 365記事以上書き、アクセスを増やした中で一番感じたことは、
ブログを更新することは面倒である
ということだった。
自分で書きためたネタを、時間がたって忘れたときに自分で検索して思い出したり、 書くことで頭が整理された、などの多大なメリットがあったにも関わらず、 最終的には、 面倒 がメリットをうわまって更新を続けられなくなってしまった。
この 面倒 の原因をざっと分けると、
上記の2点。
1に関しては慣れの問題である程度解消したりもしたが、 2に関してはブログを書き続けても解消されるどころか、問題がどんどん深刻化した。
深刻化した問題とは、
の3つ。
以下でそれぞれ考察してみる。
まずは、ブログツールにログインして、ブラウザ上で編集する、という行為が面倒だった。
当然ログインが必要だし、ブラウザ上で編集するためいちいち煩わしい。 小さいテキストエリアでちまちま編集しなきゃいけないし、 各画面間の遷移も積み重なってくるとイライラする。
加えて、たとえWYSIWYGという補助ツールがあっても、 文書をちょっと装飾するためにHTMLを書くのはちょっと苦行すぎる。 HTMLで記事を書くと、全体デザインを変えたときに記事とのミスマッチが生じて、 結局気になって、記事のHTMLまで編集する羽目になる。
一番問題なのは、記事のバージョン管理ができないこと。 前回との差分をdiff形式で見れないなんて効率が悪すぎる。
記事ツールの問題と同様、たいていのブログサービスでは、 テンプレート中にCSSを埋め込む形式なので管理が煩雑。 Javascriptも同様の形で埋めこむので、デザインテンプレートを直接編集するのは至難の業。
で、必死こいて編集したテンプレートファイルはバージョン管理できないので、 以前の状態に戻すには自分でバックアップを取っておくしかない。
じゃあ、自分でブログサービス作ればいいじゃん、となるが、 ブログに対してそんな熱意はない。
ブログを書く本来の目的は、ブログを書いて知識をためることであって、 ブログ自体を作ることじゃないので、本末転倒はしたくない。
レンタルサーバに、WordPressやらMTやらを入れて、 最低限のカスタマイズをして運用する、という方法も、レンタルサーバ代がかかるし、 両方共Webツールなので、問題の解消にならない。
Bloggerなどは、記事の公開などのAPIが用意されているので、 ローカルで編集後にAPI経由で記事Uploadすることも可能だが、 プレビューするには、ツールにログインしてといった通常の手段を用いるしかなかった。
以上の考察を踏まえると、 自分が必要とするのは、以下のようなブログサービス