GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置
前言
此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客、poem_of_sunshine和frantic1048,他们写得都很好,内容流程完善,但在具体实施过程中小白还是会遇到很多问题,因此本文结合现有的教程,再进一步指出整个操作过程中所可能遇到的问题,也为自己留个纪念。
本文架构
本文将从以下几个方面进行描述:
一、安装环境
1.1 Windows安装环境
本文基于Windows7 32位操作系统
1.2 安装软件系列
在整个安装配置过程中,所需要的软件清单如下所示,点击相应软件可直接从网站下载。
1.3 安装步骤
1.3.1 Python安装
进官网下载python2.7 Windows安装版本,我用的是python2.7.6,msi类型,直接点击安装文件进行安装,安装路径自己选,安装好之后,将安装路径加入到系统环境变量PATH中,例如我安装的路径如下:
C:\Program Files\Python27\
1.3.2 setuptools安装
安装此插件的主要目的当然就是为了大名鼎鼎的easy_install了撒,它与pip齐名,呆会也要装起。在我用python setup.py install
过程中,一开始出现了编码错误问题,python的默认编码为ascii,有网上资料说改Python的默认编码为utf-8就可以,即在出现编码错误的文件中执行如下语句:
import sys
reload(sys)
sys.setdefaultencoding("utf8")
但这方法在我的系统中无效,最后解决方法是下载.exe类型的setuptools进行安装,下载地址如上软件清单链接,此过程中安装很顺利。安装好后在python安装目录下的Scripts文件夹会有一些关于easy_install的文件,所以要将此路径加到系统环境变量PATH,我的路径如下:
{python install path}/scripts/
1.3.3 Pip安装
pip我是直接用easy_install安装的,安装命令: easy_install pip
。安装好之后也会在Scripts文件夹生成一些Pip的可执行文件。
1.3.4 Git Bash安装
Git 客户端的安装,直接选择默认安装就行了,Git版本不能太低。
Pelican是用PIP安装的,一开始安装时也出现一些错误,就是PIP默认使用国外镜像,在获取安装源过程中会出现握手超时现象,即镜像不稳定,后来查相关资料找到国内清华大学的镜像安装源,其网址如下:
http://e.pypi.python.org/simple/
在Pip安装时指定此路径即可,速度搜搜的,很爽很稳定,指定格式如下:
pip install pelican -i http://e.pypi.python.org/simple/
安装其它相关python包时也可以这样安装,速度有保证。
1.3.5 Markdownpad2安装
此软件是Window下比较好的Markdown编辑器,不过是收费的,为了满足大家的使用需求,对于我等穷屌丝只能找些破解软件用用,所以在网上找了相关的破解文件,请点击此下载。破解方法已经在下载的文件包中有所说明,这里也提一下,分两步:
首先,将user.config放在如下格式路径中:
%LOCALAPPDATA%\MarkdownPad2\MarkdownPad2.exe_Url_bakzl5xvna20knbzwksj2a0nyzlicvaa\2.3.2.34663\
e.g: c:\users\{username}\AppData\Local\MarkdownPad2.exe_Url_2o2l2qlnbxt2ueyxs3lr3txdmzazbghc\2.3.2.34664\
其次,运行下Patch.exe注册机程序,Patch下安装主目录中的Markdownpad2程序即可。注:运行此patch之前务必不要先启动Markdownpad2程序
最后,启动Markdownpad2即可享受专业版的服务了。
1.3.6 Make 安装
下载完Make后,直接放到一个文件夹,将此路径添加到系统环境变量PATH中,重启或注销电脑后就可以进行make操作了
二、Pelican配置
配置Pelican,首先需要新建一个BLOG目录,然后执行pelican-quickstart
,具体步骤如下:
mkdir blog
cd blog
pelican-quickstart
在执行完pelican-quickstart
后,在blog目录会产生如下目录结构的文件:
blog/
|--content #存储所写的blog文件目录,
| └──(blog pages) #博客文件,如*.md后缀的文件
|--output #执行make publish之后,会将博客文件转换成相应的html文件及相应的存储目录
| └──.git #执行git init之后,产生的远程仓库目录
| └──author #作者目录,存放pelicanconf.py中指定的Author文件
| └──category #分类目录,默认目录文件为misc,在编辑器中指定
| └──feeds #目录,pelicanconf.py中FEED_RSS指定的XML文件
| └──pages #目录,pelicanconf.py中ARTICLE_URL指定格式分类文件
| └──tag #目录,存放编辑器开头所指定的Tag
| └──theme #目录,存放博客模板文件
| └──archives.html,authors.html,categories.html,index.html, tags.html
|——pelican-plugins #目录,pelican插件
|——develop_server.sh #pelican简易web服务器操作文件
|——fabfile.py # 与make类似,可用fab publish, fab server命令
|——Makefile #make 命令文件
|——pelicanconf.py #主要的pelican配置文件
|——publishconf.py #发布配置文件,可有可无
2.1 Git远程仓库配置
要将blog部署到git上,必须在本地建立一个git仓库,同时必须确保在github server端有远程仓库,名字一般为username.github.io
。本地操作命令如下:
cd output
git init #产生一个.git文件夹
git remote add origin https://github.com/username.github.io.git#将远程仓库配置到本地
2.2 Pelican常规配置
对于Pelican常规配置,主要配置选项如下,具体说明可参考getpelican网站的命令说明。
Author=u""
SITENAME=u""
SITEURL=u""
GITHUB_URL=u""
ARCHIVES_URL=u""
ARTICLE_URL=u""
ARTICLE_SAVE_AS=u"" DEFAULT_LANG=u"zh"#默认语言设置
DATE_FORMAT={"zh":("zh_CN","%Y-%m-%d,%a"),}#日期格式设置,可按自己喜好设定
DEFAULT_PAGINATION=5 #默认的分页数量
TIME_ZONE = u"Asia/Shanghai"#时区设置
2.3 Pelican进阶配置
一些进阶设置可以帮助更好的管理blog,比如用到Google的Analytical,第三方的Disqus评论系统,还有Feed、插件、Blogroll及Social设置,如果还想要导航菜单项,还可设置MENUITEMS
等,下面一一介绍:
2.3.1 Feed设置
Feed的设置方便博客的订阅,在pelicanconf.py中需添加如下命令:
FEED_RSS = u"feeds/all.rss.xml"
CATEGORY_FEED_RSS=u"feeds/%s.rss.xml"#为分类添加Feed
2.3.2 Plugin设置
可以根据需要添加相应的插件,插件可从github克隆,克隆命令如下:
git clone git://github.com/getpelican/pelican-plugins.git
比如要设置Sitemap插件,然后在pelicanconf.py中设置如下:
PLUGIN_PATH=u"pelican-plugins"
PLUGINS = ["sitemap"]
SITEMAP = {
"format":"xml",
"priorities":{
"articles":0.7,
"indexes":0.5,
"pages":0.3,
},
"changefreqs":{
"articles":"monthly",
"indexes":"daily",
"pages":"monthly",
}
}
2.3.3 Theme设置
git clone https://github.com/getpelican/pelican-themes.git
cd pelican-themes
pelican-themes -i bootstrap2 #可换成你自己的theme
2.3.4 Analytical设置
需要到Google的Analytical申请一个账号,记录下追踪ID,然后在pelicanconf.py中添加如下命令:
GOOGLE_ANALYTICS = u"UA-********-*" #ID以UA开头
2.3.5 Disqus
第三方评论系统有很多,这里选用很流行的Disqus作为第三方评论系统,同样需要到Disqus官网申请账号,然后填写两处:
Site name: {your git account name}.github.io
Admin URL: {Shortname}.disqus.com
记下Shortname,然后在pelicanconf.py中添加如下命令行:
DISQUS_SITENAME = u"{Shortname}" #填入你的Shortname
2.3.6 独立域名设置
如果你有独立域名,则可用自己的域名去访问github博客,在godaddy上可用支付宝购买,同时我们用dnspod进行动态域名解析,步骤如下:
步骤1:修改godaddy中的NameServers的两个地址为dnspod的DNS地址:
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net
步骤2:在Dnspod中添加一条A记录,指向github URL
207.97.227.245
步骤3:在Pelican主目录,即上面创建的blog/output目录,添加CNAME文件,在文件中添加你的独立域名
2.3.7 Menu Item设置
在你的博客中,可设置相应的菜单项,菜单项是通过MENUITEMS设置的,具体如下所示:
MENUITEMS = (("ITEM1","http://github.com"),
("ITEM2",URL),
......)
2.3.8 BlogRoll和Social设置
设置一些Blog链接,通过设置LINKS
实现,具体如下:
LINKS = (("Github", "https://github.com"),
("Cnblogs", URL),)
SOCIAL = (("博客园", "http://www.cnblogs.com"),
("Github','http://github.com"),)
三、Markdown博客编写
利用Markdownpad编辑器可方便进行Markdown格式的博客编写,编写格式如下所示:
Date: 2013-11-27
Title: pelican install
Tags: pelican
Category: Pelican
Slug: pelican-install
【blog正文内容】
在编好之后,执行如下命令:
make publish # 将.md发布到output目录
make server # 在本机查看预览博客,localhost:8000
如果要一次性部署到github,可以配置Makefile文件中的github,要修改两处,一处是将$(PUBLISHDIR)
替换成$(CONFFILE)
,另一处增加一些git命令,具体如下所示:
publish:
$(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
github: publish
cd $(OUTPUTDIR) && git add . ;
cd $(OUTPUTDIR) && git pull origin master;
cd $(OUTPUTDIR) && git commit -m 'commit';
cd $(OUTPUTDIR) && git push origin master
最后,只要进行Makefile
的同级目录,执行make github
即可完成一次性部署。注:在此过程中,可能要输入github username 和 password,要避免重复输入,请查看我的另一篇博客。
四、安装配置出错问题集绵
在安装过程中,出现一些错误,在此统一写出来,以留个纪念
4.1 Setuptools问题
此问题在上述有所提到,就是用python setup.py install
安装时提示编码出错,最后重新下载.exe文件安装解决此问题,编码本身暂时还未找到有效解决方法。
4.2 Pelican握手超时问题
此问题上述也有所提及,就是国外镜像不稳定导致,换成清华镜像后就好了
4.3 Git pull & push问题
在Git pull和Git push过程中出现如下图所示问题:
即以https进行git操作时,会出现libcurl库不支持https的错误,此错误主要是由于现有libcurl库不支持ssl所致,解决方法是下载支持ssl的libcurl,然后将相应的.dll文件拷贝到c:\windows\system32中即可。
4.4 Makefile问题
此问题主要是由于自己粗心大意造成,但也贴出来以免大家也犯同样的错误,其实也很简单,就是忘记将publish
项的$(PUBLISHDIR)替换成$(CONFFILE)了,后果就是.git文件夹被破坏。
4.5 Code block 红框问题
在提交blog时,markdown语法中的code块对中文出现红框问题,主要是因为因为Pelican是使用pygment处理代码高亮的,而pygment的高亮颜色定义就在当前使用的主题目录中的pygment.css这个文件里,要修改代码高亮的配色就要通过修改这个文件来实现。现在打开它,可以看到里面是对代码的各种类型的内容的风格定义,其中有一行如下:
.highlight .err { border: 1px solid #FF0000 } / Error /
根据内容可以看出这是规定书写错误的代码的文本样式,可是平时代码中有的字符也会被识别成错误的代码,所以就造成了代码块中时不时出现恼人的红框的问题,原因清楚了,现在要解决它就很容易了,直接删掉那行中的border样式就可以了。如果你跟我一样完全不需要给这类代码规定特殊样式的话,直接删掉那行即可。
五、总结
写了几个小时,终于把这篇博文写完了,主要是对markdown语法还不了解,边学边写,好得完成了,还有些部分是对pelican主页进行布置,这块自己也没有很多经验,以后会逐步深入,希望此篇blog能对初学者有所帮助。
备注:搭建好的博客如链接所示: www.zendwind.com