1. 程式人生 > >快速開發:用Python快速編寫部落格平臺

快速開發:用Python快速編寫部落格平臺

快速開發:用Python快速編寫部落格平臺

 

10個優秀的程式設計師裡,9個都有寫部落格的習慣。

學習Python中有不明白推薦加入交流裙
                號:735934841
                群裡有志同道合的小夥伴,互幫互助,
                群裡有免費的視訊學習教程和PDF!

這是非常好的習慣,它使得知識得以提煉,轉輸出為輸入,在提升自己的同時,還能利用網際網路易傳播的特性,將知識分享給每一個熱愛學習的人。所以寫部落格,是值得每個程式設計師投入時間和精力去堅持做下去的事。

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

實現的大體的思路如下:

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

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

安裝Sphnix

首先是安裝Sphnix。在安裝前,請確認下Python版本。本文使用的是Python 2.7.14,其他版本請自行嘗試(建議跟筆者一樣使用 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指令碼;

配置及擴充套件

Sphinx的配置檔案是sourceconifg.py。

由於修改的內容多且雜,為了使搭建過程更加順暢,需要進行Sphinx配置,包括配置主題、支援LaTeX以及支援中文檢索等等。

配置檔案還需要搭配相應的擴充套件模組才能使用,有時候還會用到一些第三方依賴包:

greenlet==0.4.5
oauthlib==0.7.2
paho-mqtt==1.0
tzlocal==1.1.2
redis==2.10.3
requests==2.4.3
requests-oauthlib==0.4.2
whitenoise==1.0.3
openpyxl==2.1.5

撰寫文章

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

在source目錄下,新增檔案how_to_be_a_rich_man.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快速編寫部落格平臺

 

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

快速開發:用Python快速編寫部落格平臺

 

託管專案

看到網頁的那一刻是不是相當激動?不過別激動,這只是本地的,我們需要將其釋出在線上。

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

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

build/
.idea/
*.pyc

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

釋出上線

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

你需要先去Read the Docs註冊帳號。然後關聯GitHub:

 

快速開發:用Python快速編寫部落格平臺

 

 

快速開發:用Python快速編寫部落格平臺

 

 

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

 

快速開發:用Python快速編寫部落格平臺

 

 

快速開發:用Python快速編寫部落格平臺

 

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

快速開發:用Python快速編寫部落格平臺

 

 

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

這裡給出轉換命令:

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

 

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

到這裡,屬於你的個人部落格就搭建好了。

成品展示

以筆者的部落格(mings-blog.rtfd.io)為例,給大家展示一下最終效果。

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

 

快速開發:用Python快速編寫部落格平臺

 

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

 

快速開發:用Python快速編寫部落格平臺

 

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

快速開發:用Python快速編寫部落格平臺

 

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

快速開發:用Python快速編寫部落格平臺

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