自我托管简单网站或博客的Python用户的绝佳选择
优采云 发布时间: 2021-05-09 05:14自我托管简单网站或博客的Python用户的绝佳选择
Pelican是想要自托管简单网站或博客的Python用户的绝佳选择。
如果要创建自定义网站或博客,则有很多选项。许多提供商可以托管您的网站,并为您完成大部分工作。 (WordPress是一个非常受欢迎的选择。)但是托管后,您将失去一些灵活性。作为软件开发人员,我更喜欢管理自己的服务器,并在网站的运行方式上保持更大的自由度。
但是,管理Web服务器需要大量工作。安装它并获得一个简单的应用程序来提供内容非常容易。但是,维护安全补丁和更新非常耗时。如果您只想提供静态网页,那么拥有Web服务器和一系列应用程序可能不值得。手动创建HTML页面也不是一个好选择。
这是静态网站*敏*感*词*的来源。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。 (例如,所有显示的页面都有公共标签或关键词。)静态网站*敏*感*词*可以使用导航区域,页眉和页脚等元素来帮助您创建具有公共外观的网站。
我使用Pyhton已经很多年了,所以当我第一次开始寻找生成静态HTML页面的东西时,我想要用Python编写的东西。主要原因是我经常想了解应用程序工作方式的内部细节,并且使用我已经知道的语言可以使此操作变得更加容易。 (如果这对您来说并不重要,或者您不使用Python,那么还有其他一些很棒的静态网站*敏*感*词*会使用Ruby,JavaScript和其他语言。)
我决定尝试鹈鹕。它是用Python编写的常用静态网站*敏*感*词*。它支持reStructuredText(LCTT注释:这是文本数据的文件格式,主要用于Python社区中的技术文档),还支持Markdown,这需要通过安装必要的软件包来完成。所有任务都通过命令行界面(CLI)工具执行,这使熟悉命令行的任何人都可以轻松完成。其简单的快速入门CLI工具使创建网站非常容易。
在本文中,我将介绍如何安装Pelican 4,添加文章文章并更改默认主题。 (注意:我是在MacOS上开发的。其他Unix / Linux实验的结果相同,但是我没有Windows主机可以测试。)
安装和配置
第一步是创建一个虚拟环境,并在该虚拟环境中安装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
Pelican的快速入门CLI工具将创建基本布局和一些文件,以帮助您入门。运行pelican-quickstart命令。为简单起见,我输入了网站标题和作者的名字,并为URL前缀和文章分页选择了“ N”。 (对于其他选项,我使用默认值。)稍后在配置文件中更改这些设置非常容易。
$ ./venv/bin/pelicanquickstart
Welcome to pelicanquickstart 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传递给make命令将在您的计算机上启动开发服务器,以便您可以预览所有内容。假定Makefile中使用的CLI命令位于PATH搜索路径中,因此您需要首先激活虚拟环境。
$ 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.
在您喜欢的浏览器中打开: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.
Pelican将自动解析元数据行,包括日期,标签等。
写入文件后,开发服务器应输出以下内容:
-> Modified: content. regenerating...
Done: Processed 1 article, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.10 seconds.
在浏览器中刷新测试网站以查看更改。
元数据(例如日期和标签)将自动添加到页面中。此外,Pelican会自动检测“简介”列并将其添加到顶部导航中。
更改主题
使用流行的开源软件(如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/'
开发服务器将重新生成您的输出。在浏览器中刷新网页以查看新主题。
主题控制布局的各个方面。例如,在默认主题中,您可以在文章旁边看到带有meta标签的列(Intro),但是此列不会显示在blueidea主题中。
其他注意事项
本文是对Pelican的快速介绍,因此我没有涉及一些重要主题。
首先,我犹豫要迁移到静态站点的原因之一是它无法对文章进行评论。幸运的是,有些第三方服务提供商将为您提供评论功能。我目前关注的是Disqus。
接下来,以上所有内容均在我的本地计算机上完成。如果我想让其他人查看我的网站,则必须将预先生成的HTML文件上载到某个地方。如果查看pelican-quickstart输出,您将看到使用FTP,SSH,S3甚至GitHub页面的选项,每个选项都有其优点和缺点。但是,如果必须选择一个,则可以选择发布到GitHub页面。
鹈鹕还有许多其他功能,我每天都在学习。如果您想自托管网站或博客,其内容既简单又静态,并且希望使用Python,那么Pelican是一个不错的选择。它有一个活跃的用户社区,可以修复错误,添加功能以及创建新的有趣的主题。试试看!
通过:
作者:Craig Sebenik主题:lujun9972译者:MjSeven校对:wxy
本文由LCTT 原创编写,Linux China自豪地发布