1. 程式人生 > >使用 Python 10分鐘 教你快速搭建一個部落格

使用 Python 10分鐘 教你快速搭建一個部落格

使用 Python 10分鐘 教你快速搭建一個部落格

10個優秀的程式設計師裡,有9個人都有寫部落格的習慣。這是非常好的習慣,它使得知識得以提煉,轉輸出為輸入,在提升自己的同時,還能利用網際網路易傳播的特性,將知識分享給每一個熱愛學習的人。

                學習Python中有不明白推薦加入交流群
                號:516107834
                群裡有志同道合的小夥伴,互幫互助,
                群裡有不錯的學習教程!

這是值得每個程式設計師,投入時間和精力去堅持做下去的事。

部落格既然是自己的一個知識寶庫,那麼索引將變得極為重要。通過自己的探索,小明發現了一個能夠很好地滿足這個需求的 Python 框架 Sphnix

實現的大體的思路如下:

  • Markdown:書寫文件
  • Pandoc:格式轉化
  • Sphinx:生成網頁
  • GitHub:託管專案
  • ReadtheDocs:釋出網頁

接下來,就來看看到底是如何實現的?

01

成品展示

以我的部落格為例,先給大家展示一下。

這是首頁。顯示了你所有的文章索引。

使用 Python 10分鐘 教你快速搭建一個部落格

 

這是我的導航欄。是不是結構很清晰,很方便索引。

使用 Python 10分鐘 教你快速搭建一個部落格

 

點選文章後,還可以很方便檢視標題,跳轉。

使用 Python 10分鐘 教你快速搭建一個部落格

 

體驗下搜尋功能,速度很快。

使用 Python 10分鐘 教你快速搭建一個部落格

 

看完這些你是不是也很想擁有這樣一個部落格呢?

只要你認真往下看,30分鐘搭建這樣一個部落格不在話下。

02

安裝Sphnix

安裝之前,請確認下Python版本。我這裡使用的是Python 2.7.14,其他版本請自行嘗試(Py3有點不一樣,不想踩坑的,請跟我一樣使用 Py2)。

安裝Python工具包

$ pip install sphinx sphinx-autobuild sphinx_rtd_theme

初始化

# 先建立一個工程目錄:F:\mkdocs
$ cd F:\mkdocs
$ sphinx-quickstart

執行這個命令sphinx-quickstart的時候,會讓你輸入配置。除了這幾個個性化配置,其他的都可以按照預設的來。

> Project name: MING's BLOG
> Author name(s): MING
> Project release []: 1.0
> Project language [en]: zh_CN

完了後,就可以看見建立的工程檔案。

F:mkdocs
(mkdocs) λ ls -l
total 5
-rw-r--r-- 1 wangbm 1049089 610 Jun 23 16:57 Makefile
drwxr-xr-x 1 wangbm 1049089 0 Jun 23 16:57 build/
-rw-r--r-- 1 wangbm 1049089 817 Jun 23 16:57 make.bat
drwxr-xr-x 1 wangbm 1049089 0 Jun 23 16:57 source/
F:mkdocs
(mkdocs) λ tree
卷 文件 的資料夾 PATH 列表
卷序列號為 0002-B4B9
F:.
├─build
└─source
 ├─_static
 └─_templates

解釋下這些檔案/夾:

  • build:資料夾,當你執行make html的時候,生成的html靜態檔案都存放在這裡。
  • source:資料夾:你的文件原始檔全部應全部放在source根目錄下。
  • Makefile:編譯檔案。完全不用管。
  • make.bat:bat指令碼。你也不用管。

03

配置及擴充套件

Sphinx 的配置檔案是 sourceconifg.py

由於修改的內容比較多而雜,為了使這個搭建過程,更加順暢。

小明已經給你精心準備了一份配置檔案。你只要關注我的公眾號,後臺直接回復「Sphinx」即可獲取。

關於配置檔案,我做了哪些事:

  • 配置主題
  • 支援LaTeX
  • 支援中文檢索

以上配置檔案,需要搭配擴充套件模組才能使用。擴充套件模組同樣我也給你準備好了,在你回覆「Sphinx」後,獲取壓縮包後,裡面有個 exts 資料夾。你只要將這個資料夾原封不動的放置在與source的同級目錄下即可。

由於擴充套件模組會用到一些第三方依賴包,需要你去包裝它。requirements.txt 同樣我也給你準備好了,在壓縮包裡有。

你只要執行這個命令,即可安裝。

pip install -r requirements.txt -i https://pypi.douban.com/simple/

04

撰寫文章

萬事俱備,接下來要寫文件了。

在source目錄下,新增檔案 how_to_be_a_rich_man.rst(至於什麼是rst格式呢,請自行搜尋引擎噢)

檔案內容如下

第一章 如何成為有錢人
======================
1.1 財富繼承法
---------------------
有個有錢的老爸。
1.2 財富共享法
---------------------
有個有錢的老婆。

寫好文件後,千萬記得要把這個文件寫進,目錄排版裡面。

排版配置檔案是 sourceindex.rst,千萬要注意中間的空行不可忽略。

.. toctree::
 :maxdepth: 2
 :caption: Contents:
 how_to_be_a_rich_man

然後刪除這幾行

Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

然後執行make html 生成html靜態檔案。

F:mkdocs
(mkdocs) λ make html
Running Sphinx v1.7.4
loading translations [zh_CN]... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 2 source files that are out of date
updating environment: [extensions changed] 2 added, 0 changed, 0 removed
reading sources... [100%] index
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index
generating indices... genindex
writing additional pages... search
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded.
The HTML pages are in buildhtml.

執行完了後,你可以發現原先的build,不再是空檔案夾了。

我們點進去 buildhtml,開啟index.html

使用 Python 10分鐘 教你快速搭建一個部落格

 

點選 我們剛寫的暴富指南。

使用 Python 10分鐘 教你快速搭建一個部落格

 

05

託管專案

看到網頁的那一刻是不是相當激動。

不過別激動,這只是本地的,我們需要將其釋出在線上。

這裡我將工程檔案,託管在GitHub上,然後由Read the Docs釋出。

在託管之前呢,我們需要準備工作。在mkdocs根目錄下,新增檔案.gitignore(聰明的你,肯定知道這是什麼),內容如下

build/
.idea/
*.pyc

接下來,在你的GitHub上新建一個倉庫。然後把mkdocs這個目錄下的所有檔案都提交上去。步驟很簡單,這裡就不細講。

06

釋出上線

託管完成後,我們要釋出它,讓別人可以訪問。

你需要先去 Read the Docs 註冊下帳號。

關聯一下GitHub

使用 Python 10分鐘 教你快速搭建一個部落格

 

使用 Python 10分鐘 教你快速搭建一個部落格

 

匯入程式碼庫。填好與你對應的資訊。

使用 Python 10分鐘 教你快速搭建一個部落格

 

使用 Python 10分鐘 教你快速搭建一個部落格

 

構建網頁後。右下方,你可以看見你的線上地址。

使用 Python 10分鐘 教你快速搭建一個部落格

 

 

這裡要提醒一下的是,Sphinx的文件格式,預設是 rst 格式,如果你習慣了使用Markdown來寫文章,可以使用 Pandoc 這個神器轉換一下。

這裡給出轉換命令。

pandoc -V mainfont="SimSun" -f markdown -t rst hello.md -o hello.rst

 

或者你也可以在Sphinx上新增支援Markdown渲染的擴充套件模組及配置。也很簡單,但是,我發現使用 md 檔案,在網站上的導航無法實現跳轉。

到這裡,屬於你的個人部落格就搭建好了,快去試一下吧。