知識體系-打造寫作工作流

前言

我想將我的學習過程全部記錄下來,技術,工作,生活,還是思維片段,所有能記的都要記下來,終生學習這個理念不單要植入自己的腦子還要形成肌肉記憶。

當然記錄這件事情也一直在做,但是做得並不好,單純的記錄其實意義不大,如果能分享出去,並因此而獲取一些正向的反饋,然後再激勵自己去 學習 => 記錄 => 分享 => 獲得正向反饋 形成一個無限重複下去的閉環,這將是一件非常有意思的事情,就像本篇博文一樣。

本文的重點是 記錄 => 分享 兩個環節,至於其它的,以後補充。

背景

起因是我的 Hexo 博客有很久沒有更新了,因爲每次寫完一篇文章要再部署到博客網站,太麻煩了。

我所有的內容都放在了 GitHub:my-notes 這個倉庫下,然後本地使用 VS Code 去整理和編輯, Git + GitHub + VS Code 這套組合拳足以秒殺市面上的大部分筆記管理軟件。當然好的軟件確實有他存在的價值,比如我會使用ulysses 去記錄我零散的思維片段,其在移動端的編輯體驗非常棒。使用有道雲筆記將在微信或者在網絡中看到的有價值的資源一鍵發送到有道雲筆記進行臨時備份,等空下來的時候再做進一步的整理和細分。

當然光寫下來是不夠的,能分享出去纔是目的。用 docsifymy-notes 中的內容放在我的 筆記:文檔網站 中展示出來。然後整理一番,將一些想要分享的文章提出來再放到我的 博客:質數的一 博客。如果有興趣話,再同步更新到簡書, 掘金,segmentfault 知乎各個平臺。

docsify 和 Hexo 數據遷移

docsify 和 Hexo 的目錄結構是不一樣的,docsify 中的文章按照目錄樹的結構去組織的,這也是選擇 docfisy 的原因,my-notes 本身就是一個 project,而 docsify 可以直接將整棵 project 樹呈現出來。但是 Hexo 需要將所有的文章全部放在 source/_posts 目錄下,並且 Hexo 的文章格式和 docsify 有差異的,這意味着在兩者之間需要有一次文章格式的轉換,於是需要將 docsify 中的樹狀目錄轉換爲一維的形式,全部放在一個目錄下去。

docsify 下的文章目錄結構:

tree .
├── 算法
│   ├── 算法入門
│   │   ├── (0)Linux-C-編程.md
│   │   ├── (1)冒泡排序.md
│   │   ├── (10)-堆之隊列的優化.md
│   │   ├── (2)快速排序.md
│   │   ├── (3)去除排序中的重複元素.md
│   │   ├── (4)隊列.md
│   │   ├── (5)棧.md
│   │   ├── (6)Floyd最短路徑算法.md
│   │   ├── (7)Dijkstra最短路徑算法.md
│   │   ├── (8)鄰接鏈表的非鏈表化實現.md
│   │   └── (9)樹-二叉樹-完全二叉樹.md
│   └── 算法收藏夾
│       └── 紅黑樹探索筆記.pdf
├── 網絡
│   └── HTTP-請求and響應.md
....more items

Hexo 下的文章目錄結構:

ls hexo-blog/source/_posts
(0)Linux-C-編程.md                                        JS對象(2)值傳遞與引用傳遞.md                              http(2)模塊之服務器端.md
(1)Linux進程基礎.md                                       JS事件(3)EventUntil對象.md                                http模塊(1)之客戶端.md
(1)冒泡排序.md                                            JS高階(3)數組去重與排序.md                                jQuery(1)選擇器.md
(10)-堆之隊列的優化.md                                    JS對象(3)經典對象創建與繼承模式.md                        jQuery(2)事件.md
(2)Linux進程空間.md                                       JS對象(4)對象方法.md                                      jQuery(3)DOM屬性與內容.md
(2)快速排序.md                                            JS對象(5)對象屬性.md                                      jQuery(4)DOM節點操作.md
(3)Linux多線程與同步.md                                   JS設計模型(1)單例模式.md                                  jQuery(5)動畫.md
...more items

嗯,需要一個腳本去完成這件事情,關於此部分的內容可以參考我的博文 博客: Hexo博客遷移與Node.js目錄遍歷

自動生成 docsify 文章導航目錄

使用 docsify 還有一個問題是,每次添加新的文章都需要在 _sidebar.md 文件中添加一個新的文章鏈接, 內容大概如下:

bat _sidebar.md
   1   │ - [README](/README)
   2   │ - **migration_hexo**
   3   │   - [將Hexo部署到自有服務器](/migration_hexo/將Hexo部署到自有服務器)
   4   │   - [搭建Hexo博客站點](/migration_hexo/搭建Hexo博客站點)
   5   │ - **前端筆記**
   6   │   - **CSS**
   7   │     - **CSS-Secrets**
   8   │       - [字體排版](/前端筆記/CSS/CSS-Secrets/字體排版)
   9   │       - [形狀](/前端筆記/CSS/CSS-Secrets/形狀)
  16   │       - [FlexBox](/前端筆記/CSS/CSS3/FlexBox)

每添加一篇文章都要往這個文件裏手動添加一個新的文章導航鏈接,非常麻煩,而且很容易出錯,這種需要機械重複勞作的事情,顯然也是通過一段代碼就可以解決的 auto_generate_docsify_sidebar.js。該腳本會自動遍歷當前工程下的所有目錄然後根據所在的路徑和文件名稱自動生成 _sideBar.md 文件。

自動部署

Ok, 解決了 docsify 和 Hexo 之間的文章格式,接下就是部署的問題了,N 久以前我是將 Hexo 直接部署到 GitPages 中的,此部分內容可以參考我的博文 博客:Hexo系列之站點搭建篇 ,由於牆的存在以及種種原因,訪問速度以及部署體驗並不好,所以我又決定將 Hexo 部署我的騰訊雲服務器中去,此部分內容可以參考我的博文 博客:Hexo系列之部署篇,嗯,當你可以將 Hexo 自動化部署到服務器之後,你會覺得實現 docsify 的自動化部署將會是件多麼簡單的事情,此部分內容可以參考 docsify 官方文檔

那麼,盡情享受碼字的快感吧!

以上每個環節都有值得改進和優化的地方,我會不斷更新這套流程,如果你有更好的 idea,也請告訴我。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章