Pelican 入门:一个 Python 静态网站生成器

news/2024/5/11 18:43:46/文章来源:https://blog.csdn.net/w17688977481/article/details/88603829

如果你想创建一个自定义网站或博客,有很多选择。许多提供商可以托管你的网站并为你完成大部分工作。(WordPress 是一个非常受欢迎的选项。)但是使用托管方式,你会失去一些灵活性。作为一名软件开发人员,我更喜欢管理我自己的服务器,并在我的网站如何运行方面保持更多的自由。

然而,管理 Web 服务器需要大量的工作。安装它并获得一个简单的应用程序来提供内容是非常容易的。但是,维护安全补丁和更新是非常耗时得。如果你只想提供静态网页,那么拥有一个 Web 服务器和一系列应用程序可能会得不偿失。手动创建 HTML 页面也不是一个好选择。

这是静态网站生成器的用武之地。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。(例如,所有显示的页面都带有公共标签或关键词。)静态网站生成器可以帮助你使用导航区域、页眉和页脚等元素创建一个具有公共外观的网站。

我使用 Pyhton 已经很多年了,所以,当我第一次开始寻找生成静态 HTML 页面的东西时,我想要用 Python 编写的东西。主要原因是我经常想要了解应用程序如何工作的内部细节,而使用一种我已经了解的语言使这一点更容易。(如果这对你不重要或者你不使用 Python,那么还有一些其他很棒的静态网站生成器,它们使用 Ruby、JavaScript 和其它语言。)

我决定试试 Pelican。它是一个用 Python 编写的常用静态网站生成器。它支持 reStructuredText(LCTT 译注:这是一种用于文本数据的文件格式,主要用于 Python 社区的技术文档),并且也支持 Markdown,这需要通过安装必需的包来完成。所有任务都是通过命令行界面(CLI)工具执行的,这使得熟悉命令行的任何人都可以轻松完成。它简单的 quickstart 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 的 quickstart 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

你需要启动的所有文件都准备好了。

quickstart 默认为欧洲/巴黎时区,所以在继续之前更改一下。在你喜欢的文本编辑器中打开 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 识别变量实际上是一个集合。确保你没有删除这个逗号。

现在你已经有了网站的基本知识。quickstart 创建了一个包含许多目标的 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.

在你最喜欢的浏览器中打开 http://localhost:8000 来查看你的简单测试博客。

 

 

你可以在右侧看到 Twitter 链接,左侧有 Pelican、Python 和 Jinja 的一些链接。(Jinja 是 Pelican 可以使用的一种很棒的模板语言。你可以在 Jinja 的文档中了解更多相关信息。)

添加内容

现在你又了一个基本的网站,试着添加一些内容。首先,将名为 welcome.rst 的文件添加到网站的 content 目录中。在你喜欢的文本编辑器中,使用以下文本创建一个文件:

$ pwd
/Users/craig/tmp/pelican/test-site
$ cat content/welcome.rstWelcome to my blog!
###################:date: 20181216 08:30
:tags: welcome
:category: Intro
:slug: welcome
:author: Craig
:summary: Welcome documentWelcome 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 会自动检测到 intro 栏目,并将该部分添加到顶部导航中。

更改主题

使用像 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/'

开发服务器将重新生成你的输出。在浏览器中刷新网页来查看新主题。

 

 

主题控制布局的方方面面。例如,在默认主题中,你可以看到文章旁边带有元标记的栏目(Intro),但这个栏目并未显示在 blueidea 主题中。

其他考虑因素

本文是对 Pelican 的快速介绍,所以我并没有涉及一些重要的主题。

首先,我对迁移到静态站点犹豫不决的一个原因是它无法对文章评论。幸运的是,有一些第三方服务商将为你提供评论功能。我目前正在关注的是 Disqus。

接下来,上面的所有内容都是在我的本地机器上完成的。如果我希望其他人查看我的网站,我将不得不将预先生成的 HTML 文件上传到某个地方。如果你查看 pelican-quickstart 输出,你将看到使用 FTP、 SSH、S3 甚至 GitHub 页面的选项,每个选项都有其优点和缺点。但是,如果我必须选择一个,那么我可能会选择发布到 GitHub 页面。

Pelican 还有许多其他功能,我每天都在学习它。如果你想自托管一个网站或博客,内容简单并且是静态内容,同时你想使用 Python,那么 Pelican 是一个很好的选择。它有一个活跃的用户社区,可以修复 bug,添加特性,而且还会创建新的和有趣的主题。试试看吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_888656.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐12个免费学编程的好网站

今天给大家推荐12个可以免费学习编程的网站,希望大家哪怕找到一个自己合适的,然后好好利用起来,那么必将会有长足的进步。 12. 实验楼 这是我的私心。实验楼是自家网站,自家网站不放在前排,就好比有好吃的不先给好朋…

可以免费自学编程的12个网站

编程学习 很多人包括一些企业家,和市场营销人员都认为学习编程对一个人走向成功十分有帮助。在过去的一年里,我一直在学习编程。它有助我成为一个更好的创业者,我甚至可以提供一些帮助,当我的团队需要解决一些bug的时候。 现在&…

国外经典脚本下载网站

脚本使网站更加动态和更具交互性,但是写好一个脚本并不是一件容易的工作,因此一些开发者会到网站下载其他人分享的脚本来使用。今天,本文向大家推荐20佳国外的脚本下载网站。 1- Hot Scripts 2- Code Canyon 3- User Scripts 4- Scripts 5-…

做一个好网站的标准有哪些?

大家都想要一个好网站,但是好网站的评价标准是什么,估计有很多人是说不清的,甚至一些老板也是,他们只觉得看着好看、大气的网站就是好网站,却并不知道,好网站该具备哪些因素。为了让大家进一步了解好网站的…

网站建设时首页应该怎样布局?

网站首页是影响排名的重要因素,由此可见网站首页布局对于网站建设的重要性。对于网站的SEO人员来说,网站的首页是尤其重要的,无论是什么样的网站,首页对网站的排名都非常重要。网站首页在网站优化中,对网站排名的重要性…

什么样的网站会影响用户的体验度?

在网站建设中,很多公司在进行企业网站建设的时候,一味地追求网站的视觉冲击感,从而忽略了网站建设的一个很重要的因素,那就是用户的好感度。很多人认为,网站建设的越复杂会对用户的好感度越高,其实不然&…

SEOer每天需要做的工作有哪些?

网站进行SEO优化涉及的要素很多,并且市场绝大多数企业都只有一个优化人员,科学的规划工作时间和内容更有利于促进排名的提升,盲无目的的想到什么做什么起不到任何优化作用,甚至反效果。那么SEO人员如何科学的进行规划?SEO人员每天…

SEO需要每天写文章吗?

搜索引擎亲耐大量的新鲜内容,如果seo每天都能写文章并且提交给搜索引擎,那么对于网站本身来讲对搜索引擎是比较友好的,万事没有绝对化,写不出原创文章能做seo吗?在某些特定情况下seo不需要每天写文章,比如网…

手机网站怎样做可以提高用户体验度?——竹晨网络

目前,手机已经占据了人们大多数的闲暇时间,互联网的流量开始逐渐向移动端倾斜,重视移动端的用户体验,就可以给客户端增加很多意想不到的功能。但是还是有很多公司和站长不知道手机网站应该怎么建才能符合用户的使用习惯。 下面&a…

seo关键词应该怎样设定?——竹晨网络

做seo就需要和如何设定关键词打交道,每一个页面都能独自承载布局一些特定的关键词,在合适的页面布局合适的关键词是做seo工作所要求的。我们在设定网站关键词的时候,有一些必要的基础性原则是必须遵循的,记住:原则必须…

seo运营是什么意思?—竹晨网络

实际上seo与运营是不可分割的,网站运营或者网络运营是包含seo的,如果非要解释seo运营是什么意思,可以从不同的角度来阐述。通俗来讲seo运营是指为了满足用户搜索查询需求而做的搜索引擎优化工作,主体是搜索引擎,方式是…

网站建设要怎么提升关键词的排名?—竹晨网络

一个网站的首页以及其他栏目可以说占据了整个网站的最高权重,那对于首页以及栏目页的关键词确定好以后,应该怎么进行优化呢?网站建设要怎样才能提升这些关键词的排名呢?在此,竹晨网络就给大家介绍一下较为有效的优化方…

网站设计中的7个错误—竹晨网络

拥有一个吸引用户的独特而有创意的网站设计不再是一个选择,2019年,网站设计中必须具备这些功能。枯燥和老式的网站设计不再可行,因为它们不能吸引注意力或让用户想要进一步探索。用户应该有独特的体验。一个功能齐全、干净整洁的网站设计是必…

怎样才能做好营销型网站建设?—竹晨网络

怎样才能做好营销型网站建设?哪家营销型网站建设外包公司好?在如今这个互联网时代的背景下,这是不少中小型企业面临的一大难题。企业如何实现网络营销、如何搭建网站、如何通过网站引流,成为企业所关注的重要问题。随着市场竞争的…

seo优化对于中小企业发展的作用-竹晨网络_石家庄网站建设_小企业网站建设

1、提升公司知名度 在移动搜索的互联网时代,几乎每个人都有手机。对于许多家庭用品的选择和购买,都是通过网上购物,这是时代进步的产物,当选择商品或服务或搜索信息答案时,搜索时间变得越来越频繁。通过移动互联网的推…

如何围绕用户做好运营?-竹晨网络_石家庄网站建设_小企业网站建设

网络运营从天马行空中绕了一圈,又回到了一个起点,高举用户体验这个大旗。而从最初的网站运营开始,“外链为皇,内容为王”的核心价值还是用户,随着自建流量池的呼声高涨,网络运营又把网站运营当做了重头戏。…

网站SEO优化5大注意点-竹晨网络_石家庄网站建设_小企业网站建设

对于刚开始接触SEO优化的我们来说,真的是一头雾水,不知道从何下手。会盲目的买一些质料,自己边学边操作,到最后发现都是一些过时的东西,根本没有自己想要的那种效果。那如何才能做好网站SEO优化呢,准确的来…

python异步协程爬取某网站图片

import asyncio import time import aiohttp import os import re import sys import aiofiles 下面示例 urls [] url_s [] headers {user-agent: 自己的ua}k int(input("请输入爬取页面数:")) # # for i in range(2, k 1): # u https://www.3g…

某网站二次元美女图片爬取加破解(plus版) python

import sys import time import os import requests import re # 正则表达式,进行文字匹配 from bs4 import BeautifulSoup # (网页解析,获取数据) import urllib.request, urllib.error # 制定URL,获取网页数据,urllib.reques…

分析企业如何建设适合自己的网站

一个独立的网站对于企业的重要性不言而喻,不仅能树立企业的互联网形象,更有助于后期互联网市场的推广和宣传,而如何选择一家专业靠谱的建站公司或者如何去辨别一家靠谱的网站建设公司却是多数有需求的人员为之苦恼的问题。  纵观目前建站市场…