xnote1.5——WebShell

最近两个月(2018.05-2018.06),我花费了大量的业余时间对xnote进行了打磨,相比于1.0版本的羞涩,现在的xnote已经可以很流畅的使用了。这个版本包含了一系列的更新,最重要的主页的更新和扩展命令的增强。

首页

1.4版本的时候界面还没有统一的样式,各个地方也比较粗糙,1.5版本对很多页面进行了统一的调整,同时主页也采用了传统的博客主页设计(之前首页设计成突出分类是考虑到知识库的定位,但是实际使用过程中还是需要优先把最近添加的内容展示出来的)。下面是一些对比的截图。

旧版首页

old-1.4.png

新版首页

now-1.5.png

扩展命令

经过一段时间的调整,扩展命令已经可以满足我的很多自定义的需求了。下面我将详细介绍一下扩展命令的使用。

扩展命令定义很简单,在scripts/commands目录下增加一个python文件,定义一个main方法就可以了,你可以自由调用xnote的api(主要是xutils模块,目前命名比较ugly,后续改进),写过C语言的同学对此应该非常熟悉

main方法传入的参数如下

  • path 当前的目录或者文件路径
  • input 输入的参数
  • confirmed 是否确认执行,用于危险操作,比如删除文件
  • **kw 一定要定义一个keywords参数,方便向后兼容

首先进入命令列表

命令列表.png

然后我们打开calc.py进行编辑

编辑命令.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 废弃

转载于:https://my.oschina.net/u/1426689/blog/1841118

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值