diff --git a/etc/miss.sh b/etc/miss.sh
index 8e671a99..dc675056 100644
--- a/etc/miss.sh
+++ b/etc/miss.sh
@@ -29,4 +29,4 @@ _prepare_ttc() {
ish_sys_link_create ~/.vim_local.vim $PWD/etc/conf/vim_local.vim
if tmux -V; then ish_miss_prepare_session miss miss; else ish_miss_serve_log; fi
}
-ish_miss_make; if [ -n "$*" ]; then ish_miss_serve "$@"; else _prepare_ttc; fi
+ish_miss_make
diff --git a/src/document/started/about/introduction.shy b/src/document/started/about/introduction.shy
index 6f57e4d7..004cfe0f 100644
--- a/src/document/started/about/introduction.shy
+++ b/src/document/started/about/introduction.shy
@@ -1,3 +1,12 @@
title "Contexts"
spark `contexts 是一个功能完备的工具系统。`
+order `
+contexts 是一个工具箱,内置了很多实用的工具,开箱即用,每个工具即可以在命令行中使用,又可以在网页中使用。
+contexts 使用 golang 开发,完全跨平台,支持 Linux、macOS、Windows 等,一套工具箱,即可所有平台都可以使用。
+contexts 是一个工具框架,成千上万种工具,可以自由选择,快速构建自己专属的工具系统。
+contexts 也是一个开发工具箱,集成了开发常用的工具,如编辑器、编译器,实现自举,可快速开发出新工具模块。
+contexts 构建完成后只有 20M 大小,方便传输与存储。
+contexts 支持启动脚本,每个工具都可以灵活配置。
+contexts 内置数据库,不需要外部数据库,即可以快速开发出一个完整的服务端应用。
+`
diff --git a/src/document/started/development/demo.go b/src/document/started/development/demo.go
new file mode 100644
index 00000000..5ba0a889
--- /dev/null
+++ b/src/document/started/development/demo.go
@@ -0,0 +1,13 @@
+package demo
+
+import "shylinux.com/x/ice"
+
+type demo struct {
+ list string `name:"list name auto" help:"示例模块"`
+}
+
+func (s demo) List(m *ice.Message, arg ...string) {
+ m.Echo("hello world")
+}
+
+func init() { ice.Cmd("web.code.demo", demo{}) }
diff --git a/src/document/started/development/main.go b/src/document/started/development/main.go
new file mode 100644
index 00000000..4642ca19
--- /dev/null
+++ b/src/document/started/development/main.go
@@ -0,0 +1,8 @@
+package main
+
+import (
+ "shylinux.com/x/ice"
+ _ "shylinux.com/x/icebergs/misc/alpha"
+)
+
+func main() { ice.Run() }
diff --git a/src/document/started/development/module.shy b/src/document/started/development/module.shy
new file mode 100644
index 00000000..bceea466
--- /dev/null
+++ b/src/document/started/development/module.shy
@@ -0,0 +1,11 @@
+chapter "创建模块"
+spark `如果框架自带的模块,或是网上找不到需要的功能模块,可以自行开发。contexts 自带了完整的前后端框架与工具,可快速开发出完整的功能模块。`
+
+section "添加代码"
+spark `将 demo 替换成所需的模块名,创建目录并添加如下代码。`
+shell `
+mkdir src/demo/
+vi src/demo/demo.go
+`
+spark inner src/document/started/development/demo.go
+
diff --git a/src/document/started/development/project.shy b/src/document/started/development/project.shy
new file mode 100644
index 00000000..f280dc6b
--- /dev/null
+++ b/src/document/started/development/project.shy
@@ -0,0 +1,41 @@
+title "创建项目"
+
+spark `当 contexts 自带的工具,无法满足使用需求时,可以基于 contexts 快速创建出新的项目。
+
+`
+chapter "创建项目"
+section "初始化项目"
+spark `根据项目名,创建一个新目录,将这里的 demo 换成自己的项目名,并初始化项目。`
+shell `
+mkdir demo
+cd demo
+go mod init demo
+`
+
+section "添加代码"
+spark `添加 main.go,并输入以下内容。`
+shell `
+mkdir src
+vi src/main.go
+`
+
+spark inner `
+package main
+
+import "shylinux.com/x/ice"
+
+func main() { ice.Run() }
+`
+
+section "编译构建"
+spark `添加依赖并编译`
+shell `
+go get shylinux.com/x/ice
+go build -o bin/ice.bin src/main.go
+`
+
+chapter "添加模块"
+spark `contexts 所有功能,都是模块化开发。所以完全独立,可自由的组合与选择。只需要在需要的地方 import 一下即可,自动加载与注册。如下添加英汉词典的模块。`
+
+spark inner src/document/started/development/main.go
+
diff --git a/src/document/started/index.shy b/src/document/started/index.shy
index 7fc0ca48..3820b514 100644
--- a/src/document/started/index.shy
+++ b/src/document/started/index.shy
@@ -2,21 +2,38 @@ navmenu `
"About" about/
Introduction introduction.shy
License license.shy
+
"下载安装" install/
"快速下载" quick.shy
"手动下载" manual.shy
"源码编译" source.shy
- "创建项目" project.shy
+
"使用方式" interfaces/
"命令式" cli.shy
"网页式" web.shy
+
"基础功能" using/
+ "笔记文档" note.shy
+ "任务计划" plan.shy
+ "编辑器" vimer.shy
+ "应用桌面" desktop.shy
"创建空间" space.shy
+ "组建集群" cluster.shy
+ "认证授权" auth.shy
+
"应用管理" managing/
+ "目录结构" config.shy
"启动配置" config.shy
+ "启动参数" config.shy
+ "环境变量" config.shy
+ "日志文件" config.shy
+ "进程控制" config.shy
+ "应用数据" config.shy
+
"功能开发" development/
- "创建项目" config.shy
- "创建模块" config.shy
+ "创建项目" project.shy
+ "创建模块" module.shy
+
"架构原理" development/
"启动流程" config.shy
"事件消息" config.shy
diff --git a/src/document/started/install/manual.shy b/src/document/started/install/manual.shy
index 01862f1c..797a7f0b 100644
--- a/src/document/started/install/manual.shy
+++ b/src/document/started/install/manual.shy
@@ -2,7 +2,7 @@ title "手动下载"
spark `如果有其它需要,如下载不同系统或不同架构的 bin 文件,可手动下载。如下,使用 wget 或 curl 命令,下载所需 bin 文件。
其中 linux 替换成所需系统名如 darwin、windows 等,amd64 替换成所需的架构名如 x86、arm 等`
web.code.publish binary
-spark `添加执行权限,并重命名文件`
+spark `添加执行权限,并重命名文件。`
shell `
chmod u+x ice.linux.amd64
mdkir bin; mv ice.linux.amd64 bin/ice.bin
diff --git a/src/document/started/install/project.shy b/src/document/started/install/project.shy
deleted file mode 100644
index 096c3311..00000000
--- a/src/document/started/install/project.shy
+++ /dev/null
@@ -1,13 +0,0 @@
-title "创建项目"
-
-spark `当 contexts 自带的工具,无法满足使用需求时,可以基于 contexts 快速创建出新的项目。
-从网上搜索基于 contexts 开发的模块,通过 import 直接引入即可。或是直接自己开发新的工具模块。
-
-`
-section "创建项目"
-field "" web.code.inner style output
-
-section "创建模块"
-field "" web.code.inner args `usr/icebergs/ misc/node/node.go` style output
-
-
diff --git a/src/document/started/install/quick.shy b/src/document/started/install/quick.shy
index e2099965..ddd10e87 100644
--- a/src/document/started/install/quick.shy
+++ b/src/document/started/install/quick.shy
@@ -1,7 +1,7 @@
title "快速下载"
-spark `contexts 使用 golang 开发,所以编译后只有一个 bin 文件。直接下载即可使用`
-spark `为了方便下载,可以直接使用如下命令。自动识别出操作系统与处理器类型,下载对应的 bin 文件,并自动启动服务。`
-spark `点击即可下面命令,即可直接复制`
+spark `contexts 使用 golang 开发,所以编译后只有一个 bin 文件。直接下载即可使用。`
+spark `为了方便下载并快速启动,可以使用如下命令。自动识别出操作系统与处理器类型,下载对应的 bin 文件,并自动启动服务。`
+spark `点击下面命令,即可直接复制命令。`
web.code.publish contexts
spark warning `contexts 有组建集群的功能,为了快速组建集群,这条命令也带了连接远程服务器的功能。`
spark warning `如果远程服务器是自己搭建的,或是可信的服务,可直接执行。`
diff --git a/src/document/started/install/source.shy b/src/document/started/install/source.shy
index 9cb721f5..05a27ff5 100644
--- a/src/document/started/install/source.shy
+++ b/src/document/started/install/source.shy
@@ -1,13 +1,16 @@
title "源码编译"
-spark `
-如果想了解 contexts 的源码与原理,可以直接下载源码,自己编译后再启动。
+spark `如果想了解 contexts 的源码与原理,可以直接下载源码,自己编译后再启动。`
+spark `编译 contexts 需要提前安装好以下软件`
+refer `
+make https://www.gnu.org/software/make/
+git https://git-scm.com/download
+golang https://golang.google.cn/dl/
`
-spark `
-需要安装好 make git golang
-`
-
web.code.publish source
shell `
-make
+cd contexts
+source etc/miss.sh
`
+
+spark `执行 etc/miss.sh 脚本,会自动下载所需要的依赖,并编译项目。`
diff --git a/src/document/started/interfaces/web.shy b/src/document/started/interfaces/web.shy
index befc0d3a..f864577e 100644
--- a/src/document/started/interfaces/web.shy
+++ b/src/document/started/interfaces/web.shy
@@ -2,6 +2,8 @@ title "网页交互"
spark `contexts 提供了网页接口,所有的功能模块,都可以通过网页来使用。`
chapter "启动服务"
+spark `通过网页使用 contexts 前,需要先启动 web 服务器。`
+
section "直接启动"
spark `serve 命令直接启动服务。`
shell `./bin/ice.bin serve start`
@@ -13,21 +15,25 @@ spark `forever 启动守护进程后,会自动启动服务进程,当服务
shell `./bin/ice.bin forever start`
section "容器启动"
-spark `容器启动命令与前相同,但访问时需要登录认证。`
-spark `contexts 默认会开启 IP 认证授权,只有通过本机访问的请求,才会免登录。`
+spark `contexts 使用 golang 开发,完全跨平台,支持 Linux、macOS、Windows 等。`
+spark `并且 contexts 只有一个 bin 文件,运行时生成的所有文件,也只在当前目录。所以只要删除这个目录,就不会在系统上留下任何痕迹。`
+spark `但有时,也会用到容器部署,在容器中,也只需要下载一个 bin 文件即可,惟一的区别是需要登录认证。`
+spark `因为 contexts 默认会开启 IP 认证授权,只有通过本机访问的请求,才会免登录。`
spark `但通过容器启动或远程服务器启动的 contexts,访问时都需要登录认证。`
chapter "使用方式"
+spark `在 contexts 中,所有的工具,即可以添加到导航栏,通过结构化的组织起来,也可以搜索框被快速查找出来,还可以通过 URL 地址,直接在单独的网页中使用。`
+
section "导航式"
-spark `contexts 启动后,可直接访问 http://localhost:9020/chat/portal/,打开后台管理系统。`
-spark `后台管理系统导航栏的内容,都是在 src/main.js 文件中定义的。如需自定义,直接修改即可。`
+spark `contexts 启动后,可直接访问 http://localhost:9020/chat/portal/,即可打开后台管理系统。`
+spark `后台管理系统导航栏的内容,都是在 src/main.js 文件中定义的。如需自定义,直接此文件修改即可。`
spark `contexts 也提供了界面添加功能,点击创建后,依次添加群组、添加应用、添加工具,即可动态自动定义导航栏。`
iframe "http://localhost:9020"
section "搜索式"
-spark `默认后台管理系统,会提供一个搜索框,搜索到命令后会在结果栏中自动创建工具界面,即可立即使用此工具。`
+spark `默认后台管理系统,会提供一个搜索框,所有的工具都可以通过搜索,直接在结果栏中展示,即可快速使用此工具。`
iframe "http://localhost:9020?_search=tcp.host"
section "命令式"
-spark `所有的工具,都可以通过 URL 直接访问使用,如工具 web.team.plan 的 URL 是 http://localhost:9020/chat/cmd/web.team.plan,界面如下所示`
+spark `所有的工具可以通过 URL 直接访问使用,如工具 web.team.plan 的 URL 是 http://localhost:9020/chat/cmd/web.team.plan,界面如下所示`
iframe "http://localhost:9020/chat/cmd/web.team.plan"
diff --git a/src/document/started/using/auth.shy b/src/document/started/using/auth.shy
new file mode 100644
index 00000000..e9d09532
--- /dev/null
+++ b/src/document/started/using/auth.shy
@@ -0,0 +1,28 @@
+title "认证授权"
+spark `contexts 有多种认证方式,但就是坚决不支持密码。`
+
+chapter "自动认证"
+spark `服务启动时,会自动获取本机的用户名,来作为根用户,从本机发出的所有请求都会默认使用此用户,拥有所有操作的权限。
+所以在浏览器直接访问 http://localhost:9020 是不需要认证,会自动登录。`
+spark `但如果机器是共享机器,是和其它用户共享的,就需要关闭自动认证
+如果启动命令,还在还终端的前台运行,直接中执行 serve domain ""
即可。
+也可以在启动脚本 ./etc/init.shy
或 ./etc/local.shy
中,添加如下两行代码,禁用自动认证。`
+spark inner `
+~web
+ serve domain ""
+` args "etc/local.shy"
+
+chapter "授权认证"
+spark `contexts 并没有提供密码登录,因为密码是非常不安全,且会给用户添加很多负担。
+所以在其它设备上,访问本机的服务,或是其他用户访问,就需要已经登录的用户来授权认证。`
+
+section `授权登录`
+
+section `邀请登录`
+
+chapter "认证中心"
+spark `如果服务启动时,连接了远程服务,远程服务节点会自动成为认证中心。
+当其他用户访问本机的服务时,如果没有登录,则会自动跳转到远程服务的网页中进行认证,认证成功后,再将用户信息带回来,从而自动登录本机。
+所以,在一个集群中的所有设备,只要有一台设备存储用户信息,其它所有设备,都可以实现自动登录。
+`
+section `远程权限`
diff --git a/src/document/started/using/cluster.shy b/src/document/started/using/cluster.shy
new file mode 100644
index 00000000..598402c4
--- /dev/null
+++ b/src/document/started/using/cluster.shy
@@ -0,0 +1,27 @@
+title "组建集群"
+spark `contexts 既可以在一台机器上,启动任意多个工作空间。也可以把多台机器组网到一起。在 contexts 看来,本机的工作空间,与其它设备上的工作空间是没有区别的,使用方式完全一样。`
+spark `因为现在每个人都可能会有很多台电脑,比如笔记本、台式机、开发机、服务器、开发板等,每台设备上的软件都需要下载、安装、配置,还要不断的同步数据,这是一个非常复杂且浪费时间的事情。`
+spark `使用 contexts 就可以很方便的,管理起这么多种设备和软件。只需要构建一个 contexts 项目,选择自己的工具集合,就可以通过交叉编译,生成各种操作系统上可运行的软件。`
+spark `contexts 还会自动组网,将所有设备连接到一起。通过任意一台设备,都可以使用其它设备上的所有工具与数据。即使这些设备不在一起,比如公司的电脑和家里的电脑。`
+
+chapter "启动服务"
+spark `contexts 服务启动时,默认的会启动集群的功能,本机的工作空间与其它机器的连接此服务的方式都是一样,惟一不同中的是,为了安全,子设备的名称是用 IP+Port,如需自定义需要认证授权后才行。`
+shell `./bin/ice.bin forever start`
+
+chapter "连接服务"
+spark `在另一台设备上,同样下载好 contexts,并启动服务,在启动命令后加上参数"dev xxx",指定需要连接的服务节点即可。`
+shell `./bin/ice.bin forever start dev "http://192.168.10.12:9020"`
+
+chapter "访问子设备"
+spark `当子设备的服务起动成功,并连接上父设备后,就可以把子设备当成父设备的工作空间来使用。`
+section "打开子设备"
+spark `如果导航栏未定制,在左边导航栏中打开运维群 -> 应用,然后在右边工作区中,找到 space,即空间管理的工具。`
+spark ``
+iframe "http://localhost:9020/chat/portal/?river=operate&storm=web&index=space"
+spark `或在搜索框中,直接搜索 space 即可打开空间管理的工具。搜索结果如果有多个,需要手动选择,点击"ctx command web space"一行,才会打开 space 工具。`
+spark ``
+iframe "http://localhost:9020?_search=space"
+spark `或是直接打开命令网页,`
+iframe "http://localhost:9020/chat/cmd/web.space"
+spark `在空间列表中,找到新启动的子设备,点击打开,即可进入子空间的管理界面。`
+
diff --git a/src/document/started/using/demo.shy b/src/document/started/using/demo.shy
new file mode 100644
index 00000000..60bde42a
--- /dev/null
+++ b/src/document/started/using/demo.shy
@@ -0,0 +1,5 @@
+refer `
+首页 http://localhost:9020
+官网 http://localhost:9020/wiki/portal/
+后台 http://localhost:9020/chat/portal/
+`
diff --git a/src/document/started/using/desktop.shy b/src/document/started/using/desktop.shy
new file mode 100644
index 00000000..6ab9ed3d
--- /dev/null
+++ b/src/document/started/using/desktop.shy
@@ -0,0 +1,13 @@
+title "电脑桌面"
+spark `contexts 是一个工具系统,内置了很多软件工具。这些工具可以像本机电脑桌面一样,用图标与窗口来使用所有的应用。`
+spark `web.chat.macos.desktop 工具就是 contexts 的电脑桌面。`
+spark ``
+field "" web.chat.macos.desktop style output
+
+spark `在桌面的左上角,可以桌面 + 号,创建新的桌面。每个桌面上可以打开不同的应用工具。`
+spark `打开 dock 工具栏中的 finder,即可查看所有应用列表。`
+spark `在 contexts 中,每个工作空间,都有自己的电脑桌面与应用列表,通过配置文件,可以将任意工具添加到应用列表中。
+应用列表中的所有应用,可以随时添加到桌面与工具栏中。`
+
+spark `同样的,电脑桌面 web.chat.macos.desktop,只是 contexts 的一个工具,可以添加到导航栏中,也可以在搜索框中使用,甚于可以内嵌在任何其它工具中使用。`
+
diff --git a/src/document/started/using/note.shy b/src/document/started/using/note.shy
new file mode 100644
index 00000000..9d54c9f7
--- /dev/null
+++ b/src/document/started/using/note.shy
@@ -0,0 +1,55 @@
+title "笔记文档"
+brief `web.wiki.word 是 contexts 用来管理笔记与文档的工具,contexts 的文档以 .shy 作为文件格式的后缀。
+语法也非常简单,就是命令加参数,像命令行一样使用。其中命令就是 contexts 中的所有的工具名。
+所以 contexts 中的所有工具都可以在文档中直接使用。`
+spark `包括 contexts 的官网,web.wiki.portal,也只是在 web.wiki.word 上包装了一个布局和路由而已。
+官网的所有内容也是用 .shy 文档来保存的,其中所有的内容在 web.wiki.word 中也一样显示。
+`
+spark `contexts 的文档不需要单独存放,直接和代码在一起,都在 src 目录下,contexts 在构建时,会根据代码结构,将对应的文档打包进 bin 文件中。`
+
+chapter "使用方式"
+spark `同样的,web.wiki.word 工具,也是可以在导航栏中、在搜索栏中、在单独的网页中都能使用,甚至可以被任何其它的工具嵌套使用。如被 web.wiki.portal 嵌套。`
+spark `其中 web.wiki.word 的参数栏中,第一个输入框,是文档的文件名,输入需要查看的文档的文件名即可查看此文档。
+在命令网页中,如下添加参数 path 即可指定文档的文件名。`
+spark ``
+spark `其中参数有空格或其它特殊字符,需要加引号,单引号、双引号、反引号,其中反引号中的文字可以跨行。`
+
+chapter "常用命令"
+section "文字类"
+spark `文字类的命令很简单,常用的就 title、chapter、section、spark。`
+spark inner `
+title "文章标题"
+chapter "章节标题"
+section "分节标题"
+brief "摘要文字"
+spark "段落文字"
+` args "src/ main.shy"
+
+spark `spark 命令还支持子命令,如 title、inner、shell、button 等,
+如需其它文字格式,可自行添加 spark 的子命令,只需要在 src/template/web.wiki.spark/ 目录下添加同名的模板文件即可。`
+
+spark inner `
+spark inner "代码文字"
+spark shell "命令文字"
+shell "命令文字"
+` args "src/ main.shy"
+
+spark `其中 shell 命令并不一个单独的命令,只是 spark shell 的别名而已。
+还有 chapter 也是 title chapter 的别名,section 也是 title section 别名。`
+
+section "数据类"
+spark inner src/document/started/using/demo.shy
+spark `refer 命令,引用列表,样式如下`
+refer `
+首页 http://localhost:9020
+官网 http://localhost:9020/wiki/portal/
+后台 http://localhost:9020/chat/portal/
+`
+
+section "影音类"
+spark `影音类的文件,存放在 ./usr/local/image/ 目录下。当然参数也可以是一个完整的 URL 地址,直接引用外部的资源文件。`
+spark inner `
+image background.jpg
+video some.mov
+audio some.mp3
+` args "src/ main.shy"
diff --git a/src/document/started/using/plan.shy b/src/document/started/using/plan.shy
new file mode 100644
index 00000000..cdd9515c
--- /dev/null
+++ b/src/document/started/using/plan.shy
@@ -0,0 +1,11 @@
+title "任务计划"
+spark `web.team.plan 是 contexts 用来管理任务与计划的工具,此外在状态栏中附加了另外三个工具 web.team.todo、web.team.task、web.team.epic `
+spark ``
+field "" web.team.plan
+spark `web.team.plan 提供了日视图、周视图、月视图、年视图、长视图等,不同的时间维度来展示任务列表。
+双击时间的单元格,即可打开创建任务的对话框。其中 zone 与 name 是必选参数,指定分类与名称。
+单击任务,在任务表的右侧,即可显示出任务详情。`
+spark `web.team.plan 工具,看上去功能很简单,但却不简单,因为在 contexts 中,所有的工具,都可以嵌套任何其它工具,甚至子空间、子设备中的所有工具。
+给任何一个任务,都可以绑定一个工具。在详情中,点击插件,输入工具名与参数,即可在任务选中时,在时间表下面显示工具,可以直接使用。
+所以对于 web.team.plan 来说,它就是一个时间的框架,用时间的维度,将所有的工具显示在时间表中。`
+spark `同样适用于 contexts 系统中其它所有工具,每一个工具都以自己的数据逻辑,将其它所有的工具、空间、设备,组织在一起。所以每个工具,都是一个操作系统。`
diff --git a/src/document/started/using/space.shy b/src/document/started/using/space.shy
index 0b2dda03..55800a3d 100644
--- a/src/document/started/using/space.shy
+++ b/src/document/started/using/space.shy
@@ -1 +1,40 @@
-title "space"
+title "工作空间"
+spark `contexts 下载并启动后,会以当前运行目录为工作空间,加载启动脚本和保存数据与文件。`
+spark `contexts 不推荐使用全局的资源或家目录的文件,为了减少全局依赖与资源冲突。从而可以在一台机器上启动任意多个空间。`
+spark `contexts 推荐使用空间来管理项目与任务。contexts 每个空间都是一个独立的目录,与独立的守护进程。
+每个空间即可以使用相同的 contexts,也可以使用不同的 contexts,即不同的工具集合。因为每个项目内容可能是不一样的,使用的工具也可能是不一样的。`
+
+chapter "创建空间"
+section "启动服务"
+spark `首先,启动 contexts 服务。并打开后台管理系统。`
+shell `
+./bin/ice.bin forever start
+open http://localhost:9020
+`
+
+section "打开工具"
+spark `如果导航栏未定制,在左边导航栏中打开运维群 -> 应用,然后在右边工作区中,找到 dream,即空间管理的工具。`
+spark ``
+iframe "http://localhost:9020/chat/portal/?river=operate&storm=web&index=web.dream"
+spark `或在搜索框中,直接搜索 dream 即可打开空间管理的工具。`
+spark ``
+iframe "http://localhost:9020?_search=dream"
+spark `或是直接打开命令网页,`
+iframe "http://localhost:9020/chat/cmd/web.dream"
+
+section "创建空间"
+spark `点击工具栏中的创建按钮,即可打开创建对话框。`
+spark `空间创建有 name、repos、binary、template 四个参数,其中 name 是必选参数,指定项目名,创建空间时,contexts 会默认给项目名加一个时间前缀。`
+order `
+repos 指定 git 仓库地址,contexts 将此仓库下载到本地,然后把此目录当成工作空间。
+binary 指定 bin 文件,contexts 会自动下载并使用这个 bin 文件,来启动守护进程。
+template 指定模板目录,空间创建时,会从模板目录中复制所需要的文件。
+`
+spark `空间创建成功后,会在 ./usr/local/work 目录下创建一个空间的目录。并启动一个守护进程。
+守护进程会自动连接服务进程,从而使用服务进程提供的网页,来访问此空间。`
+
+section "使用空间"
+spark `空间创建成功后,会自动打开空间首页。之后也可以在空间工具中,随时打开任意空间的首页。`
+spark `空间打开后,即可在这个空间中,使用任意工具,去完成自己的工作。`
+spark `所有的工具产生的数据与文件,也只会保存在自己空间目录下,不会对其它空间有任何影响。`
+spark `如果当前空间下的工具,不能满足使用,也可以随时开发,创建新的工具。`
diff --git a/src/document/started/using/vimer.shy b/src/document/started/using/vimer.shy
new file mode 100644
index 00000000..33e6a874
--- /dev/null
+++ b/src/document/started/using/vimer.shy
@@ -0,0 +1,5 @@
+title "编辑器"
+
+spark `web.code.vimer 是 contexts 自带的编辑器。`
+
+field web.code.vimer
diff --git a/src/main.shy b/src/main.shy
index 144d10be..d77a4d49 100644
--- a/src/main.shy
+++ b/src/main.shy
@@ -15,7 +15,6 @@ chapter "项目"
label `
intshell icebergs volcanos
contexts toolkits learning
-go-git release matrix
` index web.code.git.spide
section "火山架"
@@ -51,5 +50,3 @@ field "趋势图" web.code.git.trend args `intshell`
field "架构图" web.code.git.spide args `intshell`
spark README.md
-
-source h2/h2.shy