dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Python]Pelicanで作ったサイトにfaviconを設定する

またまた Python製 静的サイトジェネレータ Pelican の話。

ここに書いてあった。
Tips n Tricks · getpelican/pelican Wiki · GitHub

2 通りあるみたいだけど Second Solution でうまくいった。

設定方法

1.content ディレクトリの下に extra というディレクトリを作り、favicon.ico を置く。

content
├── (記事).md
└── extra
     └── favicon.ico


2.pelicanconf.py に以下のように記述する。

FAVICON = 'favicon.ico'
FAVICON_TYPE = 'image/vnd.microsoft.icon'

STATIC_PATHS = ['images', 'extra']
EXTRA_PATH_METADATA = {
    'extra/' + FAVICON: {'path': FAVICON},
}

3.テンプレートの html ファイルに以下を記述する。(base.html とか)

<link rel="shortcut icon" href="{{ SITEURL }}/{{ FAVICON }}" type="{{ FAVICON_TYPE }}">

4.pelican コマンドでビルドする

これで、output ディレクトリの直下に favicon.ico が生成されるはず。


補足

最近のブラウザでは favicon.ico をルートに配置するだけで自動的に読み込んでくれるので通常は手順3 は必要ないかもしれない。
が、サイトを GitHub Pages の Project Pages にホストしている場合 は URL が

http://[アカウント名].github.io/[リポジトリ名]

となるので、favicon.ico は URL のルートに置いたことにならず <link rel=... の設定が必要になるんじゃないだろうか。
(確認はしてない。私の場合は pelican-mg というテーマを使っていてデフォルトで記載されていたので気にしてなかった)


リファレンス

STATIC_PATHS, EXTRA_PATH_METADATA については
http://docs.getpelican.com/en/3.6.3/settings.html