有什麼東西慢慢偏離了發明者的初衷呢?
如果列個表,或許能繞赤道幾周,Github,應該也能算一個。Github本來是專門用來託管代碼的一個遠程倉庫,讓開發者們可以發現、分享以及一起開發優秀的軟件產品。但是它能託管的並不只有代碼,因此你偶爾會發現一些奇奇怪怪的東西混了進來,例如看穿一切的NoCode、中國詩詞大全以及程序猿避坑指南等。
這也不奇怪,畢竟Github提供的是一個託管的機制,至於託管的是什麼這就交給用戶自己了。
偶然的發現,可以把Github是一個非常好的做筆記的軟件,食用起來比有道、印象還香。
起因
最近一直在尋找一款做筆記軟件,畢竟古人早就發現了“好記性不如爛筆頭”這個亙古不變的真理。有時候記錄一些瑣碎的知識,比如_如何配置Samba服務器、Ubuntu16.04如何編譯Caffe_ ,等等,可能很久不用一次,回頭再需要的時候你已經忘了,有個筆記可以省去重新檢索的煩惱。主要期望有以下幾點:
- 免費(哈哈);
- 能放到服務器:自己的電腦是靠不住的,只有本地有的孤本吃棗藥丸;
- 支持Markdown:Markdown是一個可以用普通文本寫出結構化文檔的標記語言,目前有多種支持Markdown的編輯器,這就使得筆記的顯示效果跨平臺、跨應用。同樣一份文檔,不管拿到那裏都基本能得到統一的顯示效果。永遠也不會忘記當初寫論文在自己電腦上排版特別精美,一去打印一團亂麻的噩夢,所以統一的顯示效果特別重要。
- 支持足夠深的層級結構:方便歸類,所有東西都放到一個文件夾裏面的結果和什麼都沒有差不多;
- 有網頁版,不需要下載客戶端:自己家裏電腦裝的Ubuntu,公司Windows+Ubuntu,目前很多桌面軟件對Linux支持不好;
- 支持筆記下載和上傳:自己的筆記只能存在於某個平臺上這是不能忍的;
- 支持保存非markdown內容:平時可能偶爾在網上找到一些認爲比較好的PDF之類的資料,直接當參考資料,當然自己備份,網上的東西誰知道下一秒它的服務器還在不在;
- 支持批量上傳下載(可選):方便5、6點的批量操作,萬一哪天哪個平臺倒了,如果只能一個個操作不得累死。杞人憂天?也許吧;
- 支持VIM(可選):解放鼠標的利器啊。
搜尋
按照自己的期望,我開始了一番查找:
- 印象筆記:網頁版不支持Markdown,果斷放棄;
- 有道雲筆記:除了第7、8條都滿足,但是使用Markdown缺點明顯;
- OneNote:不支持Markown;
- 簡書:只有一個文檔編輯功能,離要求很遠;
後面又試了幾個,基本沒有能打過有道的了。到了這裏好像只能選有道雲筆記了,但是有道雲筆記有個兩個缺點:
- 不支持解析LaTex公式,這個還能接受,畢竟用的不是很多;
- 需要顯示圖片的時候,需要先上傳圖片,然後再分享獲得鏈接再通過
![]()
標記來顯示,這個太麻煩了。並且,由於圖片已經被分享出去了,這就存在安全因患了。
都說念念不忘,必有迴響。今天看在Github上瀏覽代碼的時候突然想到,能不能通過Github託管一個倉庫來實現?細數的下來,期望的1~8點都能滿足,後續如果能找到個CHROME VIM插件就完美了。
Github優點顯而易見,因爲本身已經熟悉了Git的常規操作,上傳下載輕而易舉。並且由於它核心是Git,可以輕鬆實現備份,最多寫個腳本就好了,畢竟是自己的專業。Github一份、Gitee一份、本地還可以有一份,萬一哪天Github真把中國區鎖了(畢竟這個魔幻的年份),Gitee還有。如果三份一起丟失,那就是命吧。
另外由於它基於Git,文檔一路的變遷都有跡可尋,只要修改提交了,就不用擔心後續手賤刪除了什麼東西。是要.git
這個地基還在,我們就能重建家園。
缺點?也一樣不支持LaTex、編輯和預覽不同步、沒有導航欄、不支持在瀏覽器上拖拉式的調整目錄結構,但瑕不掩瑜,而且導航欄問題可以通過Chrome插件解決。
搭建過程
-
首先,你要有一個Github賬號,如果沒有https://github.com/ 註冊一個。
-
第二步,登陸並創建一個私有倉庫:
i. 點擊頁面右上方+
號選擇New epository
:
ii. 填寫倉庫的信息,如名字、簡介等。如果你是電腦上已經有了筆記想遷移到Github,注意別勾選Initialize this repo with README
。最關鍵的是勾選Private
選項,這樣創建的就是個私有倉庫,否則你的筆記就是所有人都能查看了:
-
顯示側邊欄:下載安裝Chrome插件
Octotree
。如果無法訪問Google extension store的可以到我Github倉庫取(見文末鏈接)。如果是私有倉庫需要配置下,添加github token,安裝完成後頁面就變成了這樣:
這樣,一個筆記本倉庫就創建完成了。
做筆記
-
進入倉庫,點擊倉庫又上方的
Create new file
按鈕:
-
輸入筆記的名字。斜槓
/
之前的名字會被當作目錄。例如輸入ImgOfDeme/demo.md
,ImgOfDeme
會被當作目錄,demo.md
纔是文件的名字。注意只又後綴是.md
結尾的文件點擊預覽的時候才能被格式化,否則就是一個普通的文本:
-
填寫好名字,就可以開始編輯了:
-
編輯過程中如果想查看效果,點擊編輯框左上角
Preview
即可查看到格式化的內容:
-
編輯完成或者編輯過程中想要保存,點擊頁面最下方
Commit a new file
即可,描述主要用於概述你本次提交做了啥,可填可不填,畢竟是筆記又不是代碼;
-
上傳一個文件的操作也類似。
批操作
批量下載
可能,經過一番積累,你在倉庫裏已經有了很多筆記,想要批量打包到本地電腦,做備份或者其他。操作也很簡單:直接下載ZIP壓縮包或者使用命令行克隆倉庫到本地。
-
直接下載ZIP包:點擊倉庫右上角
Clone or download
,在下拉菜單中選擇Download ZIP
下載完成後解壓縮即可。
-
命令行克隆到本地:同樣點擊倉庫右上角
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.列表1
、2. 列表2...
這樣的方式,無序列表通過星號*
、加號+
和減號-
表示,顯示效果都一樣,例如:
* item1
+ itme2
- item3
會顯示成:
- item1
- itme2
- item3
圖片
圖片的顯示方法感嘆號+中括號+括號
例如我的[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-BjzumNy1-1587285341226)(https://imgconvert機制,建來csdn傳(i.cn/aHg0cHMALy91cGxvYWQtaW8-1hZ2VzLmppYW5zaHUuavdXBsb8FkX2ltYWdlcy7yOTU4Njg2LWUyYTRhY2YyNTlmYmNmYTkucG1n?x-oss-process=image/format,png3)]()]]]]
顯示成下面這樣:
鏈接
鏈接和圖片類似,只要把圖片前面的感嘆號去掉就行。例如[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
鍵下方,不是回車鍵旁邊)將待碼快包起來,反引號單獨一行,頂格。行內的塊用單個反引號
強調
- 斜體:使用兩個星號包裹,例如
*斜體內容*
顯示成斜體內容; - 粗體:使用兩個星號包裹,例如
**粗體內容**
顯示成粗體內容; - 斜體+粗體:使用三個星號包裹,例如
***斜體+粗體內容***
顯示成***斜體+粗體內容***。
星號也可以用下劃線代碼,效果是一樣的。
更多
更多更詳細的語法請移步https://daringfireball.net/projects/markdown/syntax
總結
這還有啥總結的?唯一的遺憾始終沒有找到一款VIM插件。
首發於個人微信公衆號TensorBoy。微信掃描上方二維碼或者微信搜索TensorBoy並關注,及時獲取更多最新文章!
C++ | Python | 推理引擎 | AI框架源碼,有一起玩耍的麼?