Pelican使用教程和经验
Pelican在国内的流行程度不如Hexo和Hugo等静态博客生成器,所以Pelican的中文教程比较少。
前文,麦田写过Pelican的安装教程,本篇介绍Pelican的使用教程和使用经验:
1、Pelican新建网站
在D盘新建文件夹00(00是本文示例的文件夹名字),进入后在空白处右键点击Git Bash打开命令行工具。
新建网站:pelican-quickstart(网站内容就在00文件夹里面)
如果返回结果显示Welcome to pelican-quickstart,表示pelican运行正常。
随后会提示输入博客的配置项,除了少数几个必填,其它都可以选择默认,而且都可以在pelicanconf.py文件中修改。Pelican网站的框架如下:
00/
├── content # 存放输入的markdown或RST源文件
│ └── (pages) # 存放手工创建的静态页面,可选
├── output # 存放最终生成的静态博客
├── develop_server.sh # 测试服务器
├── Makefile # 管理博客的Makefile
├── pelicanconf.py # 配置文件
└── publishconf.py # 发布文件,可删除
Pelican支持Markdown和reStructuredText语法,麦田以Markdown为例说明。
到content文件夹内新建.md文件,模板格式如下:
---
Title: 麦田的博客文章标题
Date: 2019-09-10
Modified: 2019-10-08 #更新时间
Category: Python #网站分类
Tags: pelican, publishing #标签
Slug: my-super-post #生成网页的名字
Author: 作者名字
Summary: 概要,概括本文的内容
---
正文
以上模板有些内容可以不要,但是至少要保留标题、时间和标签:
---
Title: 文章标题
Date: 2019-09-10
Tags: 文章, 标题
---
复制模板,粘贴若干个,即可在这些md文件内写博客!
2、生成和预览网站
Pelican生成网站的命令:pelican content
然后,文件夹output内就有个静态网站,预览网站的命令:python -m pelican.server
然后浏览器打开:localhost:8000,即可预览网站。
本人用以上命令无法成功预览,以下方法成功,操作更简单:
由于Windows不能使用makefile,不能使用make html这样快捷的方法来生成Html,所以我们利用Windows的批处理做一个简单的"Makefile"。
在博客根目录下新建一个auto-update.bat批处理文件,里面添加内容:
@echo off
setlocal enabledelayedexpansion
for /f "delims= tokens=1" %%i in ('netstat -aon ^| findstr "8000"') do (
set a=%%i
goto job
)
:job
taskkill /F /pid "!a:~71,5!"
pelican content
cd output
start cmd /c "python -m pelican.server 8000"
cd ..
具体方法:新建一个文本文件,打开粘贴以上内容后保存,然后将文件命名为:
任意名字.bat,比如yulan.bat,重点是要将txt修改成bat!
修改网站后,点击这个批处理文件,即可在浏览器预览你网站最新的状态!
3、Pelican主题
Pelican主题的网址:pelicanthemes.com
一共有大约129个主题,只有28M,一键即可下载到本地使用!主题放在网站文件夹内的文件夹themes,然后编辑pelicanconf.py文件,添加:
# 配置主题,主题文件夹放在00文件夹内的themes文件夹
THEME = "themes/主题文件夹名字"
4、Pelican插件
Pelican是通过插件来实现一些网站功能的,比如常见的:
相关内容板块,英文:related posts;
上下篇版块,也叫邻居导航,英文:neighbors;
Pelican插件仓库,大约有149个:github.com/getpelican/pelican-plugins
插件的使用方法,打开插件仓库后按CTRL+F查找,点击进去后看说明!
插件的使用方法:
网站文件夹内新建文件夹_plugins,将插件仓库内的插件文件夹复制进去;
5、配置网站,熟悉pelicanconf.py文件
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
AUTHOR = '麦田'
SITENAME = '麦田的博客'
SITEURL = 'https://www.mtdsj.com'
PATH = 'content'
TIMEZONE = 'UTC'
# 默认语言,建议填en,没有zh
DEFAULT_LANG = 'en'
# 配置主题,主题文件夹放在00文件夹内的themes文件夹
THEME = "themes/alchemy"
# 网站副标题
SITESUBTITLE = '麦田的世界和博客'
# 日期格式参看:中国习惯是年-月-日
DEFAULT_DATE_FORMAT = '%Y-%m-%d'
#设置插件路径
PLUGIN_PATH = "plugins"
#选用以下插件
PLUGINS = ["sitemap","neighbors","related_posts"]
#sitemap
SITEMAP = {
'format': 'xml',
'priorities': {
'articles': 0.7,
'indexes': 0.8,
'pages': 0.5
},
'changefreqs': {
'articles': 'monthly',
'indexes': 'daily',
'pages': 'monthly'
}
}
#相关文章
RELATED_POSTS_MAX = 10
#次级文件夹中的文章,如果没有分类,则使用文件夹名称代替,缺省为True
USE_FOLDER_AS_CATEGORY = True
# 默认归类(未归类的归入自动此类)
DEFAULT_CATEGORY = '杂项'
# 自动生成的摘要的最大词语个数,缺省为50
SUMMARY_MAX_LENGTH = 100
# 导航栏条目,只能是绝对路径,否则前面会自动加上“category/”;
# 主题模板的archives.html和tags.html页则可在base.html中硬编码
MENUITEMS = [ ('XiiiGame', 'http://www.xiiigame.com')]
# Blogroll
LINKS = (('网海拾贝', 'http://www.wanghaishibei.com/'),
('明日歌', 'https://www.mingrige.com/'),)
# 谷歌统计
GOOGLE_ANALYTICS = 'UA-xxxxxxxxx-x'
DEFAULT_PAGINATION = 10
# pelican中禁用feed的产生是非常容易的
FEED_ALL_ATOM = None
CATEGORY_FEED_ATOM = None
TRANSLATION_FEED_ATOM = None
6、静态文件
如果在文章中放一张图片,图片放在content文件内的image文件夹,生成html时image文件夹不能自动复制到output文件夹内,解决方法:
在pelicanconf.py 文件内添加一个包含你的图片目录的变量:
STATIC_PATHS = ['images']
这样生成output资源时就会自动把image文件夹复制到output目录。
另外使用EXTRA_PATH_METADATA也可以把某个目录的文件映射过去,例如favicon.ico放在content/extra目录下,最后需要生成到output的根目录,可以添加:
STATIC_PATHS = ['images', 'extra/favicon.ico']
EXTRA_PATH_METADATA = {
'extra/favicon.ico': {'path': 'favicon.ico'}
}
7、参考文档
Pelican中文文档:https://pelican-docs-zh-cn.readthedocs.io/en/latest/settings.html