在GitHub Pages上使用Pelican搭建博客的教程
pelican 介绍
首先看看 pelican 的一些主要特性:
- python实现,开放源码
- 输出静态页面,方便托管
- 支持主题,采用jajin2模板引擎
- 支持代码语法高亮
- 支持restructuredtext、markdown、asciidoc格式
- 支持disqus评论
- 支持atom和rss输出
这些特性都是大爱,完全满足我对博客系统的基本需求,再配合免费无限制的github pages,一切近乎完美了。
安装 pelican
开始前请自行安装python环境,支持2.7.x和3.3+,为方便,再顺手装上distribute、pip、virtualenv。(注:我的操作系统是:windows 7)
创建pelican虚拟环境
virtualenv pelicanenv --distribute pelicanenv\scripts\activate
安装 pelican
pip install pelican
如果您使用markdown来写文章的话,还需要安装markdown库
pip install markdown
创建 blog
创建一个 blog 目录
mkdir myblog cd myblog
快速创建 blog
pelican-quickstart
根据提示一步步输入相应的配置项,不知道如何设置的接受默认即可,后续可以通过编辑pelicanconf.py文件更改配置。
以下是生成的目录结构:
├── content # 存放输入的源文件
│ └── (pages) # 存放手工创建的静态页面
├── output # 生成的输出文件
├── develop_server.sh # 方便开启测试服务器
├── makefile # 方便管理博客的makefile
├── pelicanconf.py # 主配置文件
└── publishconf.py # 发布时使用的配置文件
撰写文章
在 content 目录下用 markdown 语法来写一篇文章
date: 2010-12-03 10:20
category: python
tags: pelican, publishing
slug: my-super-post
author: alexis metaireau
summary: short version for index and feeds
this is the content of my super blog post.
生成页面
make html
现在就可以在output目录查看生成的html文件了。
由于我的操作系统是windows,我对makefile做了一些修改。
py=python pelican=pelican pelicanopts= basedir=$(curdir) inputdir=$(basedir)/content outputdir=$(basedir)/output githubdir=$(basedir)/togithub conffile=$(basedir)/pelicanconf.py publishconf=$(basedir)/publishconf.py help: @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: html html: clean $(outputdir)/index.html cptogithub clean: @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.server devserver: $(basedir)/develop_server.sh restart stopserver: 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 output git init git add . git commit -m "first commit" git remote add origin https://github.com/xxx/xxx.github.io.git git 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文档中文版 访问,欢迎提出宝贵意见和建议。
上一篇: Google 处理采集数据的一些分析
下一篇: 网页游戏的推广的策略与效果分析
推荐阅读
-
在GitHub Pages上使用Pelican搭建博客的教程
-
使用HEXO+GitHub搭建自己博客的步骤教程
-
在CentOS系统上从零开始搭建WordPress博客的全流程记录,centoswordpress_PHP教程
-
一步步在 github pages 上用 jekyll 搭建属于自己的博客
-
在GitHub Pages上使用Pelican搭建博客的教程
-
在GitHub Pages上使用Pelican搭建博客的教程
-
在GitHub Pages上使用Pelican搭建博客的教程
-
超级详细的 Hexo + GitHub Pages 搭建博客实例教程
-
在Windows10上使用GitHub和Hexo搭建自己的博客网站
-
在github上搭建自己的博客