用 Pelican 和 GitHub Pages 搭建免费的个人博客

Pelican 介绍

首先看看 Pelican 的一些主要特性:

Python实现,开放源码输出静态页面,方便托管支持主题,采用Jajin2模板引擎支持代码语法高亮支持reStructuredTextMarkdownAsciiDoc格式支持Disqus评论支持AtomRSS输出

这些特性都是大爱,完全满足我对博客系统的基本需求,再配合免费无限制的GitHub Pages,一切近乎完美了。

安装 Pelican

开始前请自行安装Python环境,支持2.7.X和3.3+,为方便,再顺手装上distributepipvirtualenv。(注:我的操作系统是:Windows 7)

创建Pelican虚拟环境

virtualenv PelicanEnv --distributePelicanEnv\Scripts\activate

安装 Pelican

pip install pelican

如果您使用Markdown来写文章的话,还需要安装Markdown

pip install Markdown

创建 Blog

创建一个 Blog 目录

mkdir myblogcd myblog

快速创建 Blog

pelican-quickstart

根据提示一步步输入相应的配置项,不知道如何设置的接受默认即可,后续可以通过编辑pelicanconf.py文件更改配置。

以下是生成的目录结构:

myblog/├── content              # 存放输入的源文件│   └── (pages)          # 存放手工创建的静态页面├── output               # 生成的输出文件├── develop_server.sh    # 方便开启测试服务器├── Makefile             # 方便管理博客的Makefile├── pelicanconf.py       # 主配置文件└── publishconf.py       # 发布时使用的配置文件

撰写文章

在 content 目录下用 Markdown 语法来写一篇文章

Title: My super titleDate: 2010-12-03 10:20Category: PythonTags: pelican, publishingSlug: my-super-postAuthor: Alexis MetaireauSummary: Short version for index and feedsThis is the content of my super blog post.

生成页面

make html

现在就可以在output目录查看生成的html文件了。

由于我的操作系统是Windows,我对Makefile做了一些修改。

PY=pythonPELICAN=pelicanPELICANOPTS=BASEDIR=$(CURDIR)INPUTDIR=$(BASEDIR)/contentOUTPUTDIR=$(BASEDIR)/outputGITHUBDIR=$(BASEDIR)/togithubCONFFILE=$(BASEDIR)/pelicanconf.pyPUBLISHCONF=$(BASEDIR)/publishconf.pyhelp:    @echo '                                                          '    @echo 'Makefile for a pelican Web site                           '    @echo '                                                          '    @echo 'Usage:                                                    '    @echo '    make help          print help information             '    @echo '    make all           (re)generate the web site          '    @echo '    make html          (re)generate the web site          '    @echo '    make clean         remove the generated files         '    @echo '    make cptogithub    copy output files to GITHUBDIR     '    @echo '    make regenerate    regenerate files upon modification '    @echo '    make serve         serve site at http://localhost:8000'    @echo '    make devserver     start/restart develop_server.sh    '    @echo '    make stopserver    stop local server                  '    @echo '    make publish       generate using production settings '    @echo '                                                          'all: htmlhtml: clean $(OUTPUTDIR)/index.html cptogithubclean:    @echo -n 'Cleaning............................'    @rm -fr $(OUTPUTDIR)    @mkdir $(OUTPUTDIR)    @echo 'Done'$(OUTPUTDIR)/%.html:    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)cptogithub:    @echo -n 'Copying.............................'    @cp -fR $(OUTPUTDIR)/* $(GITHUBDIR)    @echo 'Done'regenerate: clean    $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)serve:    cd $(OUTPUTDIR) && $(PY) -m pelican.serverdevserver:    $(BASEDIR)/develop_server.sh restartstopserver:    kill -9 `cat pelican.pid`    kill -9 `cat srv.pid`    @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'publish:    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS).PHONY: help all html clean cptogithub regenerate serve devserver stopserver publish

创建 GitHub Pages

GitHub Pages分两种,一种是项目页面,可创建多个;另一种是用户页面,每个用户ID只能创建一个。两种都可以用来托管Pelican博客,这里以用户页面为例。

点击这里,新建一个Repository,Repository名字可以是 xxx.github.io 或者 xxx.github.com,其中 xxx 是您的用户ID。

创建成功以后,便可以把生成的页面push到github。

cd outputgit initgit add .git commit -m "first commit"git remote add origin https://github.com/xxx/xxx.github.io.gitgit push -u origin master

现在可以通过 xxx.github.io 或者 xxx.github.com 来访问您的博客了。

域名绑定

在repo的根目录下面,新建一个名为CNAME的文本文件,里面写入你要绑定的域名,比如顶级域名 example.com 或者二级域名 xxx.example.com。

如果绑定的是顶级域名,则DNS要新建一条A记录,指向 204.232.175.78。

如果绑定的是二级域名,则DNS要新建一条CNAME记录,指向 xxx.github.io 或者 xxx.github.com 。

以我的为例:

CNAME文件

www.dongxf.com

DNSPod上设置

在浏览器地址栏中输入以下链接,都将跳转指向 http://www.dongxf.com/

http://dongxf.com/http://www.dongxf.com/http://blog.dongxf.com/http://dongdxf.github.io/http://dongdxf.github.com/未尽事宜

其他内容请参考 Pelican官方文档 。我正在翻译这个文档,才刚开始,进展缓慢。请点击 Pelican文档中文版 访问,欢迎提出宝贵意见和建议。

用 Pelican 和 GitHub Pages 搭建免费的个人博客

相关文章:

你感兴趣的文章:

标签云: