使用Github+Markdown搭鍵自己的筆記本

有什麼東西慢慢偏離了發明者的初衷呢?

如果列個表,或許能繞赤道幾周,Github,應該也能算一個。Github本來是專門用來託管代碼的一個遠程倉庫,讓開發者們可以發現、分享以及一起開發優秀的軟件產品。但是它能託管的並不只有代碼,因此你偶爾會發現一些奇奇怪怪的東西混了進來,例如看穿一切的NoCode中國詩詞大全以及程序猿避坑指南等。

這也不奇怪,畢竟Github提供的是一個託管的機制,至於託管的是什麼這就交給用戶自己了。

偶然的發現,可以把Github是一個非常好的做筆記的軟件,食用起來比有道、印象還香。

起因

最近一直在尋找一款做筆記軟件,畢竟古人早就發現了“好記性不如爛筆頭”這個亙古不變的真理。有時候記錄一些瑣碎的知識,比如_如何配置Samba服務器Ubuntu16.04如何編譯Caffe_ ,等等,可能很久不用一次,回頭再需要的時候你已經忘了,有個筆記可以省去重新檢索的煩惱。主要期望有以下幾點:

  1. 免費(哈哈);
  2. 能放到服務器:自己的電腦是靠不住的,只有本地有的孤本吃棗藥丸;
  3. 支持Markdown:Markdown是一個可以用普通文本寫出結構化文檔的標記語言,目前有多種支持Markdown的編輯器,這就使得筆記的顯示效果跨平臺、跨應用。同樣一份文檔,不管拿到那裏都基本能得到統一的顯示效果。永遠也不會忘記當初寫論文在自己電腦上排版特別精美,一去打印一團亂麻的噩夢,所以統一的顯示效果特別重要。
  4. 支持足夠深的層級結構:方便歸類,所有東西都放到一個文件夾裏面的結果和什麼都沒有差不多;
  5. 有網頁版,不需要下載客戶端:自己家裏電腦裝的Ubuntu,公司Windows+Ubuntu,目前很多桌面軟件對Linux支持不好;
  6. 支持筆記下載和上傳:自己的筆記只能存在於某個平臺上這是不能忍的;
  7. 支持保存非markdown內容:平時可能偶爾在網上找到一些認爲比較好的PDF之類的資料,直接當參考資料,當然自己備份,網上的東西誰知道下一秒它的服務器還在不在;
  8. 支持批量上傳下載(可選):方便5、6點的批量操作,萬一哪天哪個平臺倒了,如果只能一個個操作不得累死。杞人憂天?也許吧;
  9. 支持VIM(可選):解放鼠標的利器啊。

搜尋

按照自己的期望,我開始了一番查找:

  1. 印象筆記:網頁版不支持Markdown,果斷放棄;
  2. 有道雲筆記:除了第7、8條都滿足,但是使用Markdown缺點明顯;
  3. OneNote:不支持Markown;
  4. 簡書:只有一個文檔編輯功能,離要求很遠;

後面又試了幾個,基本沒有能打過有道的了。到了這裏好像只能選有道雲筆記了,但是有道雲筆記有個兩個缺點:

  1. 不支持解析LaTex公式,這個還能接受,畢竟用的不是很多;
  2. 需要顯示圖片的時候,需要先上傳圖片,然後再分享獲得鏈接再通過![]()標記來顯示,這個太麻煩了。並且,由於圖片已經被分享出去了,這就存在安全因患了。

都說念念不忘,必有迴響。今天看在Github上瀏覽代碼的時候突然想到,能不能通過Github託管一個倉庫來實現?細數的下來,期望的1~8點都能滿足,後續如果能找到個CHROME VIM插件就完美了。

Github優點顯而易見,因爲本身已經熟悉了Git的常規操作,上傳下載輕而易舉。並且由於它核心是Git,可以輕鬆實現備份,最多寫個腳本就好了,畢竟是自己的專業。Github一份、Gitee一份、本地還可以有一份,萬一哪天Github真把中國區鎖了(畢竟這個魔幻的年份),Gitee還有。如果三份一起丟失,那就是命吧。
另外由於它基於Git,文檔一路的變遷都有跡可尋,只要修改提交了,就不用擔心後續手賤刪除了什麼東西。是要.git這個地基還在,我們就能重建家園。

缺點?也一樣不支持LaTex、編輯和預覽不同步、沒有導航欄、不支持在瀏覽器上拖拉式的調整目錄結構,但瑕不掩瑜,而且導航欄問題可以通過Chrome插件解決。

搭建過程

  1. 首先,你要有一個Github賬號,如果沒有https://github.com/ 註冊一個。

  2. 第二步,登陸並創建一個私有倉庫:
    i. 點擊頁面右上方+號選擇New epository
    Fig 1 create_note_repo
    ii. 填寫倉庫的信息,如名字、簡介等。如果你是電腦上已經有了筆記想遷移到Github,注意別勾選Initialize this repo with README。最關鍵的是勾選Private選項,這樣創建的就是個私有倉庫,否則你的筆記就是所有人都能查看了:
    Fig 2 config_repo

  3. 顯示側邊欄:下載安裝Chrome插件Octotree。如果無法訪問Google extension store的可以到我Github倉庫取(見文末鏈接)。如果是私有倉庫需要配置下,添加github token,安裝完成後頁面就變成了這樣:
    Fig 3 setup_sidebar

這樣,一個筆記本倉庫就創建完成了。

做筆記

  1. 進入倉庫,點擊倉庫又上方的Create new file按鈕:
    Fig 4 how_to_create_new

  2. 輸入筆記的名字。斜槓/之前的名字會被當作目錄。例如輸入ImgOfDeme/demo.mdImgOfDeme會被當作目錄,demo.md纔是文件的名字。注意只又後綴是.md結尾的文件點擊預覽的時候才能被格式化,否則就是一個普通的文本:
    Fig 5 create_dir

Fig 6 create_md_file

  1. 填寫好名字,就可以開始編輯了:
    Fig 7 edit

  2. 編輯過程中如果想查看效果,點擊編輯框左上角Preview即可查看到格式化的內容:
    Fig 8 edit_preview

  3. 編輯完成或者編輯過程中想要保存,點擊頁面最下方Commit a new file即可,描述主要用於概述你本次提交做了啥,可填可不填,畢竟是筆記又不是代碼;
    Fig 9 save_modification

  4. 上傳一個文件的操作也類似。

批操作

批量下載

可能,經過一番積累,你在倉庫裏已經有了很多筆記,想要批量打包到本地電腦,做備份或者其他。操作也很簡單:直接下載ZIP壓縮包或者使用命令行克隆倉庫到本地。

  1. 直接下載ZIP包:點擊倉庫右上角Clone or download ,在下拉菜單中選擇Download ZIP下載完成後解壓縮即可。
    Fig 10 batch_download

  2. 命令行克隆到本地:同樣點擊倉庫右上角Clone or download ,在下拉菜單中複製所給出的地址,在命令行中輸入下面命令,稍後片刻就好了:

# 執行下面命令需要現在本地安裝Git
cd /path/to/the/directory/you/want/your/repo/reside
# Windows: cd C:\\your\path or cd D:\\your\path or ......
git clone <paste the address you just copied here>

批量上傳

批量上傳最爽的還是使用Git:

cd /your/note/
# If this repo is cloned from github you don't need to init 
git init
# If this repo is cloned from github you don't need to add remote otherwise you want to push it to another server
# origin is arbitary name, you can replace it with whatever you want, it specify which remote repo you want 
# your repo to be pushed to.
git remote add origin <paste the address you just copied here, you can get it the same way as download>
git add .
git commit -m "<your commit description>"
git push origin master
<enter your github username>
<enter your password>

如果是在瀏覽器上操作,就點擊Upload files按提示操作即可。

Markdown

順路簡單介紹下Markdown語法。其實常用的就那麼幾個:

  1. 標題;
  2. 段落;
  3. 列表;
  4. 圖片;
  5. 鏈接;
  6. 表格;
  7. 引用;
  8. 塊;
  9. 強調。

標題

標題使用#表示,從#######一共六級,井號月多標題越小,#從一行頂格開始,和標題名字中間用空格分開,例如:

# 這是一號標題
## 這是二號表標題
### 三號
###### 六號

顯示效果如下:

這是一號標題

這是二號表標題

三號

六號

段落

段落之間通過兩個空格+回車 區分,如果一行的結尾直接回車跟下一段,這兩段顯示的時候其實會顯示成同一段。

列表

列表可分爲有序列表和無序列表,由於列表與一般的列表相同,通過1.列表12. 列表2...這樣的方式,無序列表通過星號*、加號+和減號-表示,顯示效果都一樣,例如:

* item1
+ itme2
- item3

會顯示成:

  • item1
  • itme2
  • item3

圖片

圖片的顯示方法感嘆號+中括號+括號例如我的[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BjzumNy1-1587285341226)(https://imgconvert機制,建來csdn傳(i.cn/aHg0cHMALy91cGxvYWQtaW8-1hZ2VzLmppYW5zaHUuavdXBsb8FkX2ltYWdlcy7yOTU4Njg2LWUyYTRhY2YyNTlmYmNmYTkucG1n?x-oss-process=image/format,png3)]()]]]]顯示成下面這樣:
Fig 11 My QR Code

鏈接

鏈接和圖片類似,只要把圖片前面的感嘆號去掉就行。例如[LLVM,一堆積木的故事](https://www.jianshu.com/p/9ad4abbffac1)會顯示成這樣:LLVM,一堆積木的故事

表格

表格語法如下:

|表頭1|表頭2|表頭3|
|:-:|:-:|:-:|
|one|two|three|
|four|five|sixsixsix|

顯示如下

表頭1 表頭2 表頭3
one two three
four five sixsixsix

引用

應用使用>表示,可以套娃引用,例如:

> 我引用了別人的一段話
>> 我引用了別人引用別人的一段話的一段話
>>> 我引用了別人引用別人引用別人的一段話的一段話的一段話

顯示效果如下:

我引用了別人的一段話

我引用了別人引用別人的一段話的一段話

我引用了別人引用別人引用別人的一段話的一段話的一段話

塊,更多的是用在顯示代碼,它可以保留代碼的原是結構,當然,其實任何文本都可以放進去,它使得裏面的文本不會被Mardown渲染成特殊顯示效果,例如

# Infact I don't need to import anything, just an example
import torch
print('This is how code should be shown')

使用的方法是使用三個連續反引號(`,鍵盤左上方esc鍵下方,不是回車鍵旁邊)將待碼快包起來,反引號單獨一行,頂格。行內的塊用單個反引號

強調

  1. 斜體:使用兩個星號包裹,例如*斜體內容*顯示成斜體內容
  2. 粗體:使用兩個星號包裹,例如**粗體內容**顯示成粗體內容
  3. 斜體+粗體:使用三個星號包裹,例如***斜體+粗體內容***顯示成***斜體+粗體內容***。

星號也可以用下劃線代碼,效果是一樣的。

更多

更多更詳細的語法請移步https://daringfireball.net/projects/markdown/syntax

總結

這還有啥總結的?唯一的遺憾始終沒有找到一款VIM插件。

公衆號二維碼

首發於個人微信公衆號TensorBoy。微信掃描上方二維碼或者微信搜索TensorBoy並關注,及時獲取更多最新文章!
C++ | Python | 推理引擎 | AI框架源碼,有一起玩耍的麼?

Materials

https://github.com/zmychou/materials-for-sharing/blob/master/tools/Octotree-bkhaagjahfmjljalopjnoealnfndnagc-4.2.1-Crx4Chrome.com.crx

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