GithubPagesからCloudFrontとS3へ

2016/09/19 16:00

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

そろそろSSLでないとダメそうなのでCloudFrontとS3という最強コンビにホームページを移しました。

SSL証明書のメンテも必要なく無料で、そもそもそんなに転送もないのでCloudFrontを使っても高くつかないはず。

なんてことをしていたら副産物が2つ出来ました。静的サイトジェネレータ biisan と設定ファイルフレームワーク glueplate です。

biisan

今までは非公開の自作静的サイトジェネレータを使っていました。 rst2htmlに毛が生えたようなもので、次のような問題を抱えていました。

この機会にファイルベースでデータを持てて変なcssで苦しまない静的サイトジェネレータに書きかえようと車輪を再発明して biisan を作りました。

いきおいあまってReStructuredTextを捨ててMarkdownの軍門にくだろうと最初は思ったのですが、機能が少なすぎて秘伝のエントリを移すのが面倒くさすぎて今回もReStructuredTextです。

逆に、ReStructuredTextは機能が多すぎるので、自分が必要なディレクティブにしか対応していません。ディレクティブごとに処理する関数をわけているため、対応するのは簡単なはずです。勝手に付け足して使うのも簡単ですが、せっかくなのでPullRequestしてもらえれば良いと思いますよ。

さらに、docutils標準でないディレクティブも同じように追加しやすくなっています。これはそもそもReStructuredTextがそういうものなのですが、ちょいとむずいので仕組化してあります。

さらにさらに、出力のHTMLも細かくテンプレートが分かれていて、必要なテンプレートを上書きできるようになっています。

気が向いたらテストとドキュメントを書こう。

あ、エントリを処理するところはmultiprocessingなので 無駄にCPU使い切れ ます。

glueplate

ライブラリやフレームワークを書くとき、利用時点での上書きを期待する設定項目とそのデフォルト値を定義したいことがあります。

設定されていなければコード上のデフォルト値を使うという風にしてしまうと、設定項目が2箇所に分かれてしまうので常に設定ファイルから読み込みたいみたいなことってありますよね。そんな感じのよく書くコードをライブラリにしたものです。

biisan では、ベースが biisanの設定ファイル で、 上書きしたりしてるのは このホームページの設定ファイル です。

両方見ると biisan がどんなものかも、おおよそわかることでしょう。

気が向いたらテストとドキュメントを書こう。

気が向いたら両方ともPyPIにあげよう。

Prev Entry

Next Entry