Pelican是想要自行托管简单网站或博客的Python用户的绝佳选择。如果您想创建自定义网站或博客,有很多选择。许多提供商可以托管您的网站并为您完成大部分工作。(WordPress是一个非常受欢迎的选择。)但是有了托管,您就失去了一些灵活性。作为一名软件开发人员,我更喜欢管理自己的服务器,并且在我的网站运行方式上有更多的自由。但是,管理Web服务器需要大量工作。安装它并获得一个简单的应用程序来交付内容非常容易。但是,维护安全补丁和更新非常耗时。如果您只想提供静态网页,那么拥有一个Web服务器和一组应用程序可能不值得付出努力。手动创建HTML页面也不是一种选择。这就是静态站点生成器的用武之地。这些应用程序使用模板来创建所需的静态页面,并将它们与关联的元数据交叉链接。(例如,所有显示的页面都带有共同的标签或关键字。)静态网站生成器可以帮助您创建一个外观相似的网站,其中包含导航区域、页眉和页脚等元素。我已经使用Pyhton很多年了,所以当我第一次开始寻找可以生成静态HTML页面的东西时,我想要用Python编写的东西。主要原因是我经常想了解应用程序如何工作的内部细节,而使用我已经知道的语言会使这更容易。(如果这对您来说无关紧要,或者您不使用Python,还有其他一些用Ruby、JavaScript和其他语言编写的很棒的静态站点生成器。)我决定试试Pelican。它是一个用Python编写的流行的静态网站生成器。它支持reStructuredText(LCTT译注:这是一种文本数据的文件格式,主要用于Python社区的技术文档),也支持Markdown,需要安装所需的包来实现。所有任务都通过命令行界面(CLI)工具执行,这使得熟悉命令行的任何人都可以轻松上手。其简单的快速启动CLI工具使创建网站变得非常容易。在本文中,我将向您展示如何安装Pelican4、添加文章以及更改默认主题。(注意:我是在MacOS上开发,其他Unix/Linux实验也会有相同的结果,但我没有Windows主机可以测试。)安装配置第一步是创建虚拟环境,在虚拟环境中安装Pelican。$mkdirtest-site$cdtest-site$python3-mvenvvenv$./venv/bin/pipinstall--upgradepip...成功安装pip-18.1$./venv/bin/pipinstallpelicanCollectingpelican...成功安装MarkupSafe-1.1.0blinker-1.4docutils-0.14feedgenerator-1.9jinja2-2.10pelican-4.0.1pygments-2.3.1python-dateutil-2.7.5pytz-2018.7six-1.12.0unidecode-1.0.2quickstartCLI工具将创建基本布局和一些文件来帮助您入门,运行pelican-quickstart命令。为简单起见,我输入了站点标题和作者的名字,并为URL前缀和文章分页选择了“N”。(对于其他选项,我使用默认值。)稍后在配置文件中更改这些设置非常容易。$./venv/bin/pelicanquickstart欢迎使用pelicanquickstartv4.0.1。此脚本将帮助您创建一个新的基于Pelican的网站。请回答以下问题,以便此脚本生成Pelican所需的文件。>您要在哪里创建你的新网站?[.]>这个网站的标题是什么?我的测试博客>谁将是这个网站的作者?Craig>该网站的默认语言是什么?[zh]>是否要指定URL前缀?例如,https://example.com(Y/n)n>是否要启用文章分页?(Y/n)n>你所在的时区?[Europe/Paris]>是否要生成一个tasks.py/Makefile来自动生成和发布?(Y/n)>您想使用FTP上传您的网站吗?(y/N)>您想使用SSH上传您的网站吗?(y/N)>您想使用Dropbox上传您的网站吗?(y/N)>您想使用S3上传您的网站吗?(y/N)>你想起来吗使用Rackspace云文件加载您的网站?(y/N)>你想使用GitHubPages上传你的网站吗?(是/否)完成。您的新项目位于/Users/craig/tmp/pelican/test-site您需要启动的所有文件都已准备就绪quickstart默认为Europe/Paris时区,因此请在继续之前更改它。在您喜欢的文本编辑器中打开pelicanconf.py文件并查找TIMEZONE变量。TIMEZONE='Europe/Paris'将其更改为UTC。TIMEZONE='UTC'要更新常用设置,请在pelicanconf.py中查找SOCIAL变量。SOCIAL=(('Youcanaddlinksinyourconfigfile','#'),('Anothersociallink','#'),)我将添加一个链接到我的Twitter帐户。SOCIAL=(('Twitter(#craigs55)','https://twitter.com/craigs55'),)注意末尾的逗号,这很重要。这个逗号将帮助Python识别变量实际上是一个集合。确保你没有删除这个逗号。现在您已经掌握了网站的基础知识。quickstart创建一个包含许多目标的Makefile。将devserver传递给make命令将在您的计算机上启动一个开发服务器,以便您可以预览所有内容。Makefile中使用的CLI命令假定位于PATH搜索路径上,因此您需要先激活该虚拟环境。$source./venv/bin/activate$makedevserverpelican-lr/Users/craig/tmp/pelican/test-site/contento/Users/craig/tmp/pelican/test-site/output-s/Users/craig/tmp/pelican/test-site/pelicanconf.py->修改:主题,设置。正在重新生成...警告:未在内容中为活跃读者找到有效文件:|BaseReader(静态)|HTML阅读器(htm,html)|RstReader(rst)Done:在0.18秒内处理了0篇文章、0个草稿、0个页面、0个隐藏页面和0个草稿页面。在您喜欢的浏览器中打开http://localhost:8000以查看您的简单测试博客。您可以在右侧看到Twitter链接,在左侧看到Pelican、Python和Jinja的一些链接。(Jinja是Pelican可以使用的一种很棒的模板语言。您可以在Jinja的文档中阅读更多相关信息。)添加内容现在您已经有了一个基本的网站,请尝试添加一些内容。首先,将名为welcome.rst的文件添加到您网站的内容目录中。在您最喜欢的文本编辑器中,创建一个包含以下文本的文件:$pwd/Users/craig/tmp/pelican/test-site$catcontent/welcome.rstWelcometomyblog!###################:date:2018121608:30:tags:welcome:category:Intro:slug:welcome:author:Craig:summary:WelcomedocumentWelcometomyblog.Thisisashortpage只是为了展示如何放一个静态页面。Pelican会自动解析元数据行,包括日期、标签等。写入文件后,开发服务器应输出以下内容:->Modified:内容。正在重新生成...完成:在0.10秒内处理了1篇文章、0个草稿、0个页面、0个隐藏页面和0个草稿页面。在浏览器中刷新您的测试站点以查看更改。日期和标签等元数据会自动添加到页面中。此外,Pelican会自动检测介绍部分并将该部分添加到顶部导航。使用像Pelican这样流行的开源软件的好处之一是,有大量用户对项目进行更改并做出贡献。许多是作为主题贡献的。网站的主题设置颜色、布局选项等。尝试新主题非常容易,您可以在PelicanThemes中预览其中的许多主题。首先,克隆GitHub存储库:$cd..$gitclone--recursivehttps://github.com/getpelican/pelicanthemes克隆到'pelicanthemes'...我喜欢蓝色,所以试试blueidea。编辑pelicanconf.py,添加以下行:THEME='/Users/craig/tmp/pelican/pelican-themes/blueidea/'开发服务器将重新生成您的输出。在浏览器中刷新页面以查看新主题。主题控制布局的各个方面。例如,在默认主题中,您可以在文章旁边看到带有元标记的部分(介绍),但该部分在blueidea主题中没有显示。其他注意事项本文是对Pelican的快速介绍,因此我没有涵盖一些重要主题。首先,我对迁移到静态站点犹豫不决的原因之一是它无法对文章发表评论。幸运的是,有一些第三方服务可为您提供评论功能。我目前正在查看的是Disqus。接下来,上面的一切都在我的本地机器上完成。如果我想让其他人查看我的网站,我将不得不在某处上传一个预先生成的HTML文件。如果您查看pelican-quickstart输出,您会看到使用FTP、SSH、S3甚至GitHubPages的选项,每个选项都有其优缺点。但是,如果我必须选择一个,我可能会选择发布到GitHubPages。Pelican还有许多其他功能,我每天都在学习它。如果你想自建一个内容简单静态的网站或博客,又想使用Python,那么Pelican是一个不错的选择。它有一个活跃的用户社区,可以修复错误、添加功能并创建新的有趣的主题。尝试一下!【编辑推荐】微软沉向洋谈GitHub,数据信仰与未来计算。全球“AI+教育”浪潮已经到来。第三届AIAED全球AI智适应教育峰会重头戏“剧透”。想要成为AI时代的“铁杆玩家”,就不得不知道这8个预测给今年的两大趋势“5G和人工智能”泼冷水。为什么人类和人工智能越来越相似?
