これまでの記事で紹介したGit、BitBucketとPelicanを使ったブログシステム。今の仕組みでは予約投稿ができないのが欠点なのです。
で、どうすれば実現できるか検討したメモです。
予約投稿の実現案
予約投稿を実現するには、どこかにスケジューラを入れて指定されたタイミングでPelicanを起動すればいいのだけど、どこを直すか?
修正できそうな箇所は3か所あります。
- MarkdownファイルのBitBucketへのプッシュ
2. BitBucketからプッシュがあったことを通知を受けるサーバ
3. PelicanでのMarkdown⇒HTMLの処理
予約日時はMarkdownファイルのDateヘッダから取るので3にする必要があって、さらに起動日時以降の原稿を後で処理するので、それは2のサーバで行うしかなさそうです。
結局は以下の方法になるかと。
-
Pelicanが処理する前に、MarkdownファイルのDateヘッダを調べて、起動日時より前でなければPelicanの処理対象から外す。さらにサーバに通知して、スケジューラに登録させる。
- 処理対象からの外し方は要検討。ファイルを消してしまうか移動するか。
- Pelicanに手を入れるのが早いかもしれません。
-
スケジューラは予約された日時にPelicanを起動して原稿を処理する。
- スケジュールはCronで間に合いそう。
もう少し調べることがありますが、その後に手早く実装してしまいます。