diff --git a/doc/ui/obrowser/mind_sidebar.png b/doc/ui/obrowser/mind_sidebar.png new file mode 100644 index 000000000..3d0b96c08 Binary files /dev/null and b/doc/ui/obrowser/mind_sidebar.png differ diff --git a/doc/ui/core/obrowser.md b/doc/ui/obrowser/obrowser.md similarity index 100% rename from doc/ui/core/obrowser.md rename to doc/ui/obrowser/obrowser.md diff --git a/doc/ui/obrowser/obrowser_chute.md b/doc/ui/obrowser/obrowser_chute.md new file mode 100644 index 000000000..a45996d92 --- /dev/null +++ b/doc/ui/obrowser/obrowser_chute.md @@ -0,0 +1,128 @@ +--- +title: 浏览器侧边栏 +author:zozoh +--- + +------------------------------------------------------------- +# 概述 + +根据 `app sidebar` 命令执行的结果,渲染出浏览器的侧边栏 + +------------------------------------------------------------- +# JSON渲染结果 + +```js +{ + list : [{ + name : "data" + mode : "normal", + title : "i18n:xx.xx.xx", + limit : 3, + limitCount : "pin", + folding : true, + items : [{ + ph : "/path/to/obj", + text : 'xxx', // 默认的显示文字 obj.title > text > obj.nm + icon : '<..>', // 默认的icon obj.icon > icon > obj.tp ICON + editor : "thing2", // 默认使用的编辑器, obj.editor > editor + pin : true, + obj : {/*一个 WnObj 数据*/} + }, {/*..*/}] + }, { + mode : "dropdown", + title : "i18n:xx.xx.xx", + items : [] + }, { + mode : "filter", + title : "i18n:xx.xx.xx", + fltKey : "belong_to", + fltBy : "0", + items : [{ + ph : "/path/to/obj", + editor : "thing2", + pin : true, + obj : {/*一个 WnObj 数据*/} + }, {/*..*/} + }] +} +``` + +------------------------------------------------------------- +# HTML渲染结果 + +`app sidebar -html` 输出的渲染结果为 + +```html + +
+

i18n:xx.xx.xx

+ +
+ 更多 + +
+
+ +
+

i18n:xx.xx.xx

+ + +
+ +
+

i18n:xx.xx.xx

+ +
+ 更多 + +
+
+``` + +------------------------------------------------------------- +# 思考过程 + +![](mind_sidebar.png) \ No newline at end of file diff --git a/doc/ui/core/obrowser_editor.md b/doc/ui/obrowser/obrowser_editor.md similarity index 100% rename from doc/ui/core/obrowser_editor.md rename to doc/ui/obrowser/obrowser_editor.md diff --git a/src/org/nutz/walnut/ext/app/cmd_app_sidebar.md b/src/org/nutz/walnut/ext/app/cmd_app_sidebar.md index ce49b3779..5eb6397cf 100644 --- a/src/org/nutz/walnut/ext/app/cmd_app_sidebar.md +++ b/src/org/nutz/walnut/ext/app/cmd_app_sidebar.md @@ -1,45 +1,52 @@ # 命令简介 - `app sidebar` 命令用来得到某个域的侧边栏项目 +`app sidebar` 命令用来得到某个域的侧边栏项目 - 实际上,命令会读取一个 JSON 配置文件,格式如下 - - [{ - title : "i18n:my.sidebar.g0", - items : [{ - ph : '/path/to/file', - icon : '', // 图标,默认用对象的设定 - text : 'i18n:xxx', // 文字,默认用对象的名称 - editor : 'xxx' // 编辑器,默认用对象关联的编辑器 - dynamic : false // 是否为动态生成 - }, { - // 动态执行: 命令的输出结果类型一组对象的 json 列表 - type : "objs" - cmd : "obj ~/* -l -json" - }, { - // 动态执行: 命令的输出结果是 item 本身 - type : "items" - cmd : "xxx" - }] + 实际上,命令会读取一个 JSON 配置文件,格式如下 + +```js +[{ + title : "i18n:my.sidebar.g0", + items : [{ + ph : '/path/to/file', + icon : '', // 图标,默认用对象的设定 + text : 'i18n:xxx', // 文字,默认用对象的名称 + editor : 'xxx' // 编辑器,默认用对象关联的编辑器 + dynamic : false // 是否为动态生成 + }, { + // 动态执行: 命令的输出结果类型一组对象的 json 列表 + type : "objs" + cmd : "obj ~/* -l -json" + }, { + // 动态执行: 命令的输出结果是 item 本身 + type : "items" + cmd : "xxx" }] +}] +``` - 配置文件的位置,默认被认为在 /etc/ui/sidebar.js ,用户可以通过环境变量 SIDEBAR 来随时指定其他位置 + 配置文件的位置的查找顺序为: + + 1. 命令参数 `[0]` + 2. 环境变量 `SIDEBAR` + 3. 命令参数 `-dft` + 4. 系统默认 `/etc/ui/sidebar.js` # 使用方法 app sidebar [-cq] [-html] [/path/to/sidebar.js] [-dft /path/to/sidebar.js] ------------------------------------------- - Path 为配置文件的位置,如果不声明则看环境变量,还没有,就默认采用 /etc/sidebar + Path 指明配置文件的位置 -c 按json输出时,紧凑显示 -q 按json输出时,键值用双引号包裹 - -dft 指明路径是默认路径 + -dft 指明默认配置文件路径 -html 是按照 HTML 输出,默认关闭。是按照 JSON 输出的 # 实例 - # 输出本用户的侧边栏 + # 输出本用户的侧边栏的 JSON 格式 app sidebar # 指定某个侧边栏配置文件,并安 HTML 输出