Python製のブログエンジン(mdかrSTファイルからhtmlを生成してくれるツール)のPelicanを使っていて, 私的に弄りたくなった設定について。
導入方法についてはこちらの記事を参考にしてください.
###URLのPath部のカスタマイズ
デフォルトの設定だと, URLが(ドメイン).com/ファイル名 になってしまいます。ここをファイル名だけじゃなくてもうちょい命名規則を自分で定義したい!って時に。
pelicanconf.pyで下記の2つの値を設定すれば良いです。
::python
ARTICLE_URL = 'posts/{date:%Y}/{date:%m}/{date:%d}/{slug}/'
ARTICLE_SAVE_AS = 'posts/{date:%Y}/{date:%m}/{date:%d}/{slug}/index.html'
ARTICLE_URL : 外部に公開するURL
ARTICLE_SAVE_AS : make html時にoutput以下のフォルダに格納するPath
ですね。
前から順に年、月、日、Slug(記事URLの部分)を指定してやってます。詳しくはドキュメントを読んだ方が良いと思いますが, URLには以下のパラメータを自由に入れた文字列を設定してやれます。
- slug
- date
- lang
- author
- category
他にも
:::python
ARTICLE_LANG_URL = '{slug}-{lang}.html'
ARTICLE_LANG_SAVE_AS = '{slug}-{lang}.html'
なんて設定もあったりして, 多言語のBlogもhtmlファイル名を分けて配置するだけで簡単に作れることがわかりますね。上記は明示的に設定しなくても, デフォルトでそのようになっています。
記事ファイルの整理
一つのフォルダにどんどん記事のファイルを溜めこんでいくと, 増えてくるとワケがわからなくなりそうです。キレイに整理しておくには以下の2つの方法が有効です。
- フォルダにカテゴリ名を設定しておいて, 記事はカテゴリごとに管理するようにする
フォルダ名 = カテゴリ名だと非常にわかりやすいですよね。Pelicanではそのための設定
::python
USE_FOLDER_AS_CATEGORY = True
というのがあります。上記もquickstartでプロジェクトを作成した場合はデフォルトでそのようになっていますので, content配下にディレクトリを切ると勝手にカテゴリ名に生成されます。
ちなみにデフォルトのカテゴリを変えたい場合は
::python
DEFAULT_CATEGORY = ''
で指定してやるといいです。デフォルト値は'misc'になってます。miscellaneous = 種種雑多な, の略でしょうね。
- ファイル名に日付を入れることで整列できるようにする
これも非常に便利な設定で,
:::python
FILENAME_METADATA = r'(?P<date>\d{4}-\d{2}-\d{2}).*'
を設定してやれば終わりです。右の値はデフォルトですが, 正規表現になっていてこのように記載することでファイル名に記載したyyyy-mm-dd形式のデータを自動的に投稿の日付に紐付けて記事にしてくれます。
正規表現なのでPelicanで使えるパラメータと合わせて自由に設定可能で,
:::python
FILENAME_METADATA = r'(?P<date>\d{4}-\d{2}-\d{2})_(?P<slug>.*)'
のようにするとyyyy-mm-dd_{タイトルのslug}というファイル名で管理できるのでAuthorフレンドリーになると思います。
以上になります。
他にも使えそうな設定はあるので下記のドキュメントを眺めていると面白いです。
http://docs.getpelican.com/en/3.1.1/settings.html
他にも何かあれば誰か教えてください(笑)。
追記
テーマの導入について追記しました.
Pelicanにテーマを導入してみる