麦田的博客

Pelican使用教程和经验

2019-09-01


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


相关内容

  • GitBook介绍安装和使用教程
  • Hugo升级方法和遇到的问题
  • Markdown软件推荐
  • HTML引入CSS的方法和示例
  • vscode的使用经验-编辑md文件
  • WordPress评论模块删除邮箱和网址表单
  • 麦田收集的优秀网站
  • RAKsmart主机教程
  • OpenCart商城程序使用经验
  • 静态博客生成器大全和简评
  • 标签

    Pelican静态网站生成器教程博客网站程序