探討blog或repo做筆記的優缺點

最近一直在糾結採用Hugo(部落格形式)或repo的方式保存筆記,寫下本文思考兩種方式 的優缺點。筆記本身都是採用git下去保存,兩者差別在於md檔的描述方式、 保存方式、索引方式。

描述方式

兩種形式的差異在於描述文章資訊方式不同,而內文沒有差異。 若文章透過blog的形式可以擁有多重tags,而純md檔或者gitbook 等形式的文章則是使用目錄下去管理類別。

保存方式

若內容需要執行網頁程式碼或者需要網頁表單,採用repo會受限於github本身, 而透過hugo或靜態網頁產生則可以直接在內文嵌入相關的HTML

做於精簡描述程式參數作弊表,似乎兩者都可以達到目的。

無法歸類的文章適合採用blog的形式下去發布,不適合透過目錄結構歸類, 而相同類別的可以採用blog的tags,也可以透過repo的目錄結構下去管理。 而一個頁面如果含有多個主題,則不適合使用目錄結構下去保存,透過 blog的tags來涵蓋兩個範圍。

blog其實也有辦法實做目錄結構保存資料的方法,並非只有repo才能做到。

檢索方式

保存在repo若其他人感到不錯可以透過star的存在自己的github,而blog形式則只能 star部落格,或許可以透過子模塊達成這種方式。通常這是侷限於特定主題,應該屬於 檢索的問題。若其他人想要查詢特定主題,也可以透過tags的方式下去找尋。也可以保存 特定主題的tags到書籤或者其他檢索工具。

使用目錄結構管理筆記有一個缺點就是筆記數量成長到一個數量之後,無法一眼就找出需要的資料, 採用搜尋工具尋找內文,而這樣的話分類似乎就沒有太大的意義,除非將類別拆分到夠細。

採用blog形式似乎會用搜尋、tags等方式下去找尋相關內容,而tags的方式與目錄結構相同,不過優點是 可以看到文章摘要,如果透過目錄結構精準描述內容也可達到不錯的效果。

文章若要進行修改,blog形式並不會因為文章修改而浮出(或許有方法可以達成), 而repo形式也不會,頂多出現在commit紀錄上面,浮出頂多知道最近出現什麼內容, 這部份對於資料的檢索方面似乎沒有太大作用。

方便性

資料索引連結的建立,對於兩者來說似乎都差不多,皆是需要手動編寫相關連結。不過也可以透過 tags的方式自動擷取摘要得到相同的功能。

而部份文件作為程式碼若需要搭配程式碼,和程式碼保存在同一目錄資料夾上比較方便閱讀, blog形式還必須手動建立連結,但這只在檔案數量不超過一定數量時成立。

對於自身現有的筆記做的分析

解題程式碼

如CTF的writeup,或者leetcode的解題紀錄。

Write Up

在解決CTF相關題目後,編寫的解題紀錄通常只包含簡略的解題步驟以及思路, 作為一個簡短的文章,由於每次添加的內容為一小片段,適合當作一個頁面。

此頁面通常會搭配許多python腳本,根據前文所描述或許適合與程式碼放在一個目錄當中。 如果將此頁面放在blog的話,需要建立一個連結連到對映的解題目錄,可能會因為修改目錄結構, 導致連結失效

不過也可以透過將程式碼寫入文章當中來避免這個問題,不過這樣可能會導致篇幅過長。因為一個 writeup通常包含許多題目,題目本身佔用的篇幅就很長,除非每個都水題。

可以透過blog分散解題紀錄,並且利用tags或目錄結構的方式將一系列解題串接在一起。

leetcode或其他online judge

通常code會放在一個目錄當中,而解題紀錄通常都是以一個online judge為目錄,若解題紀錄寫在單一 檔案個人認為太佔用篇幅,而是每題一個文章那種寫法。

快捷鍵/作弊表

vim的快捷鍵列表,bash的指令列表,大部分以一個一篇文章描述語法即可,通常以一個程式或 一個指令為檔案名稱,通常屬於單一類別,因此可以使用目錄結構的方式下去保存, 也可以透過tags的方始保存。

總結

似乎用repo與blog兩者的差異在於資料標頭描述的方式,而這並不是什麼大問題。在使用筆記時, 檢索才是主要重點,有效率的得到資料比較重要。

若要由repo切換到blog格式似乎也不是太大的問題,可以透過腳本自動補上標頭,而blog切換到 repo格式似乎會失去一些資訊,不過筆記還是以精簡為要,在切換的過程也可以多做整理。

為了有效索引,兩種方式似乎都可以達到效果,不過工作的形式不同,必須格外設計索引方式來 增加工作效率。


紀錄 Blog