Title: 用Pelican+Github搭建个人博客网站
Date: 2017-06-4 19:13
Category: 技术博客
Modified: 2018-10-11 19:03
Tags: 博客网站
Slug: pelican-build-site
Authors: Victor Lv
Summary: 用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地址为刚才建立的仓库的地址,获取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: ReviewFollowing is a review of my favorite mechanical keyboard.
cd回退一级,执行pelican content
,会看到output文件夹里面有一堆html和css的文件(夹),这就是根据你刚才的index.md生成的静态文件。
使用git上传静态文件
把刚才生成的output文件夹里面的所有内容通过git上传到你刚才的仓库里去,注意执行git push之前应确保你已经git pull把云端的仓库同步到本地(因为刚才创建了CNAME文件更新了云端仓库)。上传完成之后,访问下你的域名吧!大功告成。
一些注意事项
关于其他的教程,下面参考文章中的第一篇已经讲的非常详细,这里补充一些注意事项:
- THEME的值如果是Windows下的路径,需要用双斜杠,例如:
THEME = 'D:\\mysite\\pelican_site\\pelican-themes-master\\tuxlite_tbs'
- 如果希望修改网页布局,直接修改相应主题的静态文件(html、css)(模板文件)即可,例如添加评论系统在:article.html,去在这个html最后面添加你要插入的评论系统代码,例如畅言。
- Windows下使用pelican发博文,推荐使用git bash命令行。如果是用cygwin,可能会在调用git命令时出现类似于
bash: /dev/tty: No such device or address error: failed to execute prompt sc
这样的报错。 - 善用强大的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.pyDEBUG ?= 0
ifeq ($(DEBUG), 1)PELICANOPTS += -D
endifRELATIVE ?= 0
ifeq ($(RELATIVE), 1)PELICANOPTS += --relative-urls
endifhtml:$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)clean:[ ! -d $(OUTPUTDIR) ] || rm -rf $(OUTPUTDIR)regenerate:make clean ; make html ; cp -r $(OUTPUTDIR)/* $(GITHUBDIR) ;serve:
ifdef PORTcd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT)
elsecd $(OUTPUTDIR) && $(PY) -m pelican.server
endifpublish:$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)github: publishcd $(GITHUBDIR) ; git add . ; git commit -m 'update blog' ; git push origin masterdoall: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文件你可以根据自己的习惯组合成强大的自动化命令执行工具。
*注:Windows下要使用make
命令需要先安装 make工具,我安装的是 MinGW 工具:先安装MinGW
,然后把它安装目录的bin路径配到环境变量,然后把bin目录下的 mingw32-make.exe
改个名字叫make.exe
,就可以在命令行使用make了。
效果图参考,:
具体 Pelican 框架的使用参见 Pelican 官方文档:Pelican docs
参考文章:
用pelican搞一个自己的blog
利用Github建立你的个人网站
Pelican docs
用pelican在github上创建自己的博客!