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