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

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

640?wx_fmt=png

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

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

實現的大體的思路如下:

  • Markdown:書寫文件

  • Pandoc:格式轉化

  • Sphinx:生成網頁

  • GitHub:託管專案

  • ReadtheDocs:釋出網頁

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

01

成品展示

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

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

640?

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

640?

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

640?

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

640?

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

只要你認真往下看,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 的配置檔案是source\conifg.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 財富共享法
---------------------

有個有錢的老婆。

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

排版配置檔案是source\index.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 build\html.

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

我們點進去build\html\開啟index.html

640?

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

640

05

託管專案

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

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

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

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

build/
.idea/
*.pyc

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

06

釋出上線

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

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

關聯一下GitHub

640?

640

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

640

640

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

640?

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

這裡給出轉換命令。

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

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

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

640?wx_fmt=gif

Python中文社群作為一個去中心化的全球技術社群,以成為全球20萬Python中文開發者的精神部落為願景,目前覆蓋各大主流媒體和協作平臺,與阿里、騰訊、百度、微軟、亞馬遜、開源中國、CSDN等業界知名公司和技術社群建立了廣泛的聯絡,擁有來自十多個國家和地區數萬名登記會員,會員來自以公安部、工信部、清華大學、北京大學、北京郵電大學、中國人民銀行、中科院、中金、華為、BAT、谷歌、微軟等為代表的政府機關、科研單位、金融機構以及海內外知名公司,全平臺近20萬開發者關注。

640?wx_fmt=jpeg

▼ 點選下方閱讀原文免費成為社群會員