ウェブサイトをリニューアルしました

明けましておめでとうございます。新年を迎えて気持ちも新たにということで、ホームページを一新しました。いままではWordPressで運営を行っていましたが、 reStructedText でブログを書くようにしたかったため、 Pelican での運用に切り替えました。備忘録を兼ねて、切り替えにあたり考えたこと、こだわった点などをまとめておきたいと思います。

reStructedTextで書きたい

一番大きなモチベーションはこれです。 Sphinx を使い始めて以来、プログラミングに関するメモなどもreST形式で書いていて、WordPressのブラウザ上で編集する仕組みが面倒臭くなってしまいました。結果、自分用のメモはどんどん増えていくのに、公開サイトは一向に更新されないという状態に陥っていました。(2番目に新しい記事が、2015年あけましておめでとうとか書いてありました。)これはもう、公開サイトもreSTで書けるようにするしかないと。

もともとはSphinxベースで公開サイトを作ろうとしていましたが、 Pelican というPythonベースの静的サイトジェネレータがあることを知り、こちらを採用しました。ブログでよく使うカテゴリとかタグ付けとか、URLのフォーマットの指定とか、一通りの機能がデフォルトで揃っていたことが決め手です。Pythonベースだったので、オリジナルテーマの作成とかプラグインの開発もとっつきやすく、結果的に大正解でした。

記事のURLは変わらないものにする

前回のブログのURL方式はやめました。URLをメモしていただいていたり、リンクを貼っていただいた皆様、大変申し訳ないです。理由としては、これまでの設計ではURLにカテゴリ名も入れてしまっていて、記事が増えてもカテゴリ分けが変更できなくなっていました。今後何年も記事を書いていくことを考えて、記事のURLは以下のような設計に見直しました。

  • http://codecrafthouse.jp/p/<yyyy>/<mm>/<slug>/

これなら、カテゴリやタグの粒度などを変更してもURLは変わりませんし、数年後に同じテーマで記事を書きたくなっても、無理に <slug> 部分を別のものに変える必要はありません。Pelicanはこのあたりの動作も設定ファイルで細かく定義できるようになっており、簡単に望み通りのURL定義を実現できました。

オリジナルテーマをつくった

PelicanはPythonでデファクトとなっている Jinja2 をテンプレートエンジンに採用しており、テーマの自作もやりやすくなっています。ということで、前回のデザインも踏襲しつつ、オリジナルテーマを作成しました。 ベースとなるシンプルなテーマ も用意してくれているので、開発しやすかったです。開発用サーバの起動スクリプト(立ち上げておくと、テンプレートや記事を更新すると自動的にコンテンツを更新してくれる)なんかも付属していて至れり尽くせりなので、興味を持たれた方はぜひ挑戦してみてください。

ということで取り留めもない内容になってしまいましたが、これからはreSTでブログを書いていこうと思います。今年もよろしくお願いします!