如何将网站图标添加到 Pelican 博客?

How to add a favicon to a Pelican blog?

我正在使用 Pelican 创建静态网站,但我对如何向其添加网站图标感到困惑。

我看到in the documentation

You can also use the EXTRA_PATH_METADATA mechanism to place a favicon.ico or robots.txt at the root of any site.

我不知道将我的 favicon.ico 文件放在哪里以及在 EXTRA_PATH_METADATA 设置中指定什么(如果这确实是应该使用的设置)。

my pelicanconf.py中,我有:

STATIC_PATHS = [
    'images',
    'extra',  # this
]
EXTRA_PATH_METADATA = {
    'extra/custom.css': {'path': 'custom.css'},
    'extra/robots.txt': {'path': 'robots.txt'},
    'extra/favicon.ico': {'path': 'favicon.ico'},  # and this
    'extra/CNAME': {'path': 'CNAME'},
    'extra/LICENSE': {'path': 'LICENSE'},
    'extra/README': {'path': 'README'},
}

这些额外文件的结构是:

/content
    /extra
        favicon.ico
        robots.txt

参见 the documentation,其中显示了类似的布局。

@jonrsharpe 描述的官方方式不适用于我的页面。不知道为什么,应该的。

我决定将 favicon.ico 放在 image 文件夹中,并在 base.html 中插入 link 以使其工作:

<link rel="shortcut icon" href="{{ SITEURL }}/images/favicon.ico?v=2" />

我使用了 Pelican Wiki 上概述的技术:https://github.com/getpelican/pelican/wiki/Tips-n-Tricks#copying-faviconrobotstxt

如果该页面消失,请在此处重复:

  • 在您的 content 目录旁边创建一个目录,并将您所有的图标项目放在那里。
  • 在您的 Makefile 中,将 if test -d $(BASEDIR)/extra; then cp $(BASEDIR)/extra/* $(OUTPUTDIR)/; fi 添加到构建站点的任何位置(例如 publishhtml 等)

现在,当您构建站点时,extra/ 中的所有内容都将被复制到 /output 的根目录。