用Pelican+Github搭建个人博客网站

创建仓库

在github上创建一个username.github.io的仓库(username是你的github用户名)

创建index.html

在新创建的仓库中创建一个index.html文件,随便写一句话例如Hello world!上去,然后通过访问username.github.io这个url即可看到index的内容。到这步,你就相当于可以用github pages来作为自己的个人博客了,但此时url用的还是github.io,如果需要绑定自己的域名,则需要进行第三步。

绑定个人域名

修改域名解析的IP地址为刚才建立的仓库的地址,获取方法是ping一下url:
ping username.github.io
这步完成后在仓库中建立一个叫做CNAME的文件,复制你的域名进去,例如我的是langlv.me
至此,你就可以通过你的域名来访问该仓库的内容了,试一试吧!

安装Pelican

可参考:
Pelican QuickStart
Pelican搭建静态博客

使用Pelican发布文章

安装完Pelican之后,创建一个Project:

mkdir -p ~/projects/yoursite
cd ~/projects/yoursite
pelican-quickstart

执行完pelican-quickstart之后会看到在yoursite文件夹自动生成了一堆东西,cd到content目录,创建一个叫index.md的markdown文件,写入内容如下:

Title: My First Review
Date: 2010-12-03 10:20
Category: Review

Following is a review of my favorite mechanical keyboard.

cd回退一级,执行pelican content,会看到output文件夹里面有一堆html和css的文件(夹),这就是根据你刚才的index.md生成的静态文件。

使用git上传静态文件

把刚才生成的output文件夹里面的所有内容通过git上传到你刚才的仓库里去,注意执行git push之前应确保你已经git pull把云端的仓库同步到本地(因为刚才创建了CNAME文件更新了云端仓库)。上传完成之后,访问下你的域名吧!大功告成。

一些注意事项

关于其他的教程,下面参考文章中的第一篇已经讲的非常详细,这里补充一些注意事项:

  1. THEME的值如果是Windows下的路径,需要用双斜杠,例如:THEME = 'D:\\mysite\\pelican_site\\pelican-themes-master\\tuxlite_tbs'
  2. 如果希望修改网页布局,直接修改相应主题的静态文件(html、css)(模板文件)即可,例如添加评论系统在:article.html,去在这个html最后面添加你要插入的评论系统代码,例如畅言。
  3. Windows下使用pelican发博文,推荐使用git bash命令行。如果是用cygwin,可能会在调用git命令时出现类似于bash: /dev/tty: No such device or address error: failed to execute prompt sc这样的报错。
  4. 善用强大的Makefile自动化脚本文件,在/yoursite目录下有一个Makefile文件,这个是用来快速执行make命令用的(这里假设你已经配好环境能够运行make命令),里面你可以自定义自己的make命令,比如我的Makefile文件被我修改成如下:
PY?=python
PELICAN?=pelican
PELICANOPTS=

BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
GITHUBDIR=$(BASEDIR)/Victor-Lv.github.io
CONFFILE=$(BASEDIR)/pelicanconf.py
PUBLISHCONF=$(BASEDIR)/publishconf.py

DEBUG ?= 0
ifeq ($(DEBUG), 1)
    PELICANOPTS += -D
endif

RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
    PELICANOPTS += --relative-urls
endif

html:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

clean:
    [ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)

regenerate:
    make clean ; make html ; cp -r $(OUTPUTDIR)/* $(GITHUBDIR) ;
    #$(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

serve:
ifdef PORT
    cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
else
    cd $(OUTPUTDIR) && $(PY) -m pelican.server
endif

publish:
    $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)

github: publish
    cd $(GITHUBDIR) ; git add . ;  git commit -m 'update blog' ; git push origin master

doall:
    make regenerate ; make github

Makefile文件使用的命令类似于shell,有了这个Makefile文件,我在/yoursite目录下执行make clean就可以删除output目录,然后make html命令会帮我生成静态文件,相当于pelican content命令的作用。然后利用这两个命令加上一句shell命令,我组合成了一个make regenerate命令,帮我执行make clean;make html然后帮我copy output文件夹里面的所有内容到我的github目录下。同理,make doall命令是我定义的帮我make regenerate之后顺便GitHub发布的功能。利用这个Makefile文件你可以根据自己的习惯组合成强大的自动化命令执行工具。

几个make命令可以组合成单个多功能的make命令,

参考文章:
用pelican搞一个自己的blog
利用Github建立你的个人网站
Pelican docs
用pelican在github上创建自己的博客!

标签: pelican, GitHub

添加新评论