GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

GITHUB个人博客搭建-Pelican 在Windows环境下的安装及配置

前言

此篇博客主要为Pelican在Windows平台下的配置安装所写,在此过程中主要参考资料烟雨林博客poem_of_sunshinefrantic1048,他们写得都很好,内容流程完善,但在具体实施过程中小白还是会遇到很多问题,因此本文结合现有的教程,再进一步指出整个操作过程中所可能遇到的问题,也为自己留个纪念。

本文架构

本文将从以下几个方面进行描述:

一、安装环境

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.pyFEED_RSS指定的XML文件
|   └──pages #目录,pelicanconf.pyARTICLE_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-********-*" #IDUA开头

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

posted @ 2013-12-06 20:44 ballwql 阅读(...) 评论(...) 编辑 收藏