使用Pelican搭建静态博客

周四 21 九月 2017

前言

之前用Hexo搭建静态博客,但安装完nodejscmder在启动时会调用node.exe导致启动缓慢,又因为我比较偏爱Python,所以我采用了使用Python编写的Pelican静态博客生成系统。

介绍

Pelican是个开源的的Python编写的静态网页生成器,支持MarkDownreStructuredText,采用Jinja2模板引擎,可以很方便的修改模板。

安装

pip install pelican
pip install markdown

这样就完成了Pelican的安装

搭建一个博客

mkdir /path/to/your/blog
cd /path/to/your/blog
pelican-quickstart

运行pelican-quickstart后主要会生成以下文件

.
|-- content                # 所有文章放于此目录
|-- develop_server.sh      # 用于开启测试服务器
|-- Makefile               # 方便管理博客的Makefile
|-- output                 # 静态生成文件
|-- pelicanconf.py         # 配置文件
|-- publishconf.py         # 配置文件

配置aliase

因为在windows下无法使用make,所以我在cmder的配置文件中添加了aliase来方便博客的搭建
修改cmder安装目录下config文件夹下的aliase文件,添加以下内容

blog_make=pelican /path/to/your/blog/content/ -o /path/to/your/blog/content/output/ -s /path/to/your/blog/content/pelicanconf.py
blog_update=cd /path/to/your/blog/content/output && git add . && git commit -m 'update' && git push origin master
blog_web=cd /path/to/your/blog/content/output && python -m SimpleHTTPServer

重启cmder后就可以使用blog_make构建博客,使用blog_web预览博客,使用blog_update上传到Github。

开始写文章

content目录下新建一个HelloWorld.md文件,写入以下内容

Title: First Blog
Date: 2017-09-18
Modified: 2017-09-18
Category: Blog
Tags: Python

It works.

然后执行

blog_make

生成html
再执行

blog_web

现在可以访问http://localhost:8000来预览生成的网页。

创建一个页面

文章都是与时间绑定的,而有些不含时间信息的网页,例如About或者contact页面,就称为页面。 在contect目录下创建pages目录,然后在该目录下创建一些文件,再执行blog_make生成html,再访问http://localhost:8000来预览生成的网页。
PS:有的主题可能默认不显示pages

更换主题

Pelican有很多主题可供选择

git clone git://github.com/getpelican/pelican-themes.git 

zurb-F5-basic主题为例,在pelicanconf.py配置文件中修改THEME

THEME = 'pelican-themes/zurb-F5-basic'

重新执行

blog_make

再执行

blog_web

现在可以访问http://localhost:8000来预览生成的网页。

使用插件

首先从Github上下载插件

git clone git://github.com/getpelican/pelican-plugins.git

sitemap插件为例,在pelicanconf.py中添加

PLUGIN_PATH = u"pelican-plugins"

PLUGINS = ["sitemap"]

SITEMAP = {
    "format": "xml",
    "priorities": {
        "articles": 0.7,
        "indexes": 0.5,
        "pages": 0.3,
    },
    "changefreqs": {
        "articles": "monthly",
        "indexes": "daily",
        "pages": "monthly",
    }
}

重新执行

blog_make

再执行

blog_web

现在可以访问http://localhost:8000来预览生成的网页。

添加静态目录

有时候md文件会引用一些静态的图片,这时可以配置静态目录,在pelicanconf.py中修改

STATIC_PATHS = [u"img"]

重新执行

blog_make

原来在content目录下的img文件就复制到了output目录下。

上传到Github

首先在output目录执行

git init
git add .
git remote add origin https://github.com/yourname/yourname.github.io
git pull origin master
git commit -m 'update'
git push origin master

之后也可以通过blog_update来上传到Github

TODO

  1. 添加评论
  2. Google Analytics

Category: Python Tagged: Python Pelican Blog

Comments

Fork me on GitHub