用pelican搭建完美博客


前面有文章介紹本站采用了Python編寫的Pelican靜態生成博客系統, 之所以沒有使用當前很火的Jekyll, 是因為它是Ruby編寫, 而我又對Ruby沒有啥興趣, 所以還是選擇了使用了我熟悉的Python編寫的這套系統, 我用了一段時間,打算將使用經驗分享出來

介紹

Pelican是一套開源的使用Python編寫的博客靜態生成, 可以添加文章和和創建頁面, 可以使用MarkDown reStructuredText 和 AsiiDoc 的格式來抒寫, 同時使用 Disqus評論系統, 支持 RSSAtom輸出, 插件, 主題, 代碼高亮等功能, 采用Jajin2模板引擎, 可以很容易的更改模板

安裝

可以從github克隆最新的代碼安裝, 並且建議在virtualenv下使用:

建立 virtualenv

virtualenv pelican      # 創建
cd pelican
sh bin/activate            # 激活虛擬環境

上面建立了一個Python的虛擬環境(這個命令不是內置可以使用 easy_install virtualenv 安裝)

從github克隆最新代碼安裝Pelican

git clone git://github.com/getpelican/pelican.git            # 代碼
cd pelican
python setup.py install

上面步驟完成后就安裝了Pelican

開始一個博客

mkdir /path/to/your/blog
cd /path/to/your/blog
pelican-quickstart

在回答一系列問題過后你的博客就建成的, 主要生成下列文件:

.
|-- content                # 所有文章放於此目錄
|-- develop_server.sh      # 用於開啟測試服務器
|-- Makefile               # 方便管理博客的Makefile
|-- output                 # 靜態生成文件
|-- pelicanconf.py         # 配置文件
|-- publishconf.py         # 配置文件

寫一篇文章

在 content 目錄新建一個 test.md文件, 填入一下內容:

Title: 文章標題
Date: 2013-04-18
Category: 文章類別
Tag: 標簽1, 標簽2

這里是內容

然后執行:

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支持評論

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

http://ioreq.com

如果還有其他問題請參考官方手冊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM