xnote1.5——WebShell

最近兩個月(2018.05-2018.06),我花費了大量的業餘時間對xnote進行了打磨,相比於1.0版本的羞澀,如今的xnote已經能夠很流暢的使用了。這個版本包含了一系列的更新,最重要的主頁的更新和擴展命令的加強。html

首頁

1.4版本的時候界面尚未統一的樣式,各個地方也比較粗糙,1.5版本對不少頁面進行了統一的調整,同時主頁也採用了傳統的博客主頁設計(以前首頁設計成突出分類是考慮到知識庫的定位,可是實際使用過程當中仍是須要優先把最近添加的內容展現出來的)。下面是一些對比的截圖。python

舊版首頁linux

old-1.4.png

新版首頁git

now-1.5.png

擴展命令

通過一段時間的調整,擴展命令已經能夠知足個人不少自定義的需求了。下面我將詳細介紹一下擴展命令的使用。shell

擴展命令定義很簡單,在scripts/commands目錄下增長一個python文件,定義一個main方法就能夠了,你能夠自由調用xnote的api(主要是xutils模塊,目前命名比較ugly,後續改進),寫過C語言的同窗對此應該很是熟悉api

main方法傳入的參數以下瀏覽器

  • path 當前的目錄或者文件路徑
  • input 輸入的參數
  • confirmed 是否確認執行,用於危險操做,好比刪除文件
  • **kw 必定要定義一個keywords參數,方便向後兼容

首先進入命令列表緩存

命令列表.png

而後咱們打開calc.py進行編輯app

編輯命令.png

這個命令很簡單,調用python的eval命令計算數學公式,運行一下結果以下,點擊目錄或者文件上的更多按鈕,會出現一個彈層,而後運行命令calc 10 + 20便可工具

運行結果.png

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

運行結果以下

sh命令.png

看起來不天然,不要緊!別名也是支持的,還記得initScript啓動參數嗎,設置一個啓動腳本,定義以下的別名

import xconfig
xconfig.set_alias('ll', 'sh ls -lh')
xconfig.set_alias('ls', 'sh ls')

ll命令.png

是否是很酷,感興趣的小夥伴們趕忙下載體驗一下,歡迎提交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 廢棄
相關文章
相關標籤/搜索