在GitHub Pages上使用Pelican搭建博客的教程
Pelican 介紹
首先看看 Pelican 的一些主要特性:
- Python實(shí)現(xiàn),開放源碼
- 輸出靜態(tài)頁(yè)面,方便托管
- 支持主題,采用Jajin2模板引擎
- 支持代碼語(yǔ)法高亮
- 支持reStructuredText、Markdown、AsciiDoc格式
- 支持Disqus評(píng)論
- 支持Atom和RSS輸出
這些特性都是大愛(ài),完全滿足我對(duì)博客系統(tǒng)的基本需求,再配合免費(fèi)無(wú)限制的GitHub Pages,一切近乎完美了。
安裝 Pelican
開始前請(qǐng)自行安裝Python環(huán)境,支持2.7.X和3.3+,為方便,再順手裝上distribute、pip、virtualenv。(注:我的操作系統(tǒng)是:Windows 7)
創(chuàng)建Pelican虛擬環(huán)境
virtualenv PelicanEnv --distribute PelicanEnv\Scripts\activate
安裝 Pelican
pip install pelican
如果您使用Markdown來(lái)寫文章的話,還需要安裝Markdown庫(kù)
pip install Markdown
創(chuàng)建 Blog
創(chuàng)建一個(gè) Blog 目錄
mkdir myblog cd myblog
快速創(chuàng)建 Blog
pelican-quickstart
根據(jù)提示一步步輸入相應(yīng)的配置項(xiàng),不知道如何設(shè)置的接受默認(rèn)即可,后續(xù)可以通過(guò)編輯pelicanconf.py文件更改配置。
以下是生成的目錄結(jié)構(gòu):
├── content # 存放輸入的源文件
│ └── (pages) # 存放手工創(chuàng)建的靜態(tài)頁(yè)面
├── output # 生成的輸出文件
├── develop_server.sh # 方便開啟測(cè)試服務(wù)器
├── Makefile # 方便管理博客的Makefile
├── pelicanconf.py # 主配置文件
└── publishconf.py # 發(fā)布時(shí)使用的配置文件
撰寫文章
在 content 目錄下用 Markdown 語(yǔ)法來(lái)寫一篇文章
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.
生成頁(yè)面
make html
現(xiàn)在就可以在output目錄查看生成的html文件了。
由于我的操作系統(tǒng)是Windows,我對(duì)Makefile做了一些修改。
PY=python PELICAN=pelican PELICANOPTS= BASEDIR=$(CURDIR) INPUTDIR=$(BASEDIR)/content OUTPUTDIR=$(BASEDIR)/output GITHUBDIR=$(BASEDIR)/togithub CONFFILE=$(BASEDIR)/pelicanconf.py PUBLISHCONF=$(BASEDIR)/publishconf.py help: @echo ' ' @echo 'Makefile for a pelican Web site ' @echo ' ' @echo 'Usage: ' @echo ' make help print help information ' @echo ' make all (re)generate the web site ' @echo ' make html (re)generate the web site ' @echo ' make clean remove the generated files ' @echo ' make cptogithub copy output files to GITHUBDIR ' @echo ' make regenerate regenerate files upon modification ' @echo ' make serve serve site at http://localhost:8000' @echo ' make devserver start/restart develop_server.sh ' @echo ' make stopserver stop local server ' @echo ' make publish generate using production settings ' @echo ' ' all: html html: clean $(OUTPUTDIR)/index.html cptogithub clean: @echo -n 'Cleaning............................' @rm -fr $(OUTPUTDIR) @mkdir $(OUTPUTDIR) @echo 'Done' $(OUTPUTDIR)/%.html: $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) cptogithub: @echo -n 'Copying.............................' @cp -fR $(OUTPUTDIR)/* $(GITHUBDIR) @echo 'Done' regenerate: clean $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) serve: cd $(OUTPUTDIR) && $(PY) -m pelican.server devserver: $(BASEDIR)/develop_server.sh restart stopserver: kill -9 `cat pelican.pid` kill -9 `cat srv.pid` @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.' publish: $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) .PHONY: help all html clean cptogithub regenerate serve devserver stopserver publish
創(chuàng)建 GitHub Pages
GitHub Pages分兩種,一種是項(xiàng)目頁(yè)面,可創(chuàng)建多個(gè);另一種是用戶頁(yè)面,每個(gè)用戶ID只能創(chuàng)建一個(gè)。兩種都可以用來(lái)托管Pelican博客,這里以用戶頁(yè)面為例。
點(diǎn)擊這里,新建一個(gè)Repository,Repository名字可以是 xxx.github.io 或者 xxx.github.com,其中 xxx 是您的用戶ID。
創(chuàng)建成功以后,便可以把生成的頁(yè)面push到github。
cd output git init git add . git commit -m "first commit" git remote add origin https://github.com/xxx/xxx.github.io.git git push -u origin master
現(xiàn)在可以通過(guò) xxx.github.io 或者 xxx.github.com 來(lái)訪問(wèn)您的博客了。
域名綁定
在repo的根目錄下面,新建一個(gè)名為CNAME的文本文件,里面寫入你要綁定的域名,比如頂級(jí)域名 example.com 或者二級(jí)域名 xxx.example.com。
如果綁定的是頂級(jí)域名,則DNS要新建一條A記錄,指向 204.232.175.78。
如果綁定的是二級(jí)域名,則DNS要新建一條CNAME記錄,指向 xxx.github.io 或者 xxx.github.com 。
以我的為例:
CNAME文件
www.dongxf.com
DNSPod上設(shè)置

在瀏覽器地址欄中輸入以下鏈接,都將跳轉(zhuǎn)指向 http://www.dongxf.com/
http://dongxf.com/
http://www.dongxf.com/
http://blog.dongxf.com/
http://dongdxf.github.io/
http://dongdxf.github.com/
未盡事宜
其他內(nèi)容請(qǐng)參考 Pelican官方文檔 。我正在翻譯這個(gè)文檔,才剛開始,進(jìn)展緩慢。請(qǐng)點(diǎn)擊 Pelican文檔中文版 訪問(wèn),歡迎提出寶貴意見(jiàn)和建議。
相關(guān)文章
Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)全自動(dòng)安裝第三方庫(kù)的方法,一說(shuō)Python要安裝哪個(gè)模塊,我們第一反應(yīng),win+r輸入cmd,pip?instll安裝,但是如果換電腦了,Python第三方庫(kù)那么多,難道要一次一次的敲擊pip?install,本文就介紹一個(gè)簡(jiǎn)單的方法解放雙手,需要的朋友可以參考下2023-07-07
使用Django的JsonResponse返回?cái)?shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了使用Django的JsonResponse返回?cái)?shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
python深度學(xué)習(xí)tensorflow實(shí)例數(shù)據(jù)下載與讀取
這篇文章主要為大家介紹了python深度學(xué)習(xí)tensorflow實(shí)例數(shù)據(jù)下載與讀取示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Django中如何使用celery異步發(fā)送短信驗(yàn)證碼詳解
Celery是Python開發(fā)的分布式任務(wù)調(diào)度模塊,這篇文章主要給大家介紹了關(guān)于Django中如何使用celery異步發(fā)送短信驗(yàn)證碼的相關(guān)資料,主要內(nèi)容包括基礎(chǔ)介紹、工作原理、完整代碼等方面,需要的朋友可以參考下2021-09-09
Python如何統(tǒng)計(jì)函數(shù)調(diào)用的耗時(shí)
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)統(tǒng)計(jì)函數(shù)調(diào)用的耗時(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04

