pelican搭建静态博客
如果要创建自定义网站或博客,则有很多选择。 许多提供商将托管您的网站,并为您完成许多工作。 (WordPress是一个非常受欢迎的选项。)但是,使用托管解决方案会失去一些灵活性。 作为软件开发人员,我更喜欢管理自己的服务器,并在网站操作方面保持更大的自由度。
但是,管理Web服务器需要大量工作。 安装它并安装一个简单的应用程序来提供内容非常容易。 但是,掌握安全补丁和更新非常耗时。 如果您只想提供静态网页,则拥有网络服务器和大量应用程序可能比付出的努力多。 手动创建HTML页面也不是一个好选择。
这是静态网站生成器可以进入的地方。这些应用程序使用模板来创建所需的所有静态页面,并将它们与关联的元数据交叉链接。 (例如,使用通用标签或关键字显示所有页面。)静态网站生成器可帮助您使用导航区域以及页眉和页脚等元素创建具有共同外观的网站。
我已经使用Python多年了。 因此,当我第一次开始寻找生成静态HTML页面的东西时,我想要用Python编写的东西。 主要原因是我经常想窥探应用程序工作原理的内部,并且使用我已经知道的语言可以使事情变得更容易。 (如果这对您来说并不重要,或者您不使用Python,那么还有其他一些很棒的静态站点生成器会使用Ruby,JavaScript和其他语言。)
我决定尝试一下Pelican 。 它是用Python编写的常用静态站点生成器。 它直接支持reStructuredText,并且在安装所需的软件包时可以支持Markdown 。 所有任务都通过命令行界面(CLI)工具执行,这使熟悉命令行的任何人都可以轻松完成。 其简单的快速入门CLI工具使创建网站变得异常容易。
在本文中,我将解释如何安装Pelican 4,添加文章并更改默认主题。 (注意:这都是在MacOS上开发的;它可以在任何版本的Unix / Linux上都可以使用,但是我没有Windows主机可以测试。)
安装与配置
第一步是创建一个virtualenv并安装Pelican。
$ mkdir test-site
$ cd test-site
$ python3 -m venv venv
$ ./venv/bin/pip install --upgrade pip
...
Successfully installed pip-18.1
$ ./venv/bin/pip install pelican
Collecting pelican
...
Successfully installed MarkupSafe-1.1.0 blinker-1.4 docutils-0.14 feedgenerator-1.9 jinja2-2.10 pelican-4.0.1 pygments-2.3.1 python-dateutil-2.7.5 pytz-2018.7 six-1.12.0 unidecode-1.0.23
为简单起见,我输入了标题和作者的值,并将N答复为URL前缀和文章分页。 (对于其余的问题,我使用给定的默认值。)
Pelican的quickstart CLI工具将创建基本布局和一些文件以帮助您入门。 运行pelican-quickstart命令。 为简单起见,我输入了标题和作者的值,并将N答复为URL前缀和文章分页。 以后在配置文件中更改这些设置非常容易。
$ ./venv/bin/pelican-quickstart
Welcome to pelican-quickstart v4.0.1.
This script will help you create a new Pelican-based website.
Please answer the following questions so this script can generate the files needed by Pelican.
> Where do you want to create your new web site? [.]
> What will be the title of this web site? My Test Blog
> Who will be the author of this web site? Craig
> What will be the default language of this web site? [en]
> Do you want to specify a URL prefix? e.g., https://example.com (Y/n) n
> Do you want to enable article pagination? (Y/n) n
> What is your time zone? [Europe/Paris]
> Do you want to generate a tasks.py/Makefile to automate generation and publishing? (Y/n)
> Do you want to upload your website using FTP? (y/N)
> Do you want to upload your website using SSH? (y/N)
> Do you want to upload your website using Dropbox? (y/N)
> Do you want to upload your website using S3? (y/N)
> Do you want to upload your website using Rackspace Cloud Files? (y/N)
> Do you want to upload your website using GitHub Pages? (y/N)
Done. Your new project is available at /Users/craig/tmp/pelican/test-site
您需要开始的所有文件都已准备就绪。
快速入门默认为欧洲/巴黎时区,因此请在继续操作之前进行更改。 在您喜欢的文本编辑器中打开pelicanconf.py文件。 查找TIMEZONE变量。
TIMEZONE = 'Europe/Paris'
将其更改为UTC 。
TIMEZONE = 'UTC'
要更新社交设置,请在pelicanconf.py中查找SOCIAL变量。
SOCIAL
=
(
(
'You can add links in your config file'
,
'#'
)
,
(
'Another social link'
,
'#'
)
,
)
我将添加一个链接到我的Twitter帐户。
SOCIAL = ( ( 'Twitter (#craigs55)' , 'https://twitter.com/craigs55' ) , )
请注意,逗号结尾很重要。 该逗号有助于Python识别变量实际上是一个集合。 确保您不删除该逗号。
现在,您已经掌握了网站的基础知识。 快速入门创建了带有多个目标的Makefile。 给devserver目标, 使将启动你的机器上开发服务器,以便您可以预览一切。 假定Makefile中使用的CLI命令是PATH的一部分,因此您需要首先激活 virtualenv 。
$ source ./venv/bin/activate
$ make devserver
pelican -lr /Users/craig/tmp/pelican/test-
site /content o
/Users/craig/tmp/pelican/test-
site /output -s /Users/craig/tmp/pelican/test-
site /pelicanconf.
py
-
> Modified: theme
, settings.
regenerating ...
WARNING : No valid files found
in content
for the active readers:
| BaseReader
( static
)
| HTMLReader
( htm
, html
)
| RstReader
( rst
)
Done: Processed
0 articles
,
0 drafts
,
0 pages
,
0 hidden pages
and
0 draft pages
in
0.18 seconds.
将您喜欢的浏览器指向http:// localhost:8000,以查看简单的测试博客。
您可以在右侧看到Twitter链接,并在左侧看到一些指向Pelican,Python和Jinja的链接。 (Jinja是Pelican可以使用的一种很棒的模板语言。您可以在Jinja的文档中了解有关它的更多信息。)
添加内容
现在您已经有了一个基本站点,请添加一些内容。 首先,将一个名为welcome.rst的文件添加到站点的内容目录中。 在您喜欢的文本编辑器中,创建一个包含以下文本的文件:
$ pwd
/Users/craig/tmp/pelican/test-site
$ cat content/welcome.rst
Welcome to my blog!
###################
:date: 20181216 08:30
:tags: welcome
:category: Intro
:slug: welcome
:author: Craig
:summary: Welcome document
Welcome to my blog.
This is a short page just to show how to put up a static page.
鹈鹕自动解析元数据行(日期,标签等)。
写入文件后, devserver应该输出如下内容:
-> Modified: content. regenerating...
Done: Processed 1 article, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.10 seconds.
在浏览器中重新加载测试站点以查看更改。
元数据(例如,日期和标签)已自动添加到页面。 另外,Pelican自动检测介绍类别,并将该部分添加到顶部导航中。
变更主题
使用流行的开源软件(如Pelican)的最好的方面之一是,许多用户将进行更改并将其贡献给项目。 许多贡献都是主题形式。
网站的主题设置颜色,布局选项等。尝试新主题真的很容易。 您可以在“ 鹈鹕主题”中预览其中的许多内容。
首先,克隆GitHub存储库:
$ cd ..
$ git clone --recursive https://github.com/getpelican/pelicanthemes
Cloning into 'pelicanthemes'...
由于我喜欢蓝色,因此我将尝试blueidea 。
编辑pelicanconf.py并添加以下行:
THEME = '/Users/craig/tmp/pelican/pelican-themes/blueidea/'
devserver将重新生成您的输出。 在浏览器中重新加载网页以查看新主题。
主题控制布局的许多方面。 例如,在默认主题中,您可以看到类别(Intro)和文章旁边的meta标签。 但是该类别未显示在blueidea主题中。
其他注意事项
这是对Pelican的快速介绍。 我没有涉及几个重要的主题。
首先,我犹豫要转到静态站点的一个原因是,它不允许对文章进行讨论。 幸运的是,有一些第三方提供商可以为您主持讨论。 我目前正在寻找的是Disqus 。
接下来,以上所有操作均在本地计算机上完成。 如果我希望其他人查看我的网站,则必须将预先生成HTML文件上载到某个地方。 如果查看pelican-quickstart输出,您将看到使用FTP,SSH,S3甚至GitHub Pages的选项。 每个选项都有其优点和缺点。 但是,如果必须选择其中一个,则可能会发布到GitHub Pages。
鹈鹕还有许多其他功能-我仍然每天都在学习有关它的更多信息。 如果您想使用简单的静态内容自托管网站或博客,并且想要使用Python,Pelican是一个不错的选择。 它有一个活跃的用户社区,该社区正在修复错误,添加功能以及创建新的有趣的主题。 试试看!
翻译自: https://opensource.com/article/19/1/getting-started-pelican
pelican搭建静态博客