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
+
+
+
+
+
+
+```
+
+-------------------------------------------------------------
+# 思考过程
+
+![](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 输出