Pelican 入门:一个 Python 静态网站生成器 | Linux 中国
致谢译自 | opensource.com
作者 | Craig Sebenik
译者 | LCTT / MjSeven
Pelican 是那些想要自我托管简单网站或博客的 Python 用户的绝佳选择。
如果你想创建一个自定义网站或博客,有很多选择。许多提供商可以托管你的网站并为你完成大部分工作。(WordPress 是一个非常受欢迎的选项。)但是使用托管方式,你会失去一些灵活性。作为一名软件开发人员,我更喜欢管理我自己的服务器,并在我的网站如何运行方面保持更多的自由。然而,管理 Web 服务器需要大量的工作。安装它并获得一个简单的应用程序来提供内容是非常容易的。但是,维护安全补丁和更新是非常耗时得。如果你只想提供静态网页,那么拥有一个 Web 服务器和一系列应用程序可能会得不偿失。手动创建 HTML 页面也不是一个好选择。这是静态网站生成器的用武之地。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。(例如,所有显示的页面都带有公共标签或关键词。)静态网站生成器可以帮助你使用导航区域、页眉和页脚等元素创建一个具有公共外观的网站。我使用 Pyhton[1] 已经很多年了,所以,当我第一次开始寻找生成静态 HTML 页面的东西时,我想要用 Python 编写的东西。主要原因是我经常想要了解应用程序如何工作的内部细节,而使用一种我已经了解的语言使这一点更容易。(如果这对你不重要或者你不使用 Python,那么还有一些其他很棒的静态网站生成器[2],它们使用 Ruby、JavaScript 和其它语言。)我决定试试 Pelican[3]。它是一个用 Python 编写的常用静态网站生成器。它支持 reStructuredText[4](LCTT 译注:这是一种用于文本数据的文件格式,主要用于 Python 社区的技术文档),并且也支持 Markdown[5],这需要通过安装必需的包来完成。所有任务都是通过命令行界面(CLI)工具执行的,这使得熟悉命令行的任何人都可以轻松完成。它简单的 quickstart CLI 工具使得创建一个网站非常容易。在本文中,我将介绍如何安装 Pelican 4,添加一篇文章以及更改默认主题。(注意:我是在 MacOS 上开发的,使用其它 Unix/Linux 实验结果都将相同,但我没有 Windows 主机可以测试。)安装和配置第一步是创建一个虚拟环境[6],在虚拟环境中安装 Pelican。
- [p]
$ 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-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', '#'),)
SOCIAL = (('Twitter (#craigs55)', 'https://twitter.com/craigs55'),)
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.
welcome.rst的文件添加到网站的
content目录中。在你喜欢的文本编辑器中,使用以下文本创建一个文件:
$ 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.
-> Modified: content. regenerating...
Done: Processed 1 article, 0 drafts, 0 pages, 0 hidden pages and 0 draft pages in 0.10 seconds.
$ cd ..
$ git clone --recursive https://github.com/getpelican/pelicanthemes
Cloning into 'pelicanthemes'...
pelicanconf.py,添加以下行:
THEME = '/Users/craig/tmp/pelican/pelican-themes/blueidea/'
pelican-quickstart输出,你将看到使用 FTP、 SSH、S3 甚至 GitHub 页面的选项,每个选项都有其优点和缺点。但是,如果我必须选择一个,那么我可能会选择发布到 GitHub 页面。Pelican 还有许多其他功能,我每天都在学习它。如果你想自托管一个网站或博客,内容简单并且是静态内容,同时你想使用 Python,那么 Pelican 是一个很好的选择。它有一个活跃的用户社区,可以修复 bug,添加特性,而且还会创建新的和有趣的主题。试试看吧![/p]
via: https://opensource.com/article/19/1/getting-started-pelican作者:Craig Sebenik[13] 选题:lujun9972 译者:MjSeven 校对:wxy本文由 LCTT 原创编译,Linux中国 荣誉推出
- Pelican 入门:一个 Python 静态网站生成器
- 小白如何入门Python? 制作一个网站为例
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
- 一个非常适合python入门和学习的网站
- 如何即时设置一个静态文件服务器 | Linux 中国
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
- 一个linux的经典网站
- webbench是Linux下的一个网站压力测试工具
- 菜鸟学Python(6):在Linux下用C扩展Python要注意的一个问题
- 网络游戏服务器开发::学习了两天python写了一个linux下自动安装程序的脚本
- linux下用Apache一个IP多个网站多域名配置方法
- 当IIS挂的网站出现选 图片文件, 静态文件都打不开时, 可以试试新建一个应用程序池试试看...
- Microsoft ASP.NET 快速入门教程的大纲介绍(一个值得推荐的.net网站也可以说是.net资料库)
- 又找到一个可以在linux下看高清视频网站
- 个人的网站 仅仅做了一个静态的网页
- linux 下使用httpd 搭建纯静态WEB网站
- 一个学习css的很不错的网站 css入门 css教程
- 又拍网架构-又一个用到python的网站
- [转]几个python 入门程序--例2( 如何将多个模块打包成一个模块)
- linux下用Apache一个IP多个网站多域名配置方法