1
0
forked from x/ContextOS

opt portal

This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-07-05 00:45:09 +08:00
parent ac8c80a85c
commit d501df7629
24 changed files with 239 additions and 137 deletions

View File

@ -34,31 +34,19 @@
applications install "Preview" web.chat.macos.opens args "Preview"
~aaa
role whiteblack web.wiki.draw
role whiteblack web.wiki.feel
role whiteblack web.wiki.data
role whiteblack web.chat.favor
role whiteblack web.chat.macos.desktop
role whiteblack web.chat.macos.applications
role whiteblack web.chat.macos.notifications
role whiteblack web.chat.macos.searchs
role whiteblack web.chat.macos.menu
role whiteblack web.chat.macos.dock
role whiteblack web.code.git.trend
role whiteblack web.code.git.spide
role white void web.chat.macos.desktop action command
role white void web.chat.macos.desktop action run
role whiteblack web.wiki.draw
role whiteblack web.wiki.feel
role whiteblack web.chat.favor
role white void web.wiki.draw action command
role white void web.wiki.draw action run
role white void web.wiki.portal
role white void portal
role white void LICENSE
role white void etc/path
role white void /require/usr/icebergs
role white void /require/modules/
role white void /require/usr/icons
role white void /require/modules/
role white void usr/local/image
role white void usr/local/export
role white void etc/path
role white void LICENSE
~gdb
event listen event serve.start cmd web.serve

View File

@ -3,17 +3,17 @@ style flex
title "Contexts"
spark title "一个功能完备的工具系统"
order `
以模块化的方式,将编辑器、命令行、数据库、编译器等几百种工具,高度集成到一个 20M 的程序文件中。
将编辑器、命令行、数据库、编译器等几百种工具,以模块化的方式,高度集成到一个 20M 的程序文件中。
一键部署到各种机器上,快速启动很多个工作空间,以集群化的方式,将这些空间、设备高度组织到一起。
每个工具都有网页界面,以自己的数据逻辑将其它所有的工具与空间,组织到自己的界面中,高效的完成各种工作。
`
style flex
spark button "Get Download" route "download/" style.background blue style.color white
spark button "Get Started" route "started/" style.background blue style.color white
spark button "Get Download" route "download/" bg blue fg white
spark button "Get Started" route "started/" bg blue fg white
style end
style end
style column flex "0 0 460px" overflow hidden
spark inner src/main.go width 420px
style column flex "0 0 500px" overflow hidden
spark inner src/main.go width 460px
shell `
mkdir -p demo/src; cd demo
vi src/main.go

View File

@ -1,13 +1,13 @@
title "Contexts"
spark `Contexts 是一个功能完备的工具系统。`
brief `Contexts 是一个功能完备的工具系统。`
order `
Contexts 是一个工具箱,内置了很多实用的软件工具,开箱即用,每个工具既可以在命令行中使用,又可以在网页中使用。
Contexts 是一个工具框架,成千上万种工具,可以自由选择和组合,快速构建自己专属的工具系统。
Contexts 是一个文档系统,所有软件工具,都可以在笔记文档中直接引用,通过纯文本,就能快速创建出丰富的网页与网站。
Contexts 是一个编辑器框架,所有的软件工具,都可以在编辑器中直接使用,支持语法高亮、补全、跳转、模板,支持语法模块的动态扩展。
Contexts 是一个开发工具箱,集成了开发软件常用的工具,如编辑器、编译器,完全实现自举,可快速开发出新软件工具
Contexts 是一个工具框架,成千上万种工具,可以自由选择和组合,快速构建自己专属的工具系统。
Contexts 是一个文档系统,所有软件工具,都可以在笔记文档中直接引用,用简单的纯文本,就能快速构建出丰富的网页与网站。
Contexts 是一个编辑器框架,所有的软件工具,都可以在编辑器中直接使用,支持语法高亮、补全、跳转、模板,支持语法模块的动态扩展。
Contexts 是一个开发工具箱,集成了软件开发常用的工具,如编辑器、编译器等,不需要下载任何其它软件,即可完成整个开发流程
Contexts 是一个微服务框架,支持远程调用,支持分布式部署、支持自动化组建集群。
Contexts 使用 Golang 开发,完全跨平台,支持 Linux、macOS、Windows 等,一套工具箱,所有平台都可以使用。
Contexts 构建完成后只有一个 bin 文件,只有 20M 大小,方便传输与存储。
Contexts 支持脚本、支持模板、支持内存版文件系统、支持内存版数据库,可以快速开发出一个完整的服务端应用。
Contexts 使用 Golang 开发,完全跨平台,支持 Linux、macOS、Windows 等,一套工具系统源码,即可所有平台都能使用。
Contexts 构建完成后只有一个 bin 文件,大小只有 20M方便传输与存储。
Contexts 支持脚本、支持模板、支持内存版文件系统、支持内存版数据库,可以快速开发出一个完整的软件应用。
`

View File

@ -1 +1 @@
nfs.cat LICENSE
spark inner LICENSE

View File

@ -1,6 +1,6 @@
navmenu `
"关于" about/
"简介" introduction.shy
"项目" introduction.shy
"授权" license.shy
"下载安装" install/
@ -15,13 +15,18 @@ navmenu `
"基础功能" using/
"编辑器" vimer.shy
"代码库" repos.shy
"笔记文档" note.shy
"收藏夹" favor.shy
"任务计划" plan.shy
"笔记文档" note.shy
"官方网站" site.shy
"思维导图" draw.shy
"应用桌面" desktop.shy
"高级特性" feature/
"创建空间" space.shy
"组建集群" cluster.shy
"认证授权" auth.shy
"共享链接" share.shy
"认证授权" auth.shy
"应用管理" managing/
"目录结构" dir.shy

View File

@ -1,7 +1,11 @@
title "手动下载"
spark `如果有其它需要,例如下载不同系统或不同架构的 bin 文件,可手动下载。如下使用 wget 或 curl 命令,下载所需的 bin 文件。
其中 linux 替换成所需系统名如 darwin、windows 等amd64 替换成所需的架构名如 x86、arm 等`
spark `如果有其它需要,例如下载不同系统或不同架构的 bin 文件,可手动下载。如下使用 wget 或 curl 命令,下载所需的 bin 文件。
其中 linux 替换成所需系统名如 darwin、windows 等amd64 替换成所需的架构名如 x86、arm 等`
web.code.publish manual
spark `本服务器已经编译好的程序文件如下表`
web.code.publish version
spark `添加执行权限,并重命名文件。`
shell `
chmod u+x ice.linux.amd64

View File

@ -1,11 +1,11 @@
title "快速下载"
spark `Contexts 使用 Golang 开发,所以编译后只有一个 bin 文件,直接下载执行即可。`
spark `为了方便下载并快速启动,可以使用如下命令。
自动选择 wget 或 curl 命令
自动识别出操作系统与处理器类型,下载对应的 bin 文件,并自动启动服务。`
spark `点击下面命令,即可直接复制,打开终端执行即可。`
自动选择下载命令 wget 或 curl
自动识别出操作系统与处理器类型,然后下载所需的 bin 文件,并自动启动服务。
点击下面命令,即可直接复制,然后打开命令终端执行一下即可。`
web.code.publish contexts
spark warning `Contexts 有组建集群的功能,为了快速组建集群,这条命令也带了连接远程服务器的功能。`
spark warning `如果远程服务器是自己搭建的,或是可信的服务,直接执行。`
spark warning `如果不可信,可以通过配置文件,设置远程服务器访问本机的权限。
或直接在前面命令后加上参数 <code>dev ""</code> 直接禁用远程服务。`
或直接在前面命令后加上参数 <code>dev ""</code>直接禁用远程服务。`

View File

@ -1,11 +1,26 @@
title "命令交互"
spark `Contexts 提供了命令接口,所有的软件工具,都可以通过命令行来使用。`
chapter "目录结构"
spark `Contexts 下载成功后,进入 Contexts 的目录。 Contexts 运行时的所有文件,都只保存在当前目录下。一个完整的目录结构如下。`
order `
src/ 源码目录,存放本项目所有的代码与文档,如 main.go、main.js、main.shy。
etc/ 配置目录,存放启动脚本等各种配置类的文件,如 init.shy、local.shy、exit.shy。
bin/ 程序目录,存放编译好的可执行程序文件,如 ice.bin。
var/ 数据目录,程序运行时,需要用的各种数据文件,如日志文件、缓存文件。
usr/ 资源目录,一些外部资源文件,如第三方库、图标库、发布文件。
`
spark `因为 Contexts 支持集群化的多空间,每一个工作目录,即是一个工作空间。
所有的资源都只存在当前目录,这样可以保证每个工作空间的完整性与独立性。所以每个工作空间,都可以有自己的代码仓库、程序文件、配置文件、运行数据等。
`
spark `所以在使用 Contexts 时,所有的命令都在这个目录下执行。并不需要安装到全局的 PATH 中,直接 ./bin/ice.bin 即可。`
chapter "执行命令"
spark `tcp.host 查看网卡信息`
shell `./bin/ice.bin tcp.host` with echo
spark `cli.system 执行本机命令`
shell `./bin/ice.bin cli.system pwd` with echo
spark `nfs.dir 查看目录列表`
shell `./bin/ice.bin nfs.dir` with echo
spark `cli.system 执行本机命令`
shell `./bin/ice.bin cli.system pwd` with echo

View File

@ -1,51 +1,56 @@
title "网页交互"
spark `Contexts 提供了网页接口,所有的软件工具,都可以通过网页来使用。`
spark `在后续的所有文档中,也会使用到本机的 Contexts 服务 <a>http://localhost:9020</a> 来展示一些界面内容。
为了提升文档的展现效果,建议先安装启动 Contexts 服务后,再查看后续文档。`
chapter "启动服务"
spark `通过网页使用 Contexts 前,需要先启动 web 服务器。Contexts 自带了多种启动方式。`
spark `为了更形象的解说软件界面,本文会引用本机 <a>http://localhost:9020</a> 提供的服务,来展示界面。
所以建议先按本章节的说明,下载并启动 Contexts 后,再查看后续章节的文档。
通过网页使用 Contexts 前,需要先启动 web 服务器。Contexts 自带了多种启动方式。`
spark `serve 命令直接启动服务。`
spark `使用 serve 命令,可以直接启动服务。`
shell `./bin/ice.bin serve start`
spark `如果需要进程常驻,可以使用 forever 守护命令。在开发过程中非常有用,每次执行 make 命令进行编译与构建时,都会发送信号自动重启服务进程。
forever 启动守护进程后,才会自动启动服务进程,当服务进程意外停止后,会重新拉起服务。`
spark `如果需要进程常驻,可以使用守护命令 forever。forever 启动守护进程后,才会启动服务进程,并且会一直等待服务进程结束,当检测到服务进程是异常结束的,则会重新启动服务进程。`
shell `./bin/ice.bin forever start`
spark `无论哪种启动方式,默认的服务端口是 9020打开 <a>http://localhost:9020</a> 即可通过网页使用所有的软件工具。`
spark `服务启动后,会在终端上,启动一个交互式的 shell可执行任何命令。`
spark `无论哪种方式启动,默认的服务端口是 9020打开 <a>http://localhost:9020</a> 即可通过网页使用所有的软件工具。`
spark `服务启动后,会在终端上,启动一个交互式的 shellContexts 的所有软件工具,都可以在这个 shell 上,以命令的方式使用。`
chapter "登录认证"
spark `如果是在容器或远程服务器上启动的服务,访问时都是需要登录认证的。
或是本机启动的服务,但在其它设备上访问此服务,也是需要登录认证的。`
是本机启动的服务,但在其它设备上访问此服务,也是需要登录认证的。`
spark `前端网页在检测到没有登录,会展示一个登录页面。可扫码登录,也可以在后台执行命令进行授权登录。
初始用户只能在后台用命令授权登录,复制二维码下面的授权命令,在后台服务启动的 shell 中执行一下,即可授权登录。`
spark `Contexts 是一个工具系统,使用的场景是面向的个人或小团队使用,所以框架并没有提供用户注册的功能。
如果需要多人登录本系统,已经登录的用户,可以通过 aaa.offser 命令发送邀请链接,被邀请人就可以获取登录权限。`
chapter "使用方式"
spark `在 Contexts 中,所有的工具,既可以添加到导航栏里,通过结构化的导航组织起来,也可以通过搜索框被快速查找出来,还可以通过 URL 地址,直接在单独的网页中使用。`
spark `为了更加方便的使用这些软件工具Contexts 自带了一个后台管理系统。
后台管理系统的界面从上到下,依次由菜单栏、导航栏、工作区、状态栏组成,另外搜索栏,会在需要时,悬浮在工作区之上。
所有的软件工具,既可以添加到导航栏里,通过结构化的方式组织起来,也可以通过搜索框被快速查找出来,还可以通过 URL 地址,直接在单独的网页中使用。`
section "导航式"
spark `Contexts 启动后,可直接访问 <a>http://localhost:9020/chat/portal/</a>即可打开后台管理系统。
spark `Contexts 启动后,可直接访问 <a>http://localhost:9020/chat/portal/</a>,打开后台管理系统。
后台管理系统导航栏的内容,都是在 src/main.js 文件中定义的。如需自定义导航栏的内容,直接修改此文件即可。
Contexts 也提供了界面添加功能,点击创建后,依次添加群组、添加应用、添加工具,即可动态自动定义导航栏。`
Contexts 也提供了界面添加功能,点击创建后,依次添加群组、添加应用、添加工具,即可将任意的软件工具添加到导航栏。`
iframe "http://localhost:9020"
section "搜索式"
spark `默认的后台管理系统,会提供一个搜索框,所有的软件工具都可以通过搜索,直接在结果栏中展示,即可实现快速使用此工具。`
spark `默认的后台管理系统,会提供一个搜索框,所有的软件工具都可以通过搜索,直接在结果栏中展示,即可实现快速使用此工具。
当结果栏里,只有一条结果,则会直接创建此工具的界面。如果结果栏里,有多条结果,则需要手动选择需要打开的工具。`
iframe "http://localhost:9020?_search=tcp.host"
section "命令式"
spark `所有的软件工具都可以通过 URL 直接访问使用,如工具 web.team.plan 的 URL 是 <a>http://localhost:9020/chat/cmd/web.team.plan</a>。`
spark `所有的软件工具都可以通过 URL 直接访问使用,如工具 web.team.plan 的 URL 是 <a>http://localhost:9020/chat/cmd/web.team.plan</a>。`
spark demo plan
spark `有些软件工具在注册时,会注册一个全局的短名,如 web.team.plan 是全名plan 就是注册的短名,在使用时,两个完全等价,如链接地址
spark `有些软件工具在注册时,会注册一个全局的短名,如 web.team.plan 是全名plan 就是注册的短名,在使用时,两个完全等价,如链接地址
<a>http://localhost:9020/chat/cmd/web.team.plan</a> 与 <a>http://localhost:9020/chat/cmd/plan</a> 是一样的。
需要注意的是,并不是所有的工具在注册时,都会注册短名。只有那些比较基础、比较通用的工具,才需要注册短名。`
chapter "标准界面"
spark `在 Contexts 中,所有的软件工具,都是使用同一前端框架,自动生成的前端界面。如果默认的前端界面,无法满足需求,可以随时编写前端模块,自行定义界面。`
spark `一个标准的工具界面,由标题栏、参数栏、工具栏、工作区、状态栏组成。
有时为了最大的展示工作区,会将标题栏、参数栏、工具栏,放在一行。`
spark `在 Contexts 中,所有的软件工具,都是使用同一前端框架,自动生成的前端界面。
如果默认的前端界面,无法满足需求,可以灵活的配置,指定任意的前端脚本,甚至还可以随时编写前端代码,自行定义界面。`
spark `一个标准的工具界面,从上到下依次为标题栏、参数栏、工具栏、工作区、状态栏。
有时为了最大的展示工作区,往往会将标题栏、参数栏、工具栏,放在同一行。`
spark demo host
section "标题栏"
@ -53,14 +58,20 @@ spark `标题栏,由工具名与中文名组成。当系统切换成英文版
spark `点击标题栏,会打开一个菜单,对工具界面进行更详情的控制,如切换全屏、切换浮动、打开单独的网页、生成共享链接等。`
section "参数栏"
spark `在参数栏中,会有输入框、选择框、按钮等输入控件。这些参数,会在刷新时直接传给后端,从而后端根据这些参数,返回不同的数据,然后刷新工作区。`
spark `在参数栏中,会有输入框、选择框、按钮等输入控件。这些参数,会在刷新数据时直接传给后端,从而后端根据这些参数,返回不同的数据,然后刷新工作区。`
section "工具栏"
spark `工具栏与参数很相似,都有一样的输入控件,位置也相邻,都在工作区上面。但区别是,工具栏更偏向于前端交互,不一定会向后端发送请求。但参数栏的交互一般都会发送请求,然后刷新工作区。`
spark `工具栏与参数很相似,都有一样的输入控件,位置也相邻,都在工作区上面。但区别是,工具栏更偏向于前端交互,不一定会向后端发送请求。但参数栏的交互一般都会发送请求,然后刷新工作区。`
section "状态栏"
spark `状态栏在工作区下方由key 和 value 组成,一般都是一些状态信息、统计信息等。`
section "工作区"
spark `工作区,在正中间,占据最大的空间。默认的会以表格的形式展示数据,最后一列一般是当前行的操作按钮。点击表头,会对当前列排序。`
spark `Contexts 的前端框架是 Volcanos提供了完整的交互与丰富的前端组件。可以在后端代码、或是配置文件中指定工具界面使用哪个组件展示数据。`
spark `工作区,在正中间,占据最大的空间。默认的会以表格的形式展示数据,最后一列一般是当前行的操作按钮。点击某列的表头,会切换当前列的排序方式。`
chapter "操作表格"
section "切换视图"
spark `如果工具界面的输出是一个表格,当点击某个单元格时,如果此单元格的表头和参数栏的名称一样,则会将此单元格的内容作为参数,复制到输入控件上,并刷新数据。`
section "编辑字段"
spark `直接双击单元格,即可编辑数据,点击回车即可保存更改。`

View File

@ -1,8 +1,7 @@
title "应用桌面"
spark `Contexts 是一个工具系统,内置了很多软件工具。这些工具可以像本机电脑桌面一样,用图标与窗口的界面,来使用所有的软件工具。
web.chat.macos.desktop 命令就是 Contexts 的电脑桌面。`
spark `<a>http://localhost:9020/chat/cmd/desktop</a>`
field "" web.chat.macos.desktop style output
spark demo web.chat.macos.desktop style output
chapter "桌面列表"
spark `Contexts 支持多桌面,可以创建出任意多个桌面。在桌面的左上角,点击 + 号,就可以创建一个新桌面,每个桌面上可以打开不同的软件工具。

View File

@ -0,0 +1,5 @@
title "思维导图"
spark `作为一个功能完备的工具系统画图工具当然也是必不可少的。web.wiki.draw 就是 Contexts 的画图工具。
同样的,画图工具中的每个图形元素,都可以关联一个软件工具,这样就可以用任意的逻辑,将软件工具组织起来,比如做成流水线、电路图等。`
spark `Contexts 所有软件工具,都可以像面向对象编程一样,被直接继承与扩展。其中趋势图与框架图,就是在这个画图工具的基础上,添加了一些自己的功能逻辑。`
spark demo draw

View File

@ -0,0 +1,22 @@
title "收藏夹"
spark `在工作过程中,经常会用到一些文本、链接、图片等,需要不断的来回复制与粘贴。为了更加方便的管理这些常用数据,可以使用 web.chat.favor 命令。`
spark demo favor
chapter "添加数据"
section "创建"
spark `在工具栏,点击创建,依次输入参数 type、name、text然后提交即可。`
section "上传"
spark `web.chat.favor 还支持上传文件。`
section "粘贴"
spark `web.chat.favor 还支持从粘贴板直接获取数据。`
section "截图"
spark `web.chat.favor 还支持截图。`
section "录屏"
spark `web.chat.favor 还支持录屏。`
chapter "查看详情"
spark `在 web.chat.favor 中的数据是有多种格式的,如果是图片,可以直接预览。可以在最后一例中,点击按键进行操作。也可以点击某一行的 hash 字段,即可直接切换视图到详情。`

View File

@ -3,21 +3,21 @@ brief `web.wiki.word 是 Contexts 用来管理笔记与文档的工具Context
语法也非常简单,就是命令加参数,像命令行一样使用。其中命令就是 Contexts 中的所有的工具名。
所以 Contexts 中的所有工具都可以在文档中直接使用。`
spark `包括 Contexts 的官网 web.wiki.portal也只是在 web.wiki.word 上包装了一个布局和路由而已。
官网的所有内容也是用 .shy 文档来保存的,其中所有的内容在 web.wiki.word 中也一样显示。
`
spark `Contexts 的文档不需要单独存放,直接和代码保存在一起,都在 <code>./src/</code> 目录下,
官网的所有内容也是用 .shy 文档来保存的,其中所有的内容在 web.wiki.word 中也一样显示。`
spark `Contexts 的文档不需要单独存放,直接和代码保存在一起,都在 ./src/ 目录下,
Contexts 在构建时,会根据代码结构,将关联的文档打包进 bin 文件中,以便在运行时随时查看。`
chapter "使用方式"
spark `同样的web.wiki.word 工具,也是可以在后台管理系统的导航栏中、在搜索栏中、在单独的网页中都能使用,
甚至可以被任何其它的工具嵌套使用,如被 web.wiki.portal 嵌套,比如在编辑器中编辑文档时,预览此文档。`
甚至可以被任何其它的工具嵌套使用,如被 web.wiki.portal 嵌套,比如在编辑器中编辑文档时,预览区就是插入的 web.wiki.word。`
spark `在 web.wiki.word 的参数栏中,第一个输入框,是文档的文件名,输入需要查看的文档的文件名,即可查看此文档。
在命令网页中,如下添加参数 path 即可指定文档的文件名,在单独的网页中查看指定的文档。`
spark `<a>http://localhost:9020/chat/cmd/word?path=src/document/started/using/note.shy</a>`
spark `Contexts 的笔记文档,可以直接生成网站,也可以像 ppt 一样,可以按章节一页页的播放。`
chapter "常用命令"
spark `其中参数有空格或其它特殊字符,可以加引号,单引号、双引号、反引号,其中反引号中的文字可以跨多行。`
spark `其中参数有空格或其它特殊字符,可以加引号转义,如单引号、双引号、反引号,其中反引号中的文字可以跨多行。`
section "文字类"
spark `文字类的命令很简单,常用的就 title、chapter、section、brief、spark。`
spark inner `
@ -30,39 +30,36 @@ spark "段落文字"
spark `spark 命令还支持子命令,如 title、inner、shell、button 等,
如需其它文字格式,可自行添加 spark 的子命令,只需要在 <code>./src/template/web.wiki.spark/</code> 目录下添加同名的模板文件即可。`
spark inner `
spark inner "代码文字"
spark shell "命令文字"
shell "命令文字"
` args "src/ main.shy"
spark `其中 shell 命令并不是一个单独的命令,只是 spark shell 的别名而已。
还有 chapter 也是 title chapter 的别名section 也是 title section 别名。`
spark `其中 shell 命令并不是一个单独的命令,只是 spark shell 的别名而已。还有 chapter 也是 title chapter 的别名section 也是 title section 别名。`
section "数据类"
spark `refer 命令,引用列表`
spark inner src/document/started/using/demo/refer.shy
source src/document/started/using/demo/refer.shy
spark inner demo/refer.shy
source demo/refer.shy
spark `order 命令,普通列表`
spark inner src/document/started/using/demo/order.shy
source src/document/started/using/demo/order.shy
spark inner demo/order.shy
source demo/order.shy
spark `table 命令,普通表格`
spark inner src/document/started/using/demo/table.shy
source src/document/started/using/demo/table.shy
spark inner demo/table.shy
source demo/table.shy
section "绘图类"
spark `label 命令,绘制标签。`
spark inner src/document/started/using/demo/label.shy
source src/document/started/using/demo/label.shy
spark inner demo/label.shy
source demo/label.shy
spark `chain 命令,绘制结构图,每一行是一个节点,用缩进代表层级。`
spark inner src/document/started/using/demo/chain.shy
source src/document/started/using/demo/chain.shy
spark inner demo/chain.shy
source demo/chain.shy
section "影音类"
spark `影音类的文件,存放在 <code>./usr/local/image/</code> 目录下。当然参数也可以是一个完整的 URL 地址,直接引用外部的资源文件。`
spark inner src/document/started/using/demo/image.shy
source src/document/started/using/demo/image.shy
spark inner demo/image.shy
source demo/image.shy

View File

@ -1,13 +1,21 @@
title "任务计划"
spark `web.team.plan 是 Contexts 用来管理任务与计划的工具,此外在状态栏中附加了另外三个工具 web.team.todo、web.team.task、web.team.epic `
spark `<a>http://localhost:9020/chat/cmd/plan</a>`
field "" web.team.plan
spark `时间与任务的管理,也是工作中很重要的内容。
web.team.plan 是 Contexts 用来管理任务与计划的工具,此外在状态栏中附加了另外三个工具 web.team.todo、web.team.task、web.team.epic。`
spark demo plan
chapter "视图切换"
spark `web.team.plan 提供了日视图、周视图、月视图、年视图、长视图等,不同的时间维度来展示任务列表。`
chapter "工具界面"
section "时间跨度"
spark `web.team.plan 提供了日视图、周视图、月视图、年视图、长视图等,不同的时间跨度来展示任务列表。`
section "起始时间"
spark `参数栏的第二个参数,就是起始时间,用来指定显示什么时间的任务。例如时间跨度是周视图时,就可以切换上一周、下一周,如果时间跨度是月视图,就可以切换上一月、下一月。`
section "任务过滤"
spark `每个任务都有优先级、完成度、考核度等属性,所以可以在视图上进行过滤,只显示自己需要关心的任务。`
chapter "任务管理"
section "创建任务"
spark `双击时间的单元格,即可打开创建任务的对话框。其中 zone 与 name 是必选参数,指定分类与名称。`
spark `双击时间的单元格,即可打开创建任务的对话框。其中 zone 与 name 是必选参数,指定分类与名称。然后点击提交,即可创建一个新任务。`
section "任务详情"
spark `单击任务,在任务表的右侧,即可显示出任务详情。`
@ -16,4 +24,4 @@ chapter "关联工具"
spark `web.team.plan 工具,看上去功能很简单,但却不简单,因为在 Contexts 中,所有的工具,都可以嵌套任何其它工具,甚至子空间、子设备中的所有工具。
给任何一个任务,都可以绑定一个工具。在详情中,点击插件,输入工具名与参数,即可在任务选中时,在时间表下面显示工具,可以直接使用。
所以对于 web.team.plan 来说,它就是一个时间的框架,用时间的维度,将所有的工具显示在时间表中。`
spark `同样适用于 Contexts 系统中其它所有工具,每一个工具都以自己的数据逻辑,将其它所有的工具、空间、设备,组织在一起。所以每个工具,都是一个操作系统。`
spark `同样适用于 Contexts 系统中其它所有工具,每一个工具都以自己的数据逻辑,将其它所有的工具、空间、设备,组织在一起。所以每个工具,都看成是一个操作系统。`

View File

@ -1,16 +1,45 @@
title "代码库"
spark `Contexts 为了实现功能的完备,代码库和代码源当然是必不可少的功能。`
spark `Contexts 在启动服务节点时,默认的就已经启动了 Git-Server 代码库服务。支持代码库的创建、上传、下载等功能。
所以 Contexts 的所有代码,都是存放在 Contexts 启动的服务器上。
`
spark `<a>http://localhost:9020/chat/cmd/web.code.git.service</a>`
title "代码库与代码源"
spark `Contexts 为了实现功能的完备,代码库和代码源当然是必不可少的功能。其中代码库是指 Git-Client代码源是指 Git-Server。`
spark `Contexts 在服务节点启动时,默认的就已经启动了 Git-Server 的服务,支持代码源的创建、上传、下载等功能。
所以 Contexts 的所有代码,都是存放在 Contexts 启动的服务器上。如前端框架 <a>https://shylinux.com/x/volcanos.git</a>,后端框架 <a>https://shylinux.com/x/icebergs.git</a>。`
chapter "代码源管理"
spark demo web.code.git.service
section "代码源目录"
spark `Contexts 的代码源,都保存在 ./usr/local/repos/ 目录下。`
chapter "代码库目录"
spark `Contexts 的代码源,都保存在 ./usr/local/repos/ 目录下`
chapter "代码库权限"
section "代码源权限"
spark `默认的下载代码是不需要权限,所有人都可以下载代码。
但上传代码需要权限的,需要用 web.code.git.token 生成令牌,并保存到本地。`
但上传代码需要权限的,需要用 web.code.git.token 生成令牌,并保存到客户端的本地。`
spark `当 web.code.git.service 命令,接收到 receive-pack 请求时,如果代码库不存在,则会自动创建代码库。`
section "代码源地址"
spark `当服务节点启动后,就可以通过 <a>http://localhost:9020/x/demo</a> 来上传下载代码了demo 可以替换成任意的项目名。`
shell `
mkdir demo; cd demo
git init
git remote add origin http://localhost:9020/x/demo
git add README.md
git commit -am "add init"
git push
`
chapter "代码库管理"
spark `代码库管理,除了可以管理当前项目的代码库,还可以用来管理依赖库的代码。如 Contexts 项目,就用到了几个依赖库。`
spark demo web.code.git.repos
section "下载代码"
spark `点击工具栏中的下载按键,即可批量下载,将所有的代码库都下载一遍。`
section "上传代码"
spark `点击工具栏中的上传按键,即可批量上传,将所有的代码库都上传一遍。`
section "代码状态"
spark `点击工具栏中的状态按键,即可遍历所有的代码库,汇总出来所有的文件变更状态,输出的界面上。这样就可以在一个界面上,同时看到所有代码库的变更。`
spark `在输出的变更信息表中,最后一列是操作按键,根据当前行的文件状态,显示不同的按键。如未知文件,会显示添加按键和删除按键,如更新的文件,会显示添加按键。`
chapter "代码库状态"
spark `web.code.git.repos 更偏向于项目列表和批量操作。为了更加方便的添加代码、提交代码,又实现了一个新的工具 web.code.git.status。`
spark demo web.code.git.status
section "代码权限"
spark `在工具栏有一个授权按键,如果当前项目的代码源也是 Contexts 启动的服务,就可以实现一键授权,从 Contexts 的代码源服务器上生成 token 并保存到本地。`

View File

@ -0,0 +1,16 @@
title "官方网站"
spark `Contexts 的官方网站web.wiki.portal 就是用文档驱动的,使用 .shy 的文件格式,都保存在 ./src/document/ 目录下。`
chapter "目录与文件"
spark `在 ./src/document/ 目录下,有两个特别的文件。一个是 ./src/document/index.shy 用来生成标题栏。另外就是各个子目录下的 index.shy 用来生成导航栏。`
section "标题栏"
spark `./src/document/index.shy 标题栏文档的内容如下。`
spark inner src/document/index.shy
section "导航栏"
spark `./src/document/stated/index.shy 导航栏文档的内容如下。`
spark inner src/document/started/index.shy
chapter "布局与路由"
spark `标题栏的路由,会触发网页跳转。而导航栏的路由,只会刷新局部视图,并且添加了视图缓存。`

View File

@ -1,33 +1,40 @@
title "编辑器"
spark `作为一个功能完备的工具系统,编辑器是必不少的工具。
spark `作为一个功能完备的工具系统,编辑器当然是必不少的工具。
web.code.vimer 就是 Contexts 自带的编辑器,具有语法高亮、语法模板、语法补全、语法跳转等功能。
web.code.vimer 也是一个编辑器框架,默认已经支持 Contexts 用到的语言 Golang、Javascript、HTML、CSS、sh、shy 等,
如需其它语言,直接添加语法模块即可。`
spark `Contexts 中所有的工具,都可以被当成插件,在编辑器中使用。`
spark `<a>http://localhost:9020/chat/cmd/web.code.vimer</a>`
field web.code.vimer
如需其它语言直接添加语法模块即可。Contexts 中所有的工具,都可以被当成插件,在编辑器中直接使用。`
spark demo vimer
chapter "工具界面"
spark `web.code.vimer 工具,可以在很多地方被使用,不同的地方也会有不同的界面。
如在笔记中,只需要显示文件内容,所以 web.code.vimer 只会显示工作区的文件内容,其它的工具栏都会隐藏掉。
如在单独的网页中web.code.vimer 所有界面都会完整显示,成为一个完整的 IDE。`
spark `一个完整的界面,有左边的导航区、上面的标题区、中间的工作区、右边的预览区、下面的输出区。
在左边的导航区,会有各种子栏,如目录列表、空间列表、命令列表、插件列表等,并且可以随时添加新的功能区。点击列表项,即可打开关联的文件,
在预览区与输出区,是每种语法模块自定义的显示内容。
如 .html 文件的预览区和输出区,是一个内嵌网页,用来查看网页效果。
如 .go 文件的预览区和输出区,就是当前代码所开发功能的界面,这样就可以边写代码,边看效果。`
chapter "目录与文件"
section "目录结构"
spark `在 Contexts 中,当前空间的所有的代码和文档都保存在 ./src/ 目录下,但有时会用户外部依赖库,并且根据当前需要去更改依赖库的代码。
可以使用 web.code.git.repos 命令,来管理这些依赖库。这些依赖库,全部直接保存在 ./usr/ 目录下。
`
section "工具参数"
spark `web.code.vimer 最核心的功能,当然是展示目录结构与文件内容。
所以定义了三个参数 path、file、file。这样 vimer 在使用的地方,就可以通过这三个参数进行控制。
vimer 也会根据场景有不同的界面。如在命令网页中vimer 会占据整个网页显示完整的功能。在架构图的工具中使用时,则只展示文件内容。`
section "界面参数"
spark `web.code.vimer 最核心的功能,当然是展示目录结构与文件内容。所以定义了三个参数 path、file、line。这样 vimer 在使用的地方,就可以通过这三个参数进行控制。
从而显示指定的目录列表与文件内容。`
section "目录列表"
spark `在左边导航区,显示目录列表,是由参数 path 指定的目录,加上代码仓库管理工具 web.code.git.repos 返回的代码仓库列表中的目录。
vimer 也实现了延时加载,默认只加载项目列表与当前目录下的文件列表,只有点击打开了目录,才会请求此目录下的文件列表。`
spark `在左边导航区显示的目录列表,是由参数 path 指定的目录,加上代码仓库管理工具 web.code.git.repos 返回的代码仓库列表。
vimer 也实现了延时加载,默认只加载当前目录下的文件列表,只有点击仓库才会打开它的目录,才会加载此仓库下的文件列表。`
section "项目列表"
spark `在 Contexts 中,当前空间的所有的代码和文档都保存在 ./src/ 目录下,但有时会用到外部依赖库,并且根据当前的需要,去更改依赖库的代码。
比如 Contexts 刚开始只有一个代码仓库,后来随着功能不断的增加,不断的拆分出新的代码仓库,现在已经有十几个代码仓库,所以有时为了实现一个新功能,就会修改多个代码仓库。
为了管理这么多个依赖库,就可以使用 web.code.git.repos 命令,进行统一的上传、下载、提交代码等操作。这些依赖库,分别保存在 ./usr/ 目录下。`
chapter "语法与插件"
spark `vimer 在加载文件内容时,会根据文件的扩展名,自动的加载语法插件。`
chapter "预览与输出"
spark `每种语法的文件,使用方式是不一样的。所以在 vimer 里实现了一种语法引擎的框架,可加载各种语法模块,并分发各种处理事件。
每种语法模块,都可以定义当前文件的预览界面与输出界面如何显示。`
spark `每种语法的文件,使用方式是不一样的。所以在 vimer 里实现了一种语法引擎的框架,可加载各种语法模块,并分发各种处理事件。
每种语法模块,都可以定义当前文件的预览区与输出区如何显示。这样就可以一边写代码,一边查看输出的界面。`
order `
.shy 的语法模块,就定义了 .shy 的文件预览效果,是生成一个网页来显示文档的效果。
.go 的语法模块,就会根据文件名,查找出它生成的软件工具,在预览界面中展示此工具。
@ -36,7 +43,7 @@ order `
`
chapter "模块与插件"
spark `Contexts 是一个工具系统,内置了大量的软件工具。这些工具既要完全独立,又要能和其它所有工具深度配合。这就是为什么 Contexts 要自研前后端框架的动力。`
spark `Contexts 是一个工具系统,内置了大量的软件工具。这些工具既要完全独立,又要能和其它所有工具深度配合。这就是为什么 Contexts 要自研前后端框架。`
spark `Contexts 中的所有前端、后端的各种工具,都可以直接在编辑器中使用。但为了更好的和编辑配合起来,实现更高效的互动,在编辑器的代码添加了很多框架性的功能。
如编译时 vimer 调用编译工具 web.code.compile 执行编译后,有时会生成一些错误提示信息,这时 vimer 就会根据这些信息实现跳转的功能。
`

View File

@ -1,5 +1 @@
<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" count=16 pid=p10><g><rect height="50" width="170" x="90" y="30" rx="4" ry="4" pid="p1" class="p1" ship="[{&quot;pid&quot;:&quot;p3&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8},{&quot;pid&quot;:&quot;p16&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8}]" index="web.code.vimer" text="p9" args="usr/volcanos/,plugin/local/wiki/draw.js"></rect><text x="175" y="55" pid="p9" class="p9">vimer</text></g><g><rect height="50" width="230" x="480" y="240" rx="4" ry="4" pid="p2" class="p2" ship="[{&quot;pid&quot;:&quot;p3&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2}]" text="p6" index="web.wiki.word"></rect><text x="595" y="265" pid="p6" class="p6" style="
/* color: red; */
/* stroke: red; */
/* fill: red; */
">word</text></g><line x1="175" y1="80" x2="595" y2="240" ship="[{&quot;pid&quot;:&quot;p1&quot;},{&quot;pid&quot;:&quot;p2&quot;}]" pid="p3" class="p3"></line><g><rect height="50" width="130" x="130" y="210" rx="4" ry="4" pid="p4" class="p4" index="web.code.xterm" text="p8" args="bash" ship="[{&quot;pid&quot;:&quot;p16&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2}]"></rect><text x="195" y="235" pid="p8" class="p8">xterm</text></g><g class="sub" style="opacity: 1; display: block;" stroke="yellow" fill="green"><g><rect height="70" width="180" x="580" y="90" rx="4" ry="4" pid="p5" class="p5" text="p7" index="cli.runtime"></rect><text x="670" y="125" pid="p7" class="p7">runtime</text></g></g><g><rect height="50" width="190" x="870" y="180" rx="4" ry="4" pid="p10" class="p10" text="p11" index="web.code.git.trend" args="icebergs"></rect><text x="965" y="205" pid="p11" class="p11">trend</text></g><g><rect height="50" width="220" x="1190" y="130" rx="4" ry="4" pid="p12" class="p12" text="p13" index="cli.runtime" args="diskinfo"></rect><text x="1300" y="155" pid="p13" class="p13">diskinfo</text></g><g><rect height="50" width="210" x="1140" y="290" rx="4" ry="4" pid="p14" class="p14" text="p15" index="web.code.git.spide" args="icebergs"></rect><text x="1245" y="315" pid="p15" class="p15">spide</text></g><line x1="175" y1="80" x2="195" y2="210" ship="[{&quot;pid&quot;:&quot;p1&quot;},{&quot;pid&quot;:&quot;p4&quot;}]" pid="p16" class="p16"></line></svg>
<svg xmlns="https://www.w3.org/2000/svg" vertion="1.1" text-anchor="middle" count=19 pid=p12><g><rect height="60" width="200" x="270" y="50" rx="4" ry="4" pid="p1" class="p1" text="p2" ship="[{&quot;pid&quot;:&quot;p13&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8},{&quot;pid&quot;:&quot;p15&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8}]"></rect><text x="370" y="80" pid="p2" class="p2">table.js</text></g><g><rect height="50" width="160" x="170" y="160" rx="4" ry="4" pid="p3" class="p3" text="p4" ship="[{&quot;pid&quot;:&quot;p13&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2},{&quot;pid&quot;:&quot;p14&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8}]"></rect><text x="250" y="185" pid="p4" class="p4">word.js</text></g><g><rect height="50" width="140" x="430" y="160" rx="4" ry="4" pid="p5" class="p5" text="p6" ship="[{&quot;pid&quot;:&quot;p15&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2},{&quot;pid&quot;:&quot;p16&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8},{&quot;pid&quot;:&quot;p17&quot;,&quot;which&quot;:1,&quot;anchor&quot;:8}]"></rect><text x="500" y="185" pid="p6" class="p6">draw.js</text></g><g><rect height="60" width="170" x="70" y="270" rx="4" ry="4" pid="p7" class="p7" text="p8" ship="[{&quot;pid&quot;:&quot;p14&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2}]"></rect><text x="155" y="300" pid="p8" class="p8">portal.js</text></g><g><rect height="60" width="170" x="320" y="270" rx="4" ry="4" pid="p9" class="p9" text="p10" ship="[{&quot;pid&quot;:&quot;p16&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2}]"></rect><text x="405" y="300" pid="p10" class="p10">trend.js</text></g><g><rect height="50" width="160" x="580" y="270" rx="4" ry="4" pid="p11" class="p11" text="p12" ship="[{&quot;pid&quot;:&quot;p17&quot;,&quot;which&quot;:2,&quot;anchor&quot;:2}]"></rect><text x="660" y="295" pid="p12" class="p12">spide.js</text></g><line x1="370" y1="110" x2="250" y2="160" ship="[{&quot;pid&quot;:&quot;p1&quot;},{&quot;pid&quot;:&quot;p3&quot;}]" pid="p13" class="p13"></line><line x1="250" y1="210" x2="155" y2="270" ship="[{&quot;pid&quot;:&quot;p3&quot;},{&quot;pid&quot;:&quot;p7&quot;}]" pid="p14" class="p14"></line><line x1="370" y1="110" x2="500" y2="160" ship="[{&quot;pid&quot;:&quot;p1&quot;},{&quot;pid&quot;:&quot;p5&quot;}]" pid="p15" class="p15"></line><line x1="500" y1="210" x2="405" y2="270" ship="[{&quot;pid&quot;:&quot;p5&quot;},{&quot;pid&quot;:&quot;p9&quot;}]" pid="p16" class="p16"></line><line x1="500" y1="210" x2="660" y2="270" ship="[{&quot;pid&quot;:&quot;p5&quot;},{&quot;pid&quot;:&quot;p11&quot;}]" pid="p17" class="p17"></line></svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,2 +1,2 @@
<input class="story" type="button" value='{{.Option "text"}}' {{.OptionTemplate}} data-meta={{.Option "meta"}}></input>
<input {{.OptionTemplate}} type="button" value='{{.Option "text"}}' data-meta={{.Option "extra"}}></input>

View File

@ -1,2 +1,2 @@
<h2 {{.OptionTemplate}} data-meta={{.Option "meta"}}>{{.Option "text"}}</h2>
<h2 {{.OptionTemplate}} data-meta={{.Option "extra"}}>{{.Option "text"}}</h2>