1. 程式人生 > >Neeto-Vue:我為了記筆記,手寫了一個為知筆記客戶端

Neeto-Vue:我為了記筆記,手寫了一個為知筆記客戶端

## 構建自託管的筆記系統 這兩年各種筆記系統快速井噴,好像誰都能來摻一腳,app store隨便搜尋一個關鍵字就會有一大堆的結果,從老牌的印象筆記,Bear,MWeb,有道雲筆記再到新星專注筆記之類,從買斷制到訂閱制,從全平臺到iOS獨佔,什麼樣的都有,如果你是一個相對包容的人,那麼大牌的筆記軟體就足以滿足需求,代價是承受不菲的訂閱費用以及陳舊的筆記客戶端? 我堅信訂閱制對軟體開發而言是一件有促進作用的好事,能夠督促開發者在軟體的生命週期裡修復問題,並提供更好的線上服務以及售後幫助,但也不能不承認,訂閱制對普通消費者並不那麼友好,我得每月持續支付才能保證我的資料是安全的,是可用的,還要擔心軟體供應商價格政策的調整,包年遇上優惠就覺得虧慘,包月遇上漲價也難免不舒服。 如果可以的話,最好的狀態肯定是自託管,而自託管中成本最低的就是git的方式,不管是coding還是GitHub都提供了足夠大的空間來儲存筆記資料,同時,repository的方式也讓所有檔案格式的儲存成為可能,但這樣也會引出另一個問題:移動端怎麼辦? 移動端真的是很讓人頭疼,git在移動裝置上的支援本就一般,要是想做進筆記軟體中那更是冷門,我的記憶中應該還沒有開發者做這一塊的? > 有時間嘗試一下,立個flag哈哈哈。 除開git,那也就只剩下自託管的筆記軟體。 ## Leanote 沒有記錯的話,官方已經拋棄了這個軟體,全部開源,但已經好多年不更新了,iOS的客戶端連全面屏都沒有支援,桌面客戶端也是勉強能用,很一般,用現在的話講一點都不現代。 ![Leanote託管頁面](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155043176-585367651.png) 不過Leanote實現了很多重要特性,例如筆記歷史,差分對比,對markdown的支援,標籤系統,就是移動端過於欠缺,是個遺憾。 ## 為知筆記 終於寫到本文的主角。為知筆記是我知道的,第一家開放筆記後端docker服務下載的主流筆記提供商,並保持了較高的更新頻率,當前的docker映象我甚至覺得哪怕再也不更新也是完全夠用。 ![](https://img2020.cnblogs.com/news/1883891/202102/1883891-20210203155043753-1806156183.png) 同時他們主打的網頁剪輯功能也能在私有部署docker 映象上運作,而且瀏覽器外掛webclipper也支援將網頁剪輯成markdown檔案直接儲存到為知筆記中,不管是私有服務還是官方服務,簡直不要太爽。 ## 完整的自託管筆記工作流Git + Wiz 本地的一些技術文件編寫我的選擇是**Git工具加史上最好用的markdown編輯器typora**,可能說其來有點誇張,不過Typora確實是我用過最好用的編輯器,建議沒用過的人都去用一下。 [Typora](https://www.typora.io/) ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155043999-2089527923.png) 整個Document倉庫可以包含所有型別的檔案,不管是程式碼還是doc文件,並且這些文件還有一個很重要的特性--不需要在移動端檢視與修改。 為什麼要執著於在移動端檢視?因為有很多的思緒是轉瞬即逝的,而在電腦上寫作並不足夠快速,可能開機的功夫就枯竭了。我希望能夠掏出手機就能直接檢視和編輯。所以接下來的工作就交與為知筆記工作流來完成。 ### WizNote Lite Mobile 先來說移動端,我的選擇是WizNote Lite,這是他們最新的一個專案,使用跨平臺的React-Native開發,我最看重的一點就是它實現了手機上markdown實時預覽,類似於Typora的所見即所得,當前只發布了第一個版本,還在快速迭代中。 ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155044253-176099101.jpg) 不過也有一個問題,那就是WizNote Lite只支援為知筆記中的Lite資料夾,我估計他們是想仿照Bear的標籤系統,弱化以前的無限層級的資料夾巢狀,所以以前在為知筆記中寫的筆記就沒辦法同步到手機上,anyway,這不是一個大問題,後面我會提供辦法解決。 ### Neeto-Vue 更完整的WizNote Lite 桌面客戶端 Github:[專案地址](https://github.com/TankNee/Neeto-Vue) Url:https://github.com/TankNee/Neeto-Vue 我能理解官方為了提升使用者體驗,在Lite客戶端只同步單一的markdown檔案,以及選擇不與其他資料夾互通,保證體驗的統一性。於是,我為了解決這些讓我不爽的地方,我決定自己動手豐衣足食,用為知的API來實現一個更好的?更適合我的筆記客戶端。 於是就有了Neeto-Vue,從名字就可以看出,是用Vue構建的,我使用了堪稱是藝術品的Quasar UI框架,我相信只要是用過它的開發者一定會對它讚不絕口,因為它真的是太完整了,從分割條到右鍵選單,從短通知到無限滾動,應有盡有,因此我在開發Neeto-Vue的過程中幾乎只寫了不到一百行的CSS樣式,可以想象這個開發流程是有多麼順暢,而且它統一的Material風格也讓軟體更加統一,舒適。
Neeto-Vue基於Electron,因此我能很方便地實現全平臺的支援,藉助Github Action我構建了完整的開發工作流,自動構建,自動釋出。 #### 即使渲染Markdown內容 使用開源的markdown編輯器[Vditor](https://ld246.com/article/1549638745630),並優化了介面樣式,相容WizNote Lite筆記。 #### 相容WebClipper剪輯筆記 使用[wiz-markdown](https://www.npmjs.com/package/@altairwei/wiz-markdown)解析庫,能夠相容更多的筆記內容,提升使用體驗。 #### 遷移markdown筆記到Lite資料夾 由於為知的限制,直接在官方服務中將筆記移動到Lite資料夾是沒辦法再Mobile端顯示筆記內容的,我對這一塊做了對應的處理,你只需要在Neeto-Vue中右鍵筆記項,點選移動筆記即可 ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155045016-279388485.png) #### 支援簡單的本地快取 使用Electron-Store來實現筆記的本地快取,加快軟體的載入速度,但是,與此同時需要提醒但是,Neeto-Vue對網路是強需求但,所有同步操作都需要聯網進行,不過完全本地化但離線操作也已經加入計劃,會在未來但某個時間段實現。 ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155045215-1373628822.png) 而後就能很方便的遷移你需要的筆記。 ## 截圖展示 ![](https://img2020.cnblogs.com/news/1883891/202102/1883891-20210203155045650-885582083.png) ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155045914-641042759.png) ![](https://img2020.cnblogs.com/blog/1883891/202102/1883891-20210203155046431-306025544.png) ## 後記 Neeto-Vue還處於一個非常初級的階段,如果只是作為一個線上的編輯器,那他應該已經合格了,這篇文章我是全程在Neeto-Vue上編寫的,並沒有感到什麼不適,因為在這個階段,已經做的足夠好了。 我以前就想過,筆記究竟應該是什麼樣子的,是像印象筆記,專注筆記那樣,格式豐富,支援各種各樣的格式,多樣的多媒體支援,還是像熊掌記一樣,簡單的內容展示方式。前者在支援多種格式的同時也會喪失遷移的相容性,後者也不必說,缺少足夠的格式來展示自己的所思所想,所以必須要在兩者之間做一個抉擇。 **很不好做抉擇,但這是一件值得權衡的事情。** 最後我選擇的這個工作流,在我心裡,較好的平衡了兩者,同時也滿足了我自託管資料的願望,而且自己寫的筆記客戶端也能夠快速地響應我的需求變化,說不定我那天就想著實現雙向筆記連結了呢? ### RoadMap 歡迎前往[Github Project](https://github.com/TankNee/Neeto-Vue/projects/1)頁面檢視軟體的未來計劃 URL:https://github.com/TankNee/Neeto-Vue/projects/1 Neeto-Vue還處於快速迭代和發展中,可能每一個版本都會有巨幅的變化,所以還請時刻關注專案進度,你也可以在設定中檢查軟體更新,隨時更新到最新的支援版本 ![](https://img2020.cnblogs.com/news/1883891/202102/1883891-20210203155047530-860883212.jpg) 你可以前往[Github Release](https://github.com/TankNee/Neeto-Vue/releases)下載最新版的Neeto-Vue Url:https://github.com/TankNee/Neeto-Vue/releases 如果你有任何意見,請前往Gtihub給我留言或者發issue,萬分感謝!