在GitHub Pages上使用Pelican搭建博客的教程

 更新时间:2015年04月25日 16:29:18   作者:Xiaofeng Dong  
这篇文章主要介绍了在GitHub Pages上使用Pelican搭建博客的教程,Pelican是一个使用Python实现的开源博客系统,需要的朋友可以参考下

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文件更改配置。

以下是生成的目录结构:

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

撰写文章

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

复制代码 代码如下:
Title: My super title
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上设置

2015425162445199.png (770×146)

在浏览器地址栏中输入以下链接,都将跳转指向 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文档中文版 访问,欢迎提出宝贵意见和建议。

相关文章

  • Python实现全自动安装第三方库的方法

    Python实现全自动安装第三方库的方法

    这篇文章主要介绍了Python实现全自动安装第三方库的方法,一说Python要安装哪个模块,我们第一反应,win+r输入cmd,pip instll安装,但是如果换电脑了,Python第三方库那么多,难道要一次一次的敲击pip install,本文就介绍一个简单的方法解放双手,需要的朋友可以参考下
    2023-07-07
  • 使用Django的JsonResponse返回数据的实现

    使用Django的JsonResponse返回数据的实现

    这篇文章主要介绍了使用Django的JsonResponse返回数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • python深度学习tensorflow实例数据下载与读取

    python深度学习tensorflow实例数据下载与读取

    这篇文章主要为大家介绍了python深度学习tensorflow实例数据下载与读取示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Django中如何使用celery异步发送短信验证码详解

    Django中如何使用celery异步发送短信验证码详解

    Celery是Python开发的分布式任务调度模块,这篇文章主要给大家介绍了关于Django中如何使用celery异步发送短信验证码的相关资料,主要内容包括基础介绍、工作原理、完整代码等方面,需要的朋友可以参考下
    2021-09-09
  • Python读写Excel文件方法介绍

    Python读写Excel文件方法介绍

    这篇文章主要介绍了Python读写Excel文件方法介绍,本文讲解了xlrd、xlwt、xlutils等类库的使用,需要的朋友可以参考下
    2014-11-11
  • python中的协程深入理解

    python中的协程深入理解

    这篇文章主要给大家介绍了关于python中协程的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Python如何统计函数调用的耗时

    Python如何统计函数调用的耗时

    这篇文章主要为大家详细介绍了如何使用Python实现统计函数调用的耗时,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Python技巧之四种多线程应用分享

    Python技巧之四种多线程应用分享

    这篇文章主要介绍了Python中多线程的所有方式,包括使用threading模块、使用concurrent.futures模块、使用multiprocessing模块以及使用asyncio模块,希望对大家有所帮助
    2023-05-05
  • Python连接Redis的基本配置方法

    Python连接Redis的基本配置方法

    本文分享了Linux系统下Python连接Redis的基本配置方法,Python连接Redis需要Redis的Python包支持
    2018-09-09
  • numpy中的ndarray方法和属性详解

    numpy中的ndarray方法和属性详解

    这篇文章主要介绍了numpy中的ndarray方法和属性详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05

最新评论