James Wainscoat在Unsplash上的封面照片。
您是在美丽的网络开发世界中新来的吗?或者,也许您是一个经验丰富的WebDev',但您不想在您的个人博客上花太多时间?
我得到了你的支持!好吧,更确切地说,鹈鹕有你的后背。 ;)
什么是鹈鹕?
Pelican( calepin of calepin 的字段在法语中表示笔记本)是所谓的静态站点生成器(SSG)。
SSG是一种软件工具,该工具生成了仅由HTML和CSS文件组成的完整静态网站(有时是某些客户端JavaScript)。该软件使用Markdown中的原始数据和一些模板来渲染您的网站。
这是创建网站的一种非常有效的方法,尤其是博客!只需安装此工具,现在,您只需要写文章即可。 ;)
这就是我们在这篇文章中要做的。
安装
鹈鹕在python中均编写,因此该编程语言中的某些知识是一种奖励。
安装鹈鹕非常简单,一个pip
命令,已经完成!
但首先,养成习惯创建虚拟环境。这不是强制性的,但是对此,您不会将依赖关系从项目到另一个项目等等。
$ mkdir blog
$ cd blog
$ virtualenv -p python3 venv
$ source venv/bin/activate
现在,您可以使用此著名的pip
命令!
pip install pelican
# If you plan to write your articles in Markdown, use:
pip install 'pelican[markdown]'
让我们开始我们的博客
一旦安装了鹈鹕,我们就可以使用鹈鹕为我们提供的pelican-quickstart
命令进行一些骨架,并进行一些配置。
这是我为博客做出的输出和选择。
Welcome to pelican-quickstart v4.8.0.
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? ttbb's blog
> Who will be the author of this web site? ttbb
> What will be the default language of this web site? [fr] en
> Do you want to specify a URL prefix? e.g., https://example.com (Y/n)
> What is your URL prefix? (see above example; no trailing slash) https://tt-bb.github.io
> Do you want to enable article pagination? (Y/n)
> How many articles per page do you want? [10]
> What is your time zone? [Europe/Rome] Europe/Brussels
> 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.
一些解释:
-
源目录:请记住,我们在
blog/
目录中,因此我将.
用作我们博客的来源。 - URL前缀:如您所见,我将使用github页面在github.com上托管我的博客。我稍后会谈谈。
回答所有这些问题后,我们现在拥有博客的第一阶段:骨架和一些配置文件。
这是它的外观:
blog/
├── venv/ # Virtual environment
├── content/
│ └── (images)/ # to stock our images, ah!
│ └── (pages)/ # optionally add yourself if you plan to create non-chronological content
├── output/
├── tasks.py
├── Makefile
├── pelicanconf.py # Main settings file
└── publishconf.py # Settings to use when ready to publish
关于github页面的一些离题
如前所述,我将使用GitHub页面主持我的博客。 Github强加了我们网站的输出目录:/(root)
或/docs/
。我可以选择root,只在存储库上提交我的输出目录。但是我也想托管所有我的配置文件。因此,我们必须告诉Pelican,我们的输出目录是docs/
。
为此,添加您的文件pelicanconf.py
此行:
OUTPUT_PATH = 'docs/'
和更改您的Makefile
,将第七行归档到此:
OUTPUTDIR=$(BASEDIR)/docs
现在,我们可以删除output/
目录。
是时候写一些内容了
我将使用Markdown来编写我的帖子,但知道重组文本格式也被接受。
我们的所有博客文章都将存储在content/
目录中。如果您有一些页面,例如关于我或与我联系,最好将它们放入content/pages/
目录中。
这是我的第一篇文章,这很简短,但是他!
Title: Hello, World
Date: 2022-09-07 12:42
Tags: hello
Category: hello
Authors: ttbb
Summary: Some Hello within my head
# Hello, world!
Welcome on my blog, folks
前六行是我们所说的元数据。它用于将您的文章中的信息共享到模板。一些主题(我们稍后将讨论它们)授权补充元数据。
接下来,我们有一个超级原始标题和一个段落。
这是裸鹈鹕包含的所有基本元数据的list。
这是出版...
规范的方式
我们可以使用鹈鹕规范的方式来部署我们的网站。我们使用pelican
命令:
pelican content/
(请记住,我们仍然在blog
目录中。;))
自动化,自动化
如果您回答了问题您是否想生成一个任务。 (y/n),tasks.py
和Makefile
是在我们项目的根源中生成的。我们可以使用并使某些命令进行人格化。因此,我要在Makefile
文件中使用命令定义。
make devserver
# It runs both:
# - make regenerate # to re-generate our markdown to html
# # after every modification
# - make serve # to preview it in our browser
如果所有内容都是正确的设置,则是此命令的输出:
--- AutoReload Mode: Monitoring `content`, `theme` and `settings` for changes. ---
-> Modified: settings, content, theme. re-generating...
Serving site at: http://127.0.0.1:8000 - Tap CTRL-C to stop
Done: Processed 1 article, 0 drafts, 0 hidden articles, 0 pages, 0 hidden pages and 0 draft pages in 0.27 seconds.
如前所述,我们可以在http://127.0.0.1:8000中找到我们的博客。
主题
哇,设计不是很现代...不用担心,我们会改变它!
我们可以在here中找到一个非常好的主题列表。选择您的一个,您最好的朋友,您的知己。哼...
我从arulrajnet选择Attila。
安装
我决定将我的主题文件放在我的github存储库上。因此,我必须创建一个目录,我在博客上称为主题,它将具有blog/themes/
的路径。
接下来,我下载了Attila主题(通过git clone
或直接下载),然后将文件放在Attila目录下的主题文件夹上。
我的骨骼履历
blog/
├── venv/
├── content/
│ └── (images)/
│ └── (pages)/
│ └── hello.md
├── docs/
│ └── ...
├── themes/
│ └── attila/
│ └── ...
├── tasks.py
├── Makefile
├── pelicanconf.py # Main settings file
└── publishconf.py # Settings to use when ready to publish
好的。我的主题已下载。下一步是什么?我们必须告诉Pelican我们有一个新主题。我们使用内置命令pelican-themes
做到这一点。
pelican-themes -U themes/attila/
# Verify that our theme is installed :
pelican-themes -l
接下来,向您的博客发出信号,该博客将使用主题。为此,修改您的pelicanconf.py
并添加此行:
THEME = 'attila'
在GitHub页面上发布我们的博客
首先,您必须创建一个新的存储库。重要规则:必须名称为<your github pseudo>.github.io
。因此,如果我的用户名是 tt-bb ,我的存储库将被称为 tt-bb.github.io 。。
接下来,您知道该怎么办(请记住,我们在我们的blog/
目录上):
git init
git add .
git commit -m "Initial commit: first blog post (Hello World)"
git branch -M main
git remote add origin git@github.com:<username>/<username>.github.io.git
git push -u origin main
在这里,您在github.com上有代码。
但是。不是这个。您必须使用GitHub使用GitHub页面。您可以在tab 设置中执行此操作,菜单 pages 。
之后,选择要部署的分支(此处 main ),然后选择“输出目录”(此处docs/
)。
保存。等一下。完成!
请注意,您可以在选项卡中跟踪发布进度的进度 Action :
结论
就是伙计们。编写更多内容,提交,发布并向我展示您的工作。 ;)