使用 pelican 和 Github pages 來搭建部落格
今天我將談一下我這個部落格是如何搭建的。在我們開始之前,我希望你熟悉使用 Github 並且可以搭建一個 Python 虛擬環境來進行開發。如果你不能做到這些,我推薦你去學習一下 Django Girls 教程,它包含以上和更多的內容。
這是一篇幫助你釋出由 Github 託管的個人部落格的教程。為此,你需要一個正常的 Github 使用者賬戶 (而不是一個工程賬戶)。
你要做的第一件事是建立一個放置程式碼的 Github 倉庫。如果你想要你的部落格僅僅指向你的使用者名稱 (比如 rsip22.github.io) 而不是一個子資料夾 (比如 rsip22.github.io/blog),你必須建立一個帶有全名的倉庫。
Github 截圖,開啟了建立新倉庫的選單,正在以 'rsip22.github.io' 名字建立一個新的倉庫
我推薦你使用 README
、用於 Python 的 .gitignore
和 一個自由軟體許可證 初始化你的倉庫。如果你使用自由軟體許可證,你仍然擁有這些程式碼,但是你使得其他人能從中受益,允許他們學習和複用它,並且更重要的是允許他們享有這些程式碼。
既然倉庫已經建立好了,那我們就克隆到本機中將用來儲存程式碼的資料夾下:
$ git clone https://github.com/YOUR_USERNAME/YOUR_USERNAME.github.io.git
並且切換到新的目錄:
$ cd YOUR_USERNAME.github.io
因為 Github Pages 偏好執行的方式是從 master 分支提供檔案,你必須將你的原始碼放到新的分支,防止 Pelican 產生的靜態檔案輸出到 master 分支。為此,你必須建立一個名為 source 的分支。
$ git checkout -b source
用你的系統所安裝的 Pyhton 3 建立該虛擬環境(virtualenv)。
在 GNU/Linux 系統中,命令可能如下:
$ python3 -m venv venv
或者像這樣:
$ virtualenv --python=python3.5 venv
並且啟用它:
$ source venv/bin/activate
在虛擬環境裡,你需要安裝 pelican 和它的依賴包。你也應該安裝 ghp-import (來幫助我們釋出到 Github 上)和 Markdown (為了使用 markdown 語法來寫文章)。執行如下命令:
(venv)$ pip install pelican markdown ghp-import
一旦完成,你就可以使用 pelican-quickstart
開始建立你的部落格了:
(venv)$ pelican-quickstart
這將會提示我們一系列的問題。在回答它們之前,請看一下如下我的答案:
> Where do you want to create your new web site? [.] ./
> What will be the title of this web site? Renata's blog
> Who will be the author of this web site? Renata
> What will be the default language of this web site? [pt] en
> Do you want to specify a URL prefix? e.g., http://example.com (Y/n) n
> Do you want to enable article pagination? (Y/n) y
> How many articles per page do you want? [10] 10
> What is your time zone? [Europe/Paris] America/Sao_Paulo
> Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n) Y **# PAY ATTENTION TO THIS!**
> Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n) n
> Do you want to upload your website using FTP? (y/N) n
> Do you want to upload your website using SSH? (y/N) n
> Do you want to upload your website using Dropbox? (y/N) n
> Do you want to upload your website using S3? (y/N) n
> Do you want to upload your website using Rackspace Cloud Files? (y/N) n
> Do you want to upload your website using GitHub Pages? (y/N) y
> Is this your personal page (username.github.io)? (y/N) y
Done. Your new project is available at /home/username/YOUR_USERNAME.github.io
關於時區,應該指定為 TZ 時區(這裡是全部列表: tz 資料庫時區列表)。
現在,繼續往下走並開始建立你的第一篇博文!你可能想在你喜愛的程式碼編輯器裡開啟工程目錄並且找到裡面的 content
資料夾。然後建立一個新檔案,它可以被命名為 my-first-post.md
(別擔心,這只是為了測試,以後你可以改變它)。在文章內容之前,應該以後設資料開始,這些後設資料標識標題、日期、目錄及更多,像下面這樣:
.lang="markdown" # DON'T COPY this line, it exists just for highlighting purposes
Title: My first post
Date: 2017-11-26 10:01
Modified: 2017-11-27 12:30
Category: misc
Tags: first, misc
Slug: My-first-post
Authors: Your name
Summary: What does your post talk about? Write here.
This is the *first post* from my Pelican blog. **YAY!**
讓我們看看它長什麼樣?
進入終端,產生靜態檔案並且啟動伺服器。要這麼做,使用下面命令:
(venv)$ make html && make serve
當這條命令正在執行,你應該可以在你喜愛的 web 瀏覽器位址列中鍵入 localhost:8000
來訪問它。
部落格主頁的截圖。它有一個帶有 Renata's blog 標題的頭部,第一篇博文在左邊,文章的資訊在右邊,連結和社交在底部
相當簡潔,對吧?
現在,如果你想在文章中放一張圖片,該怎麼做呢?好,首先你在放置文章的內容目錄裡建立一個目錄。為了引用簡單,我們將這個目錄命名為 image
。現在你必須讓 Pelican 使用它。找到 pelicanconf.py
檔案,這個檔案是你配置系統的地方,並且新增一個包含你的圖片目錄的變數:
.lang="python" # DON'T COPY this line, it exists just for highlighting purposes
STATIC_PATHS = ['images']
儲存它。開啟文章並且以如下方式新增圖片:
.lang="markdown" # DON'T COPY this line, it exists just for highlighting purposes
![Write here a good description for people who can't see the image]({filename}/images/IMAGE_NAME.jpg)
你可以在終端中隨時按下 CTRL+C
來中斷伺服器。但是你應該再次啟動它並檢查圖片是否正確。你能記住怎麼樣做嗎?
(venv)$ make html && make serve
在你程式碼完工之前的最後一步:你應該確保任何人都可以使用 ATOM 或 RSS 流來讀你的文章。找到 pelicanconf.py
檔案,這個檔案是你配置系統的地方,並且編輯關於 RSS 流產生的部分:
.lang="python" # DON'T COPY this line, it exists just for highlighting purposes
FEED_ALL_ATOM = 'feeds/all.atom.xml'
FEED_ALL_RSS = 'feeds/all.rss.xml'
AUTHOR_FEED_RSS = 'feeds/%s.rss.xml'
RSS_FEED_SUMMARY_ONLY = False
儲存所有,這樣你才可以將程式碼上傳到 Github 上。你可以透過新增所有檔案,使用一個資訊(“first commit”)來提交它,並且使用 git push
。你將會被問起你的 Github 登入名和密碼。
$ git add -A && git commit -a -m 'first commit' && git push --all
還有...記住在最開始的時候,我給你說的怎樣防止 Pelican 產生的靜態檔案輸出 master 分支嗎。現在對你來說是時候產生它們了:
$ make github
你將會被再次問及 Github 登入名和密碼。好了!你的新部落格應該建立在 https://YOUR_USERNAME.github.io
。
如果你在過程中任何一步遇到一個錯誤,請重新讀一下這篇手冊,嘗試並看看你是否能發現錯誤發生的部分,因為這是除錯的第一步。有時甚至一些簡單的東西比如一個錯字或者 Python 中錯誤的縮排都可以給我們帶來麻煩。說出來並向網上或你的社群求助。
對於如何使用 Markdown 來寫文章,你可以讀一下 Daring Fireball Markdown 指南。
為了獲取其它主題,我建議你訪問 Pelican 主題。
這篇文章改編自 Adrien Leger 的使用一個 Bottstrap3 主題來搭建由 Github 託管的 Pelican 部落格。
via: https://rsip22.github.io/blog/create-a-blog-with-pelican-and-github-pages.html
作者:rsip22 譯者:liuxinyu123 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- GitHub Pages 搭建部落格Github
- 使用vuepress搭建GitHub pages靜態部落格頁面VueGithub
- 用VuePress在GitHub Pages上搭建部落格VueGithub
- 30分鐘使用Docsify+Github Pages搭建個人部落格Github
- 基於 Hexo + GitHub Pages 搭建個人部落格(三)HexoGithub
- GitHub Pages + Hexo搭建個人部落格網站-github風格-採坑記錄GithubHexo網站
- 用 Hugo 和 Github Pages 構建個人部落格GoGithub
- 一篇帶你用 VuePress + Github Pages 搭建部落格VueGithub
- Github Pages部署個人部落格(Hexo篇)GithubHexo
- 使用 github 和 Deno Deploy 搭建一個部落格網站Github網站
- 使用hexo+Anisina+github搭建個人部落格HexoGithub
- 通過travis自動部署hexo部落格到github pagesHexoGithub
- 【GitHub】GitHub+Hexo搭建個人部落格GithubHexo
- 整合github、hexo搭建部落格GithubHexo
- 如何使用Github+Hexo快速搭建個人部落格GithubHexo
- Hexo+Github部落格搭建完全教程HexoGithub
- MkDocs+Github搭建個人部落格Github
- 搭建github部落格常見錯誤Github
- Hexo + Github 搭建靜態部落格(一)HexoGithub
- hexo+github搭建個人部落格HexoGithub
- 使用Hexo&GitHub免費快速搭建部落格教程HexoGithub
- 搭建部落格 (Hexo + github + butterfly主題)HexoGithub
- Hexo+Github搭建部落格總結HexoGithub
- Hexo+GitHub+阿里域名搭建自己部落格HexoGithub阿里
- hexo結合github搭建個人部落格HexoGithub
- github部落格沒建立起來Github
- 使用 Github Actions 部署 VuePress 部落格GithubVue
- github 部落格Github
- 我又使用github進行搭建了個部落格 kaysanshi.topGithub
- 使用GitHub當部落格圖床提升部落格訪問速度Github圖床
- 史上最快用GitHub、Hexo搭建個人部落格GithubHexo
- Hexo+Github輕鬆搭建個人部落格HexoGithub
- 基於Github Page 搭建部落格(hexo框架)GithubHexo框架
- GitHub + Hexo搭建自己部落格(一) 基本內容GithubHexo
- 將 Github Pages 個人部落格錄入搜尋引擎(以 Bing 為例)Github
- 使用Docker搭建Chirpy部落格Docker
- 利用Github+Jeklly搭建個人部落格網站Github網站
- 把Github當作資料庫,搭建部落格Github資料庫