ykrods note

ABlog でブログを書く

Sphinx でブログを書きたい、というより Sphinx でドキュメントを書く素振りのためにブログでも作ろうということで、 ABlog を利用してみました。

( Tinkerer も検討したが、こちらは今(2019/04/17)時点で Sphinx の新しいバージョンに対応してない模様 1

ABlog

ブログの静的ページを生成する Sphinx 拡張です。具体的には タグ・カテゴリ・最近の投稿リストなどを生成してくれます。atom フィードも作成されますが sitemap は対応してないみたいです。

(一般的な静的サイトジェネレータ同様、htmlは github.io や netlify を使って公開する必要があります。

使い方

https://ablog.readthedocs.io/ の通りでOKです。

記事を書くときは、下記のように reStructuredText の先頭に post ディレクティブを書くだけでOKです。

.. post:: 2019-04-17
   :tags: ABlog
   :category: blog
   :author: ykrods

============================================================
ABlog でブログを書く
============================================================

書く

デフォルトの設定だと日付を Apr 15, 2014 のような表記にする必要がありますが、以下の設定でフォーマットを変更できます。

conf.py
post_date_format = '%Y-%m-%d'

記事のファイルの置き場所もなんでも良いですが、ファイルパスがそのまま slug になるので、私はそれらしく見せるために

posts/${%Y}/${%m}/${%d}/${title_en}.rst

みたいな規則でファイルを配置しています。

ablog build_website 以下に html がビルドされます。

所感

ABlog は

  • ディレクトリ構造の規則がない

  • post ディレクティブを書くだけで記事を作れる

ため覚えることが少なく、シンプルで使いやすい印象です。

ベースが Sphinx なのでレイアウトをゴリゴリカスタマイズしたい場合は向いてないかもしれません(テンプレートを自分で書けばいいんでしょうがそれなりの知識を要する)。

元ソースも公開するので参考になれば ykrods/blog

Footnotes

1

https://github.com/vladris/tinkerer/issues/112 多分これが原因

blog ABlog

ABlog でブログを書く — ykrods note
https://www.ykrods.net/posts/2019/04/16/ablog/

Comments