提示

以下是一些关于Pelican的提示,你可能会发现有用。

自定义404页

当浏览器请求web服务器找不到的资源时,web服务器通常会显示一个通用的“找不到文件”(404)错误页,这可能是一个明显的、难看的错误页。提供与站点主题匹配的错误页面的一种方法是创建一个自定义404页面( not 一篇文章),例如这个Markdown格式的示例存储在 content/pages/404.md

Title: Not Found
Status: hidden
Save_as: 404.html

The requested item could not be located. Perhaps you might want to check
the [Archives](/archives.html)?

下一步是配置web服务器以显示此自定义页,而不是默认的404页。对于Nginx,在配置文件中添加以下内容 location 块:

error_page 404 /404.html;

对于Apache::

ErrorDocument 404 /404.html

对于Amazon S3,首先导航到 Static Site Hosting 你的AWS cosole的bucket设置菜单。从那里:

Error Document: 404.html

发布到GitHub

GitHub Pages 提供一个简单方便的方式来发布Pelican网站。有 two types of GitHub Pages项目页面用户页面 . Pelican网站可以发布为项目页面和用户页面。

项目页面

要将Pelican网站发布为项目页面,您需要 push 的内容 output Pelican生成的指向存储库的目录 gh-pages GitHub上的分支。

优秀的 ghp-import ,可与一起安装 pip ,使这个过程非常简单。

例如,如果Pelican站点的源包含在GitHub存储库中,并且希望以项目页面的形式将Pelican站点发布到此存储库,则可以使用以下命令:

$ pelican content -o output -s pelicanconf.py
$ ghp-import output -b gh-pages
$ git push origin gh-pages

这个 ghp-import output 命令更新本地 gh-pages 包含 output 目录(如果分支不存在,则创建分支)。这个 git push origin gh-pages 命令更新远程 gh-pages 有效地发布了Pelican网站。

注解

这个 github 生成文件的目标(和 gh_pages 任务 tasks.py )创建人 pelican-quickstart 命令将Pelican站点发布为项目页面,如上所述。

用户页面

要以用户页面的形式发布Pelican站点,您需要 push 的内容 output Pelican向 master 你的分支机构 <username>.github.io GitHub上的存储库。

同样,你可以利用 ghp-import

$ pelican content -o output -s pelicanconf.py
$ ghp-import output -b gh-pages
$ git push git@github.com:elemoine/elemoine.github.io.git gh-pages:master

这个 git push 命令推动本地 gh-pages 分支机构(由 ghp-import 命令)发送给 elemoine.github.io 存储库的 master GitHub上的分支。

注解

要将您的Pelican网站发布为用户页面,请随时调整 github 生成文件的目标。

发布到用户页面的另一个选项是在项目的根目录中生成输出文件。

例如,您的主项目文件夹是 <username>.github.io 你可以在一个名为Pelican的子目录中创建Pelican项目 Pelican . 然后从里面 Pelican 可以运行的文件夹:

$ pelican content -o .. -s pelicanconf.py

现在你可以推动整个项目 <username>.github.io 到GitHub存储库的主分支:

$ git push origin master

(假设源设置为远程存储库)。

自定义404页

GitHub页面将显示上面描述的自定义404页面,如相关的 GitHub docs .

每次提交时更新站点

要在每次提交时自动更新Pelican站点,可以创建post-commit钩子。例如,可以将以下内容添加到 .git/hooks/post-commit

pelican content -o output -s pelicanconf.py && ghp-import output && git push origin gh-pages

将静态文件复制到站点的根目录

使用A custom domain 对于GitHub页面,您需要将站点的域(例如。, blog.example.com )内部 CNAME 在你的网站根目录下的文件。为此,创建 content/extra/ 目录并添加 CNAME 把它归档。然后使用 STATIC_PATHS 设置告诉Pelican将此文件复制到输出目录。例如:

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

注意:使用正斜杠, / ,即使是在窗户上。

您也可以使用 EXTRA_PATH_METADATA 放置一个 favicon.icorobots.txt 在任何站点的根上。

如何添加YouTube或Vimeo视频

最简单的方法是将这些网站的视频嵌入代码直接粘贴到源内容中。

或者,您也可以使用Pelican插件,比如 liquid_tagspelican_youtubepelican_vimeo 在内容中嵌入视频。

此外,像reST和Markdown这样的标记语言都有插件,可以让您在标记中嵌入视频。你可以用 reST video directive 休息或 mdx_video plugin 为了降价。

使用SSL在本地开发

下面是如何设置本地pelican服务器以支持SSL。

首先,使用创建自签名证书和密钥 openssl (这就产生了 cert.pemkey.pem ):

$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

并使用此命令启动服务器(服务器在 output 目录):

python -m pelican.server 8443 --key=../key.pem --cert=../cert.pem

如果您正在使用 develop-server.sh ,将此添加到顶部:

CERT="$BASEDIR/cert.pem"
KEY="$BASEDIR/key.pem"

并修改 pelican.server 线路如下:

$PY -m pelican.server $port --ssl --cert="$CERT" --key="$KEY" &