最近兩個月(2018.05-2018.06),我花費了大量的業餘時間對xnote進行了打磨,相比於1.0版本的羞澀,如今的xnote已經能夠很流暢的使用了。這個版本包含了一系列的更新,最重要的主頁的更新和擴展命令的加強。html
首頁
1.4版本的時候界面尚未統一的樣式,各個地方也比較粗糙,1.5版本對不少頁面進行了統一的調整,同時主頁也採用了傳統的博客主頁設計(以前首頁設計成突出分類是考慮到知識庫的定位,可是實際使用過程當中仍是須要優先把最近添加的內容展現出來的)。下面是一些對比的截圖。python
舊版首頁linux
新版首頁git
擴展命令
通過一段時間的調整,擴展命令已經能夠知足個人不少自定義的需求了。下面我將詳細介紹一下擴展命令的使用。shell
擴展命令定義很簡單,在scripts/commands
目錄下增長一個python文件,定義一個main方法就能夠了,你能夠自由調用xnote的api(主要是xutils模塊,目前命名比較ugly,後續改進),寫過C語言的同窗對此應該很是熟悉api
main方法傳入的參數以下瀏覽器
- path 當前的目錄或者文件路徑
- input 輸入的參數
- confirmed 是否確認執行,用於危險操做,好比刪除文件
**kw
必定要定義一個keywords參數,方便向後兼容
首先進入命令列表緩存
而後咱們打開calc.py進行編輯app
這個命令很簡單,調用python的eval命令計算數學公式,運行一下結果以下,點擊目錄或者文件上的更多按鈕,會出現一個彈層,而後運行命令calc 10 + 20
便可工具
linux平臺提供了那麼多好用的工具,怎麼可以錯過呢!!!,這裏提供一個簡單的sh命令,你能夠輕鬆調起系統命令,並且根據path參數可以自動設置當前的工做目錄
import xutils import os import subprocess # TODO 檢查命令超時 def main(path = None, input='', **kw): if input == '': print('請輸入命令謹慎執行') else: try: p = subprocess.Popen(input, cwd=path, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out = p.stdout.read() err = p.stderr.read() print(out.decode('utf-8')) print(err.decode('utf-8')) p.stdout.close() p.stderr.close() finally: pass
運行結果以下
看起來不天然,不要緊!別名也是支持的,還記得initScript啓動參數嗎,設置一個啓動腳本,定義以下的別名
import xconfig xconfig.set_alias('ll', 'sh ls -lh') xconfig.set_alias('ls', 'sh ls')
是否是很酷,感興趣的小夥伴們趕忙下載體驗一下,歡迎提交ISSUE和PR!有任何建議歡迎交流,項目地址
下一步的計劃
- 繼續統一和優化界面
- 優化擴展命令的使用體驗
- 筆記的歷史版本
- 性能提高,主要是經過加緩存
附:Release Log
新增
- [x] 擴展命令confirmed參數,input輸入參數
- [x] 擴展命令再也不顯示按鈕
- [x] 擴展命令支持html格式
- [x] 擴展命令的別名alias
- [x] 頁面擴展scripts/pages
- [x] 文件瀏覽器分欄模式
- [x] 筆記的數據報表-總體狀況,環比,同比
- [x] 監聽文檔的新增、重命名事件,實時更新name的緩存
- [x] 搜索不強制要求登陸,能夠搜索公開的筆記
- [x] 瀏覽器標籤頁顯示文檔標題
更新
- [x] 主界面優化,增長側邊欄統計數據
- [x] 用戶管理優化,左右分欄模式
- [x] 優化刪除線按鈕,已經加上刪除線的再點擊取消刪除線
修復
- [x] 若干API的錯誤
- [x] 擴展命令的編輯超連接
- [x] Fix
/fs_shell
連接異常,xutils.get_real_path
沒有判斷參數爲None
刪除
api/monitor_task
,彷佛一直沒有用過system/app_admin
使用文件管理便可code/code_format
沒怎麼用過tools/httpd
沒什麼用處tools/http_proxy
沒什麼用note/table.html
廢棄