前情提要
pelican学习笔记之GITHUB建站(一)
pelican学习笔记(二)之Writing content
Publish Your Site
2018/01/29
Site generation 网站生成
一旦安装了 Pelican , 并且您有一些内容 (例如, 以Markdown 或 reST 格式), 您可以通过 Pelican
命令将内容转换为 HTML, 并指定内容的路径和设置文件的路径 (可选):
pelican /path/to/your/content/ [ -s path/to/your/settings.py]
上面的命令将使用默认的主题生成一个简单的站点,并将其保存在output/
文件夹中。默认主题由非常简单的 HTML 组成, 没有样式, 因此人们可以使用它作为创建他们自己的主题的基础。
在处理单个项目或页面时, 使用 --write-selected
可以只生成与该内容对应的文件。如下:
pelican --write-selected output/posts/my-post-title.html
NOTE:必须指定生成的输出文件的路径, 而不是源内容。要确定输出文件路径, 请使用 --debug
标志来确定正确的文件名和位置。如果需要, --write-selected
可以采取逗号分隔的路径列表, 也可以配置为设置。(请参见: Writing only selected content)
您还可以运行 Pelican
时添加使用 -r
或 --autoreload
选项,告诉 Pelican 监视您的修改, 而不是在每次希望看到更改时手动重新运行它。
Pelican 有其他可用的命令行开关。请查看 “帮助” 以查看可以使用的所有选项:
pelican --help
Viewing the generated files 预览
Pelican 生成的是静态页面,你并不需要什么特殊的软件来预览。你可以直接用浏览器来打开页面查看:
firefox output/index.html
浏览器不能定位CSS,所以上面的方法会让你困惑。你可以使用 Python 运行一个简单的 web 服务,当使用 Python 3时:
cd output
python -m http.server
一旦服务开始运行,你可以在 http://localhost:8000/
预览你生成的静态站。
Deployment 部署
生成站点后, 在本地开发环境中预览它, 并准备将其部署到生产中, 您可能首先使用您定义的任何特定于生产的设置 (例如, 分析提要等) 重新生成站点:
pelican content -s publishconf.py
若要以 pelicanconf.py
作为发布配置的基础, 您可以通过在publishconf.py
中导入 pelicanconf
设置:
from pelicanconf import *
如果你是通过运行 pelican-quickstart
生成的 publishconf.py
,以上以默认存在于文件中。
部署站点的步骤将取决于它将部署在何处。如果您对运行 Nginx 或 Apache 的服务器具有 SSH 访问权限, 则可以使用 rsync 工具来传输您的站点文件:
rsync -avc --delete output/ host.example.com:/var/www/your-site/
还有许多其他部署选项, 其中一些可以在首次通过 pelican-quickstart
命令设置站点时进行配置。有关通过 GitHub 页面发布的详细信息, 请参阅提示页面。
Automation 自动化
虽然 pelian
命令是生成站点的规范化方法, 但自动化工具可以用来简化生成和发布流程。在 pelican-quickstart
过程中询问的问题之一是您是否希望自动生成和发布站点。如果您对该问题回答 “yes”, 则会在项目的根目录中生成 fabfile.py
和 Makefile
文件。这些文件预先填写了从 pelican-quickstart
过程中提供的其他答案收集的某些信息, 这意味着作为一个起点, 应自定义以适合您的特定需求和使用模式。如果您发现这些自动化工具作用有限, 这些文件可以随时删除, 不会影响 pelican
的使用。
下面是 “wrap” pelican
的自动化工具, 可以简化生成、预览和上传站点的过程。
Fabric
Fabric 的优点是它是用 Python 编写的, 因此可以在多种环境中使用。缺点是必须单独安装。使用下面的命令来安装 Fabric , 您有可能需要用到 “sudo”:
pip install Fabric
Note: Windows 需要安装 PyCrypto
Fabric 依赖 PyCrypto,如果您的系统没有 C 编译器, 则很难安装。对于 Windows 用户, 在安装Fabric之前, 请使用
easy_install http://www.voidspace.org.uk/downloads/pycrypto26/pycrypto-2.6.win32-py2.7.exe
根据此 StackOverflow 建议您使用 Python 2.7 的 Win32 版本和PyCrypto比64位版本的Win64—even更容易成功。
请花些时间打开在项目根目录中生成的 fabfile.py
文件。您将看到许多命令, 其中每一个都可以根据您的需要来重命名、删除和/或自定义。使用 out-of-the-box 配置, 您可以通过以下方式生成站点:
fab build
如果您希望 Pelican 在每次检测到更改时自动重新生成站点 (这在本地测试时很方便), 请改用以下命令:
fab regenerate
运行本地服务以供 http://localhost:8000/预览:
fab serve
如果在 pelican-quickstart
中, 当被问及是否要通过 ssh 上传站点时回答 “是”, 可以使用以下命令通过 ssh 通过 rsync 发布站点:
fab publish
这些只是一些默认情况下可用的命令, 所以请随时浏览 fabfile.py
。更重要的是, 不要犹豫自定义 fabfile.py
, 以满足您的特定需求和喜好。
Make
当您在 pelican-quickstart
对相关问题说 “是” 时, 也会自动为您创建 Makefile
。这种方法的优点是, 使命令被内置到大多数 POSIX 系统中, 因此不需要安装其他任何东西来使用它。缺点是, 非 POSIX 系统 (例如, Windows) 不包括 make
, 并且在这些系统上安装它可能是一个艰巨的任务。
如果你想使用 make
根据pelicanconf.py
生成你的站:
make html
利用publishconf.py
里的设置将生成站点布置到生产环境:
make publish
如果你希望当文件更改后不用手动生成,而是 Pelican 自动监控处理,可以:
make regenerate
提供 http://localhost:8000 预览服务:
make serve
通常情况下, 您需要在两个单独的终端中运行 make regenerate
和 make serve
, 但您可以通过以下方式同时运行两个:
make devserver
上述命令将同时运行 Pelican 的再生模式, 以及输出在 http://localhost:8000 的服务。完成对更改的测试后, 应通过以下方式停止开发服务器:
./develop_server.sh stop
当您准备发布网站时, 您可以通过在 pelican-quickstart
选择的方法将其上传。对于本例, 我们将在 ssh 上使用 rsync:
make rsync_upload
(默认的 Makefiel
和 devserver.sh
使用 python
和 pelican
来完成其任务。如果要使用不同的可执行文件 (如 python3
), 则可以分别设置 py
和 PELICAN
环境变量来重写默认的可执行文件名称。)