1. 程式人生 > >Pelican + Github 搭建自己的靜態部落格

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模式

  1. User/Organization Pages 個人或公司站點

    • 使用自己的使用者名稱,每個使用者名稱下面只能建立一個;
    • 資源命名必須符合這樣的規則username/username.github.com;
    • 主幹上內容被用來構建和釋出頁面
  2. 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,哈哈見證奇蹟的時刻到了!

此篇文章主要介紹搭建原始的部落格網站,其中沒有設計到部落格主題的定製,配置檔案的優化修改,評論,等等需要美化的東西。