发布站点

站点生成

您应该已经安装好Pelican并且已经创作了一些内容了吧(以Markdown或是reST格式),现在就可以将这些内容通过 pelican 命令转换为HTML了,在转换时需要指定创作内容存放的路径;如果有需要, 配置 文件的路径也可单独指定:

pelican /path/to/your/content/ [-s path/to/your/settings.py]

上面的指令会在 output/ 目录下生成站点,使用的是默认的主题。默认主题只使用一些简单的HTML并且不包含样式,大家往往以这个简单主题为基础来创作自己的主题。

你也可以让Pelican来监听对源内容文件的修改,而不是在每次修改内容后重新手动执行命令来生成站点。在执行 pelican 命令时,加上 -r 或者 --autoreload 选项就可以做到这一点。在非Windows环境下,这个选项还可以和 -l--listen 搭配使用,这样就可以在自动重生成站点的基础上,同时提供在 http://localhost:8000 上的访问:

pelican --autoreload --listen

Pelican还有一些其他的命令行选项。可以在帮助中看到所有可用选项:

pelican --help

浏览生成的文件

Pelican生成的文件都是静态的,也就是说不需要使用什么特殊的手段就可以浏览。您可以直接使用浏览器打开生成的HTML文件:

firefox output/index.html

事实上,上面所说的直接打开的方式可能会使CSS或其他链接上出现问题,可以运行Pelican自带的简易web服务器,如此便可以获得可靠的预览体验:

pelican --listen

当web服务器启动后,可以访问 http://localhost:8000/ 来预览您的站点。

部署

当您生成好站点后,可以在本地先进行预览,确认无误后,在部署前可能还需使用生产环境特定的配置文件重新生成站点:

pelican content -s publishconf.py

您可以基于 pelicanconf.py 进行设置文件的配置, 在 publishconf.py 中import pelicanconf 就可实现(译者注:配置文件其实本质上就是一些Python变量,因此import后就可以全部引入):

from pelicanconf import *

如果 publishconf.py 是通过 pelican-quickstart 生成的,上面这行默认就有。

部署站点的方法步骤取决于网站托管的位置。对于使用SSH访问的运行着Nginx或Apache的服务器,您可能需要使用 rsync 工具来传输站点文件:

rsync -avc --delete output/ host.example.com:/var/www/your-site/

还有很多其他的部署方式供您选择,有一些在第一次通过 pelican-quickstart 命令建立站点时就已经配置。在 小技巧 中可以查看如何通过Github Pages部署站点。

自动化

pelican 命令是生成站点的标准方法,但同时也有自动化工具可以用来简化生成与发布流程。在 pelican-quickstart 的过程中,其中一个问题就是是否启用自动站点生成与发布。若您选择了 “yes”,在项目的根目录中就会生成 tasks.pyMakefile 。这些文件中预填充了一些从 pelican-quickstart 过程中收集的信息,您应该从这个生成好的文件出发,再根据实际需要进一步修改。另外,如果您认为这些自动化脚本文件没什么用,完全可以将他们删除,这不会对标准命令 pelican 产生任何影响。

下面是一些自动化工具,其中包装了 pelican 命令,可以用于简化生成、预览和上传站点的过程。

Invoke

Invoke 工具使用Python作为编程语言,并且能够用在很多不同的环境中。它需要使用下面的命令单独安装,在某些操作系统中可能需要在前面加上 sudo

python -m pip install invoke

可以打开 tasks.py 文件看看其中的代码,可以尝试更改和删除其中的命令,也可以按照您的喜好自行进行其他修改。生成好的文件是开箱即用的,您可以通过下面的命令生成站点:

invoke build

若您希望Pelican在检测到变化时自动重新生成站点(在本地测试的时候很实用),可以使用下面的命令:

invoke regenerate

下面的命令则可以让您在生成后通过浏览器访问 http://localhost:8000/ 来预览站点

invoke serve

在每次检测到修改重生成站点后,可以让浏览器自动进行重载。先运行 python -m pip install livereload 安装,再运行下面的这条命令就可以实现:

invoke livereload

如果在 pelican-quickstart 过程中,对是否要通过SSH上传站点问题回答了“yes”,您就可以使用下面的命令借助rsync在SSH上发布站点:

invoke publish

默认就可以使用的命令远不止这些,在 tasks.py 中可以找到更多可用的命令。更重要的是,当您有特定需求和偏好时,直接修改 tasks.py 即可。

Make

Makefile 也是自动生成的。在大多数POSIX系统中都内置了 make 命令,无需安装即可使用。但在非POSIX系统(例如Windows)中并没有 make ,在这些系统中安装 make 则往往比较麻烦。

使用 make 命令是以 pelicanconf.py 作为配置文件来生成站点的:

make html

使用 publishconf.py 作为配置文件来为生产环境生成站点:

make publish

若您希望Pelican在检测到变化时自动重新生成站点(在本地测试的时候很实用),可以使用下面的命令:

make regenerate

下面的命令则可以让您在生成后通过浏览器访问 http://localhost:8000/ 来预览站点

make serve

一般来说, make regeneratemake serve 需要在分别在单独的终端会话中运行,下面的命令相当于同时运行上述两个命令:

make devserver

上面的命令会让Pelican在重生成模式下持续运行,同样地,您可以通过 http://localhost:8000 访问生成的站点。

当准备好发布站点时,可以使用在 pelican-quickstart 过程中选择的方法进行上传。下面的例子使用rsync在ssh上完成这一工作:

make rsync_upload

OK!您的站点现在已经可以访问了。

(默认的 Makefiledevserver.sh 脚本执行 pythonpelican 来完成任务。若您希望使用其他的可执行文件,例如 python3 ,设置环境变量 PYPELICAN 来覆盖默认的可执行文件名)