提示¶
以下是一些关于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.ico
或 robots.txt
在任何站点的根上。
如何添加YouTube或Vimeo视频¶
最简单的方法是将这些网站的视频嵌入代码直接粘贴到源内容中。
或者,您也可以使用Pelican插件,比如 liquid_tags
, pelican_youtube
或 pelican_vimeo
在内容中嵌入视频。
此外,像reST和Markdown这样的标记语言都有插件,可以让您在标记中嵌入视频。你可以用 reST video directive 休息或 mdx_video plugin 为了降价。
使用SSL在本地开发¶
下面是如何设置本地pelican服务器以支持SSL。
首先,使用创建自签名证书和密钥 openssl
(这就产生了 cert.pem
和 key.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" &