天天看點

[git]用pelican搞一個自己的blog(已完成)

pelican

Pelican Static Site Generator, Powered by Python:Pelican是python語言寫的靜态網站生成器。因為我一直打算用github pages做一個部落格,現在已經學會用Hexo在github pages上做部落格了。但是我一想:我一個pythoner,幹嘛不用python寫的靜态網站生成器。我想應該是網上教程太少,那我今天就來搞一搞。順便記錄下來,整理出一個教程,希望一切順利!

最終效果:blog.xueweihan.com

1.首先用virtualenv建立一個env

2.使用pip安裝pelican和markdown

3.建立pelican目錄結構

檔案結構如下:

我們下面隻用到我解釋的這幾個目錄和檔案,大緻有個印象即可

4.編寫文章測試下效果

在content目錄下建立一個名為:test.md的markdown檔案,把上面的那些内容放進去,用來測試效果。

5.本地檢視效果

以上兩個指令執行完,沒有報錯的話就用浏覽器打開:127.0.0.1:8000,效果如下:

輸入:<code>ctrl + c</code> 停止服務

5.上傳到github pages 現在就差最後一步,上傳到github pages上面。 一步步的來:

首先在github上建立一個項目,<code>Repository name</code>填寫:你的github使用者名.github.io 如下圖:

然後在<code>output</code>目錄依次輸入:

最後通路:http://你的github使用者名.github.io/ 例如我的就是:http://521xueweihan.github.io/

頁面如下圖:

還記得Makefile檔案嗎?我們通過修改這個檔案,實作1條指令釋出部落格到github pages上。

把<code>blog</code>目錄下的Makefile檔案中的内容替換成下面的内容(原Makefile檔案的内容都不要)

更新部落格流程

把寫好的markdown格式的文章放到content中,然後在<code>blog</code>目錄下

本地檢視效果的話:<code>make html</code> 然後<code>make serve</code> 最後通路:127.0.0.1:8000

釋出到github:<code>make github</code> 完成

下面的内容算是進階篇了,需要把上面的步驟都完成。想要進一步完美自己的部落格的小夥伴

1.獨立域名

首先要購買域名,我的實在阿裡雲上買的,買完之後就需要修改你的域名指向:通路blog.xueweihan.com域名,跳轉到你的.github.io。根據你購買域名時候的提示,就可以設定完成了。之後在output目錄下,建立CNAME檔案。内容就是你購買的域名。因為github pages隻允許CNAME中的域名映射。

2.定制樣式結構

一步步的來,首先要找到你喜歡的主題pelican主題,下載下傳的時候我推薦<code>Download ZIP</code>會快很多。下載下傳好你的主題,我們就需要在blog目錄下,找到<code>pelicanconf.py</code>檔案,它是在生成靜态網站時候的配置檔案,定制幾乎所有的東西都需要通過這個。增添内容如下:

如果有python基礎的,可以直接修改主題目錄下的<code>template</code>中的模版。已達到你想要的目錄結構和内容的呈現。

3.簡單的SEO

在output檔案中建立rebots.txt,這個檔案是一個協定檔案,沒有不會影響什麼。但是有的話,有利于搜尋引擎的收錄。内容如下,允許所有爬蟲,同時不允許爬取theme目錄下的内容,和所有的圖檔。:

大多數主題多是外國人寫的,是以他們都支援‘谷歌分析’

而百度的分析就需要手動的在主題目錄下的template目錄下的base.html中增添百度的分析代碼。

4.sitemap是對于爬蟲友好的一個檔案,它告訴爬蟲,網站的更新頻率和優先級等。詳情

增添插件:

修改pelicanconf.py檔案:

5.favicon.ico

放在output的根目錄下。

6.訂閱

因為pelican的庫包含了feedgenerator。feedgenerator是用來生成Atom feeds(是包含你部落格資料的xml的檔案)用于訂閱。是以你隻需要在<code>pelicanconf.py</code>加入:

部落格就會自動生成訂閱功能了。

7.關于我

這個就像相當于一個自我介紹的頁面,是以就需要在<code>content</code>目錄下建立一個<code>pages</code>目錄,然後把你要展示的内容放到<code>pages</code>目錄下就可以了。

我的部落格:blog.xueweihan.com

當删除了一篇博文,但是以我上面所說的方式釋出的話。那片文章其實還是存在于github pages上的。隻不過沒有在模版中生成連結罷了。這種類似的情況會導緻:換主題css丢失等問題。當然如果你清空<code>output</code>目錄,然後重新生成網站的話,就沒問題。但是清空的話,會導緻一切不因該被删的檔案也都被删除了,例如:.git和CNAME等檔案。是以我就寫了一個<code>del.sh</code>,用于删除pelican生成的檔案,其他哪些通用檔案都不删除。這樣暫時可以解決問題。

本來想要在兩台電腦上都可以釋出文章,修改完makefile我發現不是剛性需求,同時實作效果不好。最後的解決方案是,把文章寫在另外的一個github的項目中,分布式編輯這個項目。最後寫文章之前,<code>git pull</code>擷取最新的文章,這樣就可以同步最新的内容進行修改釋出了。

我遇到的另外一個問題,就是pelican-theme上面大多都是國外的主題,有的主題中的jquery.js是用的google的cdn。在國内通路的時候會造成找不到jquery.js對體驗和響應時間造成很大的影響。是以,部署完站點後,最好打開浏覽器的開發者模式,檢視一下各個檔案的請求耗時。如果有我上述情況,那麼你可以嘗試把那個請求耗時過長的靜态檔案,下載下傳好,放到該主題目錄下<code>static</code>中對應的目錄内。

這個其實不是問題,算是一個建議。文章的格式中,加入<code>Slug: test</code>。這個字段的是:用于文章生成url的。不添加這個字段話,預設是拼音的url。但是有時侯拼音是錯誤的,而且對于搜尋引擎很不友好。

lizherui的部落格

pelican官方文檔

pelican中文文檔(不全)

Pelican搭建靜态部落格

作者:削微寒

本作品采用署名-非商業性使用-禁止演繹 4.0 國際 進行許可。