Pelican + Github 搭建自己的靜態部落格
//想了解更多請訪問我的新網站:曉的部落格zhangxiaolong.org
之前在Github上使用基本的jekyll模板搭建過一個部落格,但是那時候前端技術的水平有限,搭出來的部落格很不好看,一些基本的功能實現不出來,
之後又轉向了Octopress模板,它是R系語言的編寫的jekyll模板,又上手操作開發了一段時間,已經基本做出來了,但是奈何主題模板博主覺得都不好看,所以自己操作來做,發現Ruby語言不好下手啊,折騰了好久沒有修改成博主喜歡的樣式。
最後,同學推薦有一個使用Python語言寫的Pelican靜態網站生成器,眼前一亮,這個不錯啊,python正在學習的過程中,下定決心就這個了。所以就有了下面的這番折騰!
Pelican
Pelican是一個用Python語言編寫的靜態網站生成器,支援使用restructuredText和Markdown寫文章,配置靈活,擴充套件性強。目前Pelican已釋出3.2.2版本,有許多優秀的主題和外掛可供使用。
Pelican Static Site Generator, Powered>什麼是github page? <http://pages.github.com/>
就是:The Automatic Page Generator can be used on GitHub to quickly create a web page for a project, user or organization
兩種pages模式
-
User/Organization Pages 個人或公司站點
- 使用自己的使用者名稱,每個使用者名稱下面只能建立一個;
- 資源命名必須符合這樣的規則username/username.github.com;
- 主幹上內容被用來構建和釋出頁面
-
Project Pages 專案站點
- gh-pages分支用於構建和釋出;
- 如果user/org pages使用了獨立域名,那麼託管在賬戶下的所有project pages將使用相同的域名進行重定向,除非project pages使用了自己的獨立域名;
- 如果沒有使用獨立域名,project pages將通過子路徑的形式提供服務username.github.com/projectname;
- 自定義404頁面只能在獨立域名下使用,否則會使用User Pages 404;
我是使用的第一種方式,直接利用master主幹來構建和釋出部落格頁面。如何構建請移步這裡http://pages.github.com/。哈哈,偷懶下,就不翻譯了,順著做就好!這裡比如已經建好了以下的工程專案:example.github.com
利用Pelican快速構建自己的原始部落格
首先是安裝pelican,現在pelican是3.3.0版本的,官方文件說明python版本得是2.7以上的,其中2.7支援的比較好!博主剛開始用的是ubuntu預設的版本2.6.x,然後開始執行發現出錯了,一看說明才明白的!
怎麼安裝呢,沒有什麼說明書是比官方材料更詳細更好的!
安裝步驟是: 利用pip安裝來安裝pelican,pip據說被另外一個取代了,但是還可以用的哦,或者利用 easy_install pelican 來安裝,在或者下載pelican的github報道本地安裝
$ pip install pelican
或者,easy_install
$ easy_install pelican
在或者,原始碼
$ cd path-to-Pelican-source $ python setup.py install
注意:這裡使用virtualenv工具更加方便,virtualenv,virtualenv is a tool to create isolated Python environments.
$ virtualenv ~/virtualenvs/pelican $ cd ~/virtualenvs/pelican $ . bin/activate
安裝完pelican之後,彆著急開始,先安裝一個Markdown吧,我習慣使用markdown,
$ pip install Markdown
OK,到這裡,pelican的環境部分我們已經配置完了,不過博主好奇剛才pelican的安裝些什麼了?也就是說pelican的依賴項:
- feedgenerator, to generate the Atom feeds
- jinja2, for templating support
- pygments, for syntax highlighting
- docutils, for supporting reStructuredText as an input format
- pytz, for timezone definitions
- blinker, an object-to-object and broadcast signaling system
- unidecode, for ASCII transliterations of Unicode text
- six, for Python 2 and 3 compatibility utilities
- MarkupSafe, for a markup safe string implementation
- markdown, for supporting Markdown as an input format
好傢伙,這麼多啊,都看看 發現都不錯!之後用到了在展開慢慢來說。
現在,讓我們看看pelican是多麼神奇吧,
$ pelican-quickstart
執行命令之後,在當前目錄下有以下的檔案
yourproject/ ├── content │ └── (pages) ├── output ├── develop_server.sh ├── fabfile.py ├── Makefile ├── pelicanconf.py # Main settings file └── publishconf.py # Settings to use when ready to publish
我來說說都是些什麼吧,
content這裡是放置你的博文的,例如我的hello_python.md文章;pages是讓永和可以自己定製些頁面,比如aboutme.md等等頁面;
output這個目錄下放置的就是一會利用pelican生成的靜態部落格內容,當然是html的;
pelicanconf.py,是部落格的配置檔案,後面慢慢講;
Makefile,make命令的配置檔案,如果你懂linux這個就so easy!不過不懂也沒事。
develop_server.sh 本地服務的指令碼,用到在講
大致看完這個之後,我們可以先寫一篇自己的文章瞅瞅啊,文章模板如下:
Title: My super title Date: 2010-12-03 10:20 Category: Python Tags: pelican, publishing Slug: my-super-post Author: Alexis Metaireau Summary: Short version for index and feeds This is the content of my super blog post.
這裡有個不好的地方,就是每次新建文章得自己來寫tItle了什麼的,待之後自己寫個指令碼來解決這個問題(留待解決的問題1)
寫完儲存後,要有以下的幾個命令來生成部落格內容啦
利用下面的命令來生成你的部落格site:
$ make html
我比較喜歡下面的這個命令,它是實時生成你的站點,就是說你修改你的部落格什麼的它會實時的生成!很棒吧。
$ make regenerate
ok,生成之後,我們要看下顯示的效果,用下面的命令吧
$ make serve
下面這個我比較喜歡,理由同上面的那個regerate,哈哈
$ make devserver
停止伺服器則是下面的命令:
$ ./develop_server.sh>
<html> <head> <title>My>
是不是很方便,省去了自己寫html的很多麻煩,專注於寫作!
在Github上顯示自己的部落格
接下來就是上傳部落格的時候了,我們要將生成的站點內容上傳到剛才建好的example.github.com的工程master主幹中,
進入到output目錄下,
git init git remote origin https://github.com/username/username.github.com.git
生成 .git的目錄,此時我們上傳到github上面,
git pull git add . git commit -m "update" git push origin master
此時可能需要輸入賬戶和密碼,稍後說明如何不需要每次push都輸入賬戶和密碼。
上傳之後,我們開啟github的這個專案,點選右側的setting項,在下面可以看到github正在生成你的站點,稍等10多分鐘,在瀏覽器中輸入example.github.com,哈哈見證奇蹟的時刻到了!
此篇文章主要介紹搭建原始的部落格網站,其中沒有設計到部落格主題的定製,配置檔案的優化修改,評論,等等需要美化的東西。