使用 Sphinx 將個人筆記變成文檔的形狀~

2021-02-07 鯉魚王的成長之路

本文從記錄筆記和後期歸檔出發,對比了多個平臺記錄筆記的特點和優勢,最後詳細記錄了使用 Sphinx 編譯筆記為 html 的例子。

搭建過程從第二部分開始

需求分析 & 平臺對比

首先關於為什麼選用 Sphinx 編譯筆記和文檔,Hexo 和 gitbook 也挺香的。Sphinx 是綜合對比下的選擇。

首先是 Typora,它簡直就是寫 md 的神器,寫 md 的同時還能預覽,沒有大部分 md 編輯器左邊寫 md 右邊預覽的那種割裂感。但只適合單個文檔的編輯,如果加上多標籤那就完美了。有時大概有印象要找的內容在某篇筆記中,但沒法全局搜索就有些麻煩。

然後有朋友推薦了 gitnote,雖然它可以多標籤頁編輯多個 md 了,但問題同樣是顯著的 —— 慢且默認為 md 編輯模式,預覽還得多切換一次。慢是說它每次啟動都得卡半天(已經安裝在固態盤中),且經常會有高 CPU 和磁碟佔用,可能會定時掃描文件變動實現版本管理。

也參考了朋友的意見使用 Trello 記錄筆記,但感覺它更多是針對工作流的,對於個人筆記而言好像又太複雜了。


至此我的需求大致明確,平常記錄筆記使用 md;後期方便查閱和搜索;查閱和搜索時秒開;最好有多標籤,沒有也可以;最後,編譯出來的顏值要夠。因而將目標轉向了將 md 文件編譯為 html 的一些框架,編輯和整理時通過 Typora 書寫,查閱時可以通過網頁的形式全局搜索。

gitbook 和 Hexo 等框架可以很方便的將 md 文件編譯為 html,但 gitbook 編譯出的 html 需要掛在 Nginx 上,不然沒法跳轉;hexo 雖然沒有上述缺點,但它是針對 blog 的框架,不太適合筆記。因而最終選定了 Sphinx,靜態網頁且夠快夠好看。

使用 Nginx 掛載 gitbook 編譯的連結可以參考我以前的推文:開發文檔加載不再卡頓,億點點提升

使用 Sphinx 記筆記環境搭建

首先安裝必要的包,我用的 python 環境是 Anaconda,日常不激活 conda 環境而是直接用。安裝包用匹配即可,用 conda 管理環境反而麻煩(在不需要做環境隔離的情況下)。

pip install sphinx sphinx_rtd_theme sphinx-autobuild pip3 install recommonmark sphinx_markdown_tables

首先安裝本體和一個主題,還有一個自動編譯的工具。第二行安裝了兩個插件,添加了對 md 文件的支持。

框架搭建

在一個空目錄下運行 sphinx-quickstart,輸出的信息大致如下,除了最後的語言注意填寫 zh_CN,其他的幾個隨便填,後面可以改。


生成文件後有一些奇奇怪怪的文件,需要關注的有兩個

conf.py:Sphinx 的配置,設置插件主題等

打開 conf.py,修改主題,添加插件,找到相關的內容改成這樣。還可以添加其他的插件實現其他的效果和功能,sphinx_rtd_theme 主題比較好看,有其他顏值高的主題求推薦一波。

extensions = [	'recommonmark',	'sphinx_markdown_tables']
html_theme = 'sphinx_rtd_theme'

至此,可以在有 make.bat 或者 Makefile 的目錄下運行 make html 編譯文檔,編譯出來的文件在 build\html 目錄下。

可以使用 sphinx-autobuild 命令自動編譯,可以實時刷新寫好的文檔,但是文檔有錯誤時不會顯示報錯信息。會在 localhost 的某個埠掛載編譯好的靜態 html,並實時刷新。

sphinx-autobuild source build/html

編寫自己的文檔和筆記

sphinx 用的是一套叫 reStructuredText 的純文本標記語法,功能比 md 更豐富,語法參考連結。

不過寫文檔可以不用太了解 rst 的語法,打開 index.rst,結構大致如下

toctree 的三個空格很重要,少了都報錯,最下面的是參考連結,可以不要。

這是標題=============================
可以寫點什麼東西
.. toctree:: :maxdepth: 2 :caption: 目錄標題: about test/testfile


這也是標題==================
* :ref:`genindex`* :ref:`modindex`* :ref:`search`

在 index.rst 的 toctree 下面加入自己寫的內容後要建立對應的文件

mkdir testtouch about.mdtouch test\testfile.md

由於之前安裝的 recommonmark 插件,可以愉快的使用 md 寫文檔了。

可以把下面的內容粘貼到新建的 md 中,方便編譯測試

最終完成的效果,奇怪的筆記文檔增加了。

使用 Sphinx 編譯自己的筆記文檔還挺簡單的,但是沒搞明白之前還是挺蛋疼的,參考了一些連結但感覺還是寫的不是太清楚,故我自己總結一下。

問題和改進中文路徑

目前出現了文檔中存在中文路徑時無法正常讀取圖片的 bug,猜測是轉義出了問題,不過沒有修復完成。

風格主題

現在使用的主題還有一點不太滿意,代碼高亮風格和其他的一些細節想改改,後續可能會研究研究怎麼修改。

一文多發

眾所周知 md 是最好的純文本標記語言(狗頭),csdn、知乎、公眾號或者其他平臺都支持 md 格式的文檔。唯一的問題就是在本地環境下圖片是相對路徑,輾轉到各個平臺還得重新上傳圖片。一個解決辦法是使用圖床,將文檔內的圖片替換為外鏈後就可以多個平臺複製粘貼發送一氣呵成。

參考連結

相關焦點

  • Python Sphinx 生成簡潔大方的文檔
    安裝 sphinx 庫簡單示例( Spninx 使用 )步驟一:Sphinx 創建出基礎配置步驟二:配置項目入口 index.rst步驟三:生成項目文檔步驟四:展示出來小小總結Sphinx 簡介純文本的文檔方便使用版本管理工具進行跟蹤。純文本文檔對不同系統之間的協作者也非常有用,純文本是當前可以採用的最便捷的格式之一,不然 markdown 格式咋那麼火呢,不是沒有道理的。程式設計師最討厭的兩件事:正經寫文檔確實麻煩,為啥麻煩呢?
  • Sphinx 1.4 發布,Python 開發程序文檔工具
    Python 開發的程序文檔工具 —— Sphinx 發布 1.4 版本,Sphinx 簡單來說,是一個文檔生成工具,用於把reStructuredText
  • 【Python】RST文件打開——以torchtext官方github文檔為例
    ,pytorch官方也打不開,於是在github下載了源碼,看看github有沒有相關的官方文檔。Docutils 能夠從Python程序中提取注釋和信息,格式化成程序文檔。2 將RST文檔轉標準可視化文檔如何將python項目中,RST文檔轉成可視化文檔呢?本文參考RST文件打開[2],結合torchtext[3] github項目演示如下。
  • 騰訊教育牽手印象筆記將推出「印象筆記教育版APP」
    編輯:書林目前,市場上的網絡文檔筆記類產品大致有:有道雲筆記、OneNote、印象筆記、為知筆記、金山文檔、石墨文檔、騰訊文檔。作為雲筆記的鼻祖,印象筆記脫胎於Evernote,旨在幫助用戶便捷高效收集信息,並把信息智能整理為知識、轉化為行動。昨日,印象筆記與騰訊教育應用平臺宣布達成戰略合作協議,雙方將在遠程會議、文檔協作、在線課堂、雲端筆記、智慧作業等方面深入合作,為中國師生提供包含工具、內容和服務的教學一體化方案。
  • Word如何使用圖形對象讓文檔更加生動
    Word如何使用圖形對象讓文檔更加生動為了使文檔內容更加豐富,可在其中插入形狀、文本框或藝術字等圖形對象進行點綴。一, 實戰:在感恩母親節中插入形狀用戶可以從指定類別中找到需要使用的形狀,然後將其插入到文檔中。二, 調整形狀大小和角度插入形狀後,我們還可以調整形狀的大小和角度,其方法和圖片的調整相似。這裡就不再介紹。
  • 個人成長 | 省時省力的高效APP | 人人都該學的筆記技巧 第3期
    之前分享過兩期筆記和資料整理有關的內容:做筆記前需要想清楚、做準備的事兒 – 電子筆記/紙質筆記的區別+如何選擇學習乾貨 | 認真做筆記成績還不好?人人都該學的筆記技巧 第1期電子資料整理思路 – 設備要求、APP必備功能、手帳入門、如何養成習慣個人成長 | 網盤資料爆滿,但是幾乎不用?
  • 形狀的插入與編輯(Word 2013文檔中)——想像力電腦應用
    Word 2013文檔中,我們可以根據自己的需要插入現成的形狀,如矩形和圓、箭頭、線條流程圖符號和標註等類型。具體操作方法如下:一、插入形狀在文檔中,我們可以利用Word 2013提供的繪製形狀工具插入需要的形狀,方法如下:
  • 如何將紙質文檔變成電子文檔?只需要一部手機就可以了
    如何將紙質文檔變成電子文檔?只需要一部手機就可以了現在我們,不論是學生還是上班的,在平時的學習或者工作的過程當中我們可能有很多的時候都需要用到電子檔的文件,因為這樣的文件傳輸起來是比較方便的,而且也特別的容易傳輸,但是如果我們沒有掃描儀的話,將這些紙質的文件變成電子檔的還是比較困難的,有的朋友根本就不知道該如何操作,今天我就教大家如何直接用我們自己的手機就將這些紙質的文件來轉成電子檔,而且是不需要下載軟體的
  • 筆記app在中國
    最後,印象筆記又回到了通過產品本身獲利的方式,即首先是收縮免費用戶使用條件——從原本支持5臺設備變成了只允許在2臺設備之間同步筆記;其次是提高了會員價格,普通會員從每年的25美元上調至35美元,高級會員價格從50美元上漲至70美元。
  • 寫田野筆記,做七個文檔
    結合自己的經驗,我要求每天寫兩個文本和一個反思:材料文本記錄和尋找材料間的邏輯關聯,故事文本刻畫和傳達事件和生活感悟,反思連接二者,求完整理解。材料需要邏輯, 避免單純分類式的記錄,情境需要感性,展現鮮活的人物和情境,都要求細節豐富、充滿質感。
  • GoodNotes 5 for mac(筆記軟體) 中文版
    GoodNotes mac版是最好的筆記軟體,使用GoodNotes mac建一個空白的筆記本,在紙張的任何地方記錄你想要的任何東西。Goodnotes最難能可貴之處就是做到了與系統原生備忘錄幾乎一樣的順滑和零延遲,並且支持壓感,書寫體驗頂級。
  • 如何在iPhone和iPad上使用Notes App來掃描文檔
    在這裡,我們將介紹如何使用iPhone和iPad Notes應用程式掃描文檔。雖然您可能使用Notes應用程式在購物清單上保留標籤或在會議中做筆記,但您可能尚未使用它來掃描和保存文檔。真可惜,因為這樣做確實很棒。通過iCloud靜默同步設備上的所有內容,您的文檔將在需要時始終保存在Notes應用程式中。
  • 石墨文檔推出筆記應用「小章魚」,它的體驗如何?(內含福利)
    石墨文檔是一款多人協作工具,由於其簡潔美觀的特性,受到很多人的喜愛,我們之前進行過多次推薦。不過對於個人用戶來說,它的分類整理功能並不是太完善。也許是察覺到了這個需求,石墨文檔團隊最近推出了一款個人筆記類應用,小章魚。它的體驗如何呢?下面極客之選(微信:Geekchoice)就來介紹一下。
  • 乾貨 | Notability使用技巧大合集
    去年寫過一篇Notability使用心得過了近一年 軟體本身也有過多次更新所以這次就來重新匯總一下它的使用技巧吧附動圖詳解* 文末有四屏使用法 *點擊文檔右下角的頁面數字。比如顯示為2/31,可以輕點2,然後鍵入想跳轉的頁數,實現快速跳頁功能。運用書籤標記可能會更方便。這個功能超好用。
  • 為什麼 Kindle、筆記應用、在線文檔仍改變不了我們對紙的喜愛?
    很多人有記筆記的習慣,會議記錄、學習筆記、每年的手帳,都是需要用本子的地方,但如果你想使用電子設備來記筆記,那 iPad 帶著專屬的 Apple Pencil,Surface 帶著專屬的 Surface Pen 走到你的面前,深情款款的對你說:「嗨,我們可好用了」。
  • 快速記錄課堂筆記的方法
    使用了這個方法,既讓同學們在課前做了必要的預習,對將要學的內容做到了「心中有數」,又可以在課後複習時對所學內容形成知識結構的框圖。最重要的是這個方法記筆記,速度快效果還好,不會影響同學們聽老師講課。在運用思維導圖做筆記時,由於要操作筆記本電腦,手機對同學們的誘惑也大大減小了。
  • 『在線文檔』哪家強?(文檔處理篇)
    :石墨文檔、騰訊文檔、一起寫、語雀、印象筆記、有道雲筆記、基於iCloud的iWork套件。在文檔處理方面,更多體現了在線工具與傳統應用場景的聯動能力,比如石墨、有道雲筆記和語雀免費提供演示功能,這就大大提升了在線文檔的線下使用場景,或許其他產品應該考慮將這一功能提升到一個更高優先級的位置,在線文檔最終是為了轉化為生產力,拓寬應用場景是每一個在線文檔產品經理應該思考的問題。
  • 怎樣在Word文檔中將文字排列為任意形狀?方法簡單高效專業
    我們在做Word文檔時,有時為了文檔的美觀和專業,我們需要將文檔中的某段文字排列的扇形或者是豎排,對於新手小白來說,這或許有些難度。那麼今天小編將要分享一個快速將Word文字排列為任意形狀的方法,需要的小夥伴們可不要錯過了。
  • 開始使用 CryptPad 吧,一個開源的協作文檔編輯器 | Linux 中國
    CryptPad我們已經介紹過 Joplin[1],它能很好地保存自己的筆記,但是,你可能已經注意到,它沒有任何共享或協作功能。CryptPad[2] 是一個安全、可共享的筆記應用和文檔編輯器,它能夠安全地協作編輯。與 Joplin 不同,它是一個 NodeJS 應用,這意味著你可以在桌面或其他伺服器上運行它,並使用任何現代 Web 瀏覽器訪問。
  • 揭秘Kindle眾多神秘使用技巧:用微信推送文檔
    不可否認,在網絡閱讀越發的流行今天,Kindle 已經成為了網絡閱讀最佳承載體之一;因為 Kindle,我們可以靜下心來享受沉浸於閱讀;因為 Kindle,我們可以將閱讀作為一種享受。但好產品並不意味著好使用,接下來雷鋒網就和大家分享 Kindle 那些鮮為人知的使用技巧,讓閱讀更加自然。