前面有文章介紹本站採用了Python
編寫的Pelican
靜態生成博客系統, 之因此沒有使用當前很火的Jekyll
, 是由於它是Ruby
編寫, 而我又對Ruby
沒有啥興趣, 因此仍是選擇了使用了我熟悉的Python編寫的這套系統, 我用了一段時間,打算將使用經驗分享出來html
Pelican
是一套開源的使用Python編寫的博客靜態生成, 能夠添加文章和和建立頁面, 可使用MarkDown
reStructuredText
和 AsiiDoc
的格式來抒寫, 同時使用 Disqus
評論系統, 支持 RSS
和Atom
輸出, 插件, 主題, 代碼高亮等功能, 採用Jajin2
模板引擎, 能夠很容易的更改模板python
能夠從github
克隆最新的代碼安裝, 而且建議在virtualenv
下使用:linux
virtualenv pelican # 建立
cd pelican
sh bin/activate # 激活虛擬環境
上面創建了一個Python的虛擬環境(這個命令不是內置可使用 easy_install virtualenv
安裝)nginx
git clone git://github.com/getpelican/pelican.git # 代碼
cd pelican
python setup.py install
上面步驟完成後就安裝了Pelicangit
mkdir /path/to/your/blog
cd /path/to/your/blog
pelican-quickstart
在回答一系列問題事後你的博客就建成的, 主要生成下列文件:github
.
|-- content # 全部文章放於此目錄
|-- develop_server.sh # 用於開啓測試服務器
|-- Makefile # 方便管理博客的Makefile
|-- output # 靜態生成文件
|-- pelicanconf.py # 配置文件
|-- publishconf.py # 配置文件
在 content
目錄新建一個 test.md
文件, 填入一下內容:web
Title: 文章標題
Date: 2013-04-18
Category: 文章類別
Tag: 標籤1, 標籤2
這裏是內容
而後執行:apache
make html
用以生成html瀏覽器
而後執行服務器
./develop_server.sh start
開啓一個測試服務器, 這會在本地 8000 端口創建一個測試web服務器, 可使用瀏覽器打開:http://localhost:8000
來訪問這個測試服務器, 而後就能夠欣賞到你的博客了
這裏以建立 About
頁面爲例
在content
目錄建立pages
目錄
mkdir content/pages
而後建立About.md
並填入下面內容
Title: About Me
Date: 2013-04-18
About me content
執行 make html
生成html, 而後打開 http://localhost:8000
查看效果
Pelican 使用Disqus
評論, 能夠申請在Disqus上申請一個站點, 而後在pelicanconf.py
裏添加或修改DISQUS_SITENAME
項:
DISQUS_SITENAME = u"linuxzen"
執行
make html
瀏覽器打開 http://localhost:8000
查看效果
Pelican自己也提供了一些主題可供選擇, 能夠從github克隆下來
git clone git://github.com/getpelican/pelican-themes.git # 主題
而後在裏面找到想要的主題, 而後拷到博客項目當前目錄, 這裏已neat
爲例
cp -r /path/to/themes/from/github/neat .
而後在 pelicanconf.py
配置文件裏添加或修改 THEME
項爲 neat
THEME = "neat"
從新執行
make html
而後打開 http://localhost:8000
查看效果
Pelican 一開始是將插件內置的, 可是新版本 Pelican將插件隔離了出來, 因此咱們要到github上 克隆一份新的插件, 在博客目錄執行
git clone git://github.com/getpelican/pelican-plugins.git # 插件
如今咱們博客目錄就新添了一個 pelican-plugins
目錄, 咱們已配置sitemap
插件爲例, sitemap
插件能夠生成 sitemap.xml
供搜索引擎使用
在pelicanconf.py
配置文件里加上以下項:
PLUGIN_PATH = u"pelican-plugins"
PLUGINS = ["sitemap"]
## 配置sitemap 插件
SITEMAP = {
"format": "xml",
"priorities": {
"articles": 0.7,
"indexes": 0.5,
"pages": 0.3,
},
"changefreqs": {
"articles": "monthly",
"indexes": "daily",
"pages": "monthly",
}
}
而後再執行
make html
打開瀏覽器請求 http://localhost:8000/sitemap.xml
便可看到生成的 Sitemap 了
若是咱們定義靜態的文件, 該如何將它在每次生成的時候拷貝到 output 目錄呢, 咱們以robots.txt
爲例, 在咱們的 content/extra 下面咱們放了一個定義好的 robots.txt
文件, 在pelicanconf.py
更改或添加 FILES_TO_COPY
項:
FILES_TO_COPY = (
("extra/robots.txt", "robots.txt"),
)
這樣在每次生成html的時候都會把 content/extra
下的 robots.txt
拷貝到 output
目錄下
若是是一個靜目錄怎麼辦? 咱們能夠在pelicanconf.py
裏添加或修改 STATIC_PATHS
項, 好比咱們有個img
目錄用來放文章所使用的圖片, 咱們能夠在pelicanconf.py
添加
STATIC_PATHS = [u"img"]
而後執行
make html
而後 Pelican 就會將 img
目錄拷貝到 output/static/
下
上面都弄完以後你就能夠獲得一個功能健全的博客系統, 接下來就是部署到服務器, 上傳到服務器並結合nginx或者apache等web服務器部署這裏就不在詳述
參考文章:http://www.uoota.com/blog/archives/27222
若是還有其餘問題請參考官方手冊