1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-25 17:18:05 +08:00
This commit is contained in:
shaoying 2020-01-09 16:09:22 +08:00
parent 220d14faf7
commit 8a203b52ae
16 changed files with 62 additions and 49 deletions

View File

@ -32,6 +32,8 @@ func (f *Frame) Begin(m *Message, arg ...string) Server {
return f
}
func (f *Frame) Start(m *Message, arg ...string) bool {
m.Cap(CTX_STATUS, "start")
m.Cap(CTX_STREAM, strings.Split(m.Time(), " ")[1])
m.Log(LOG_START, "ice")
m.Cmd(ICE_INIT).Cmd("init", arg)
m.root.Cost("start")

View File

@ -10,7 +10,7 @@ import (
"sort"
)
var Index = &ice.Context{Name: "ctx", Help: "元始模块",
var Index = &ice.Context{Name: "ctx", Help: "配置模块",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
ice.CTX_CONFIG: {Name: "config", Help: "配置", Value: kit.Data("path", "var/conf")},

View File

@ -136,7 +136,7 @@ func dir(m *ice.Message, root string, name string, level int, deep bool, dir_typ
}
}
var Index = &ice.Context{Name: "nfs", Help: "文件模块",
var Index = &ice.Context{Name: "nfs", Help: "存储模块",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{},
Commands: map[string]*ice.Command{

View File

@ -7,7 +7,7 @@ import (
"strings"
)
var Index = &ice.Context{Name: "tcp", Help: "网络模块",
var Index = &ice.Context{Name: "tcp", Help: "通信模块",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{},
Commands: map[string]*ice.Command{

View File

@ -352,7 +352,7 @@ func (web *Frame) Close(m *ice.Message, arg ...string) bool {
return true
}
var Index = &ice.Context{Name: "web", Help: "网模块",
var Index = &ice.Context{Name: "web", Help: "网模块",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
ice.WEB_SPIDE: {Name: "spide", Help: "蜘蛛侠", Value: kit.Data(kit.MDB_SHORT, "client.name")},
@ -814,7 +814,7 @@ var Index = &ice.Context{Name: "web", Help: "网页模块",
}
// 任务列表
m.Cmdy("nfs.dir", m.Conf(ice.WEB_DREAM, "meta.path"), "", "time name")
m.Cmdy("nfs.dir", m.Conf(ice.WEB_DREAM, "meta.path"), "time name")
m.Table(func(index int, value map[string]string, head []string) {
if m.Richs(ice.WEB_SPACE, nil, value["name"], func(key string, value map[string]interface{}) {
m.Push("type", value["type"])

View File

@ -14,6 +14,8 @@ var Index = &ice.Context{Name: "chat", Help: "聊天中心",
},
Commands: map[string]*ice.Command{
ice.ICE_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Cap(ice.CTX_STATUS, "start")
m.Cap(ice.CTX_STREAM, "volcanos")
m.Cmd(ice.CTX_CONFIG, "load", "chat.json")
m.Watch(ice.SYSTEM_INIT, "web.chat.init")
m.Watch(ice.USER_CREATE, "web.chat./tutor", "init")

View File

@ -26,7 +26,7 @@ CMD sh bin/boot.sh
`
var Index = &ice.Context{Name: "code", Help: "编程模块",
var Index = &ice.Context{Name: "code", Help: "编程中心",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
"login": {Name: "login", Help: "登录", Value: kit.Data()},

View File

@ -11,7 +11,7 @@ import (
"time"
)
var Index = &ice.Context{Name: "mall", Help: "团队模块",
var Index = &ice.Context{Name: "mall", Help: "贸易中心",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
"railway": {Name: "railway", Help: "12306", Value: kit.Data()},

View File

@ -9,7 +9,7 @@ import (
"time"
)
var Index = &ice.Context{Name: "team", Help: "团队模块",
var Index = &ice.Context{Name: "team", Help: "团队中心",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
ice.APP_MISS: {Name: "miss", Help: "任务", Value: kit.Data(

View File

@ -1,6 +1,11 @@
package wiki
var title = `<span class="story" data-type="{{.Option "type"}}" data-name="{{.Option "prefix"}}" data-text="{{.Option "text"}}">{{.Option "prefix"}}{{.Option "content"}}</span>`
var title = `<{{.Option "level"}} class="story" data-type="{{.Option "type"}}" data-name="{{.Option "prefix"}}" data-text="{{.Option "text"}}">{{.Option "prefix"}}{{.Option "content"}}</{{.Option "level"}}>`
var brief = `<p class="story" data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "input"}}">{{.Option "text"}}</p>`
var refer = `<ul class="story"
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
{{range $index, $value := .Optionv "list"}}<li>{{$value}}</li>{{end}}</ul>`
var spark = `<p>{{.}}</p>`
var shell = `<div class="story code" data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "input"}}">$ {{.Option "input"}}
{{.Option "output"}}</div>`

View File

@ -1,7 +1,6 @@
package wiki
import (
"github.com/gomarkdown/markdown"
"github.com/shylinux/icebergs"
_ "github.com/shylinux/icebergs/base"
"github.com/shylinux/icebergs/base/web"
@ -13,7 +12,7 @@ import (
"strings"
)
var Index = &ice.Context{Name: "wiki", Help: "文档模块",
var Index = &ice.Context{Name: "wiki", Help: "文档中心",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
"note": {Name: "note", Help: "笔记", Value: kit.Data(
@ -29,6 +28,10 @@ var Index = &ice.Context{Name: "wiki", Help: "文档模块",
},
)},
"title": {Name: "title", Help: "标题", Value: kit.Data("template", title)},
"brief": {Name: "brief", Help: "摘要", Value: kit.Data("template", brief)},
"refer": {Name: "refer", Help: "参考", Value: kit.Data("template", refer)},
"spark": {Name: "spark", Help: "段落", Value: kit.Data("template", spark)},
"shell": {Name: "shell", Help: "命令", Value: kit.Data("template", shell)},
"order": {Name: "order", Help: "列表", Value: kit.Data("template", order)},
"table": {Name: "table", Help: "表格", Value: kit.Data("template", table)},
@ -95,16 +98,40 @@ var Index = &ice.Context{Name: "wiki", Help: "文档模块",
m.Option("type", "shell")
m.Option("name", arg[0])
m.Option("cmd_dir", arg[1])
switch arg[1] {
case "-demo":
m.Option("input", strings.Join(arg[2:], " "))
switch arg = arg[2:]; arg[0] {
case "install", "compile":
m.Option("input", strings.Join(arg[1:], " "))
default:
m.Option("output", m.Cmdx("cli.system", "sh", "-c", m.Option("input", strings.Join(arg[2:], " "))))
m.Option("output", m.Cmdx("cli.system", "sh", "-c", m.Option("input", strings.Join(arg, " "))))
}
m.Render(m.Conf("spark", ice.Meta("template")), m.Option("name"))
m.Render(m.Conf("shell", ice.Meta("template")))
}},
"spark": {Name: "spark name text", Help: "参考", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Option("type", "refer")
m.Option("name", arg[0])
m.Option("text", arg[1])
m.Optionv("list", kit.Split(arg[1], "\n"))
m.Render(m.Conf("order", ice.Meta("template")))
}},
"refer": {Name: "refer name text", Help: "参考", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Option("type", "refer")
m.Option("name", arg[0])
m.Option("text", arg[1])
m.Optionv("list", kit.Split(arg[1], "\n"))
m.Render(m.Conf("order", ice.Meta("template")))
}},
"brief": {Name: "brief text", Help: "摘要", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
m.Option("type", "brief")
m.Option("name", arg[0])
m.Option("text", arg[1])
m.Render(m.Conf("brief", ice.Meta("template")))
}},
"title": {Name: "title text", Help: "标题", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
// 生成序号
m.Option("level", "h1")
title, _ := m.Optionv("title").(map[string]int)
switch arg[0] {
case "endmenu":
@ -114,10 +141,12 @@ var Index = &ice.Context{Name: "wiki", Help: "文档模块",
m.Render(premenu)
return
case "section":
m.Option("level", "h3")
arg = arg[1:]
title["section"]++
m.Option("prefix", fmt.Sprintf("%d.%d ", title["chapter"], title["section"]))
case "chapter":
m.Option("level", "h2")
arg = arg[1:]
title["chapter"]++
title["section"] = 0
@ -160,7 +189,7 @@ var Index = &ice.Context{Name: "wiki", Help: "文档模块",
}
// 生成网页
m.Echo(string(markdown.ToHTML(buffer.Bytes(), nil, nil)))
m.Echo(string(buffer.Bytes()))
}},
"_tree": {Name: "_tree path", Help: "文库", Hand: func(m *ice.Message, c *ice.Context, key string, arg ...string) {
m.Option("dir_deep", "true")

1
go.mod
View File

@ -3,7 +3,6 @@ module github.com/shylinux/icebergs
go 1.13
require (
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03
github.com/gorilla/websocket v1.4.1
github.com/shylinux/toolkits v0.1.0
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086

5
go.sum
View File

@ -1,11 +1,6 @@
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03 h1:m13UZm540+0yrpGOIXd7q4AvPGQPSTo+2jxrBK26o64=
github.com/gomarkdown/markdown v0.0.0-20191207194928-fbea82c4bb03/go.mod h1:aii0r/K0ZnHv7G0KF7xy1v0A7s2Ljrb5byB7MO5p6TU=
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b h1:BXDEMcpHmwuwoqY/NWehDs11GOy2x+2MS7Xfihb3zFY=
github.com/shylinux/toolkits v0.0.0-20191225132906-3c11db083b5b/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g=
github.com/shylinux/toolkits v0.1.0 h1:7ghnVEjuwLf7zBsyeR37ahm2gaOKIyjSw9F9Pp9oTBU=
github.com/shylinux/toolkits v0.1.0/go.mod h1:Y68Ot6xOmo1bun67YvqC3chDGeU2gDxtsUnvVDGJm4g=
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086 h1:RYiqpb2ii2Z6J4x0wxK46kvPBbFuZcdhS+CIztmYgZs=
github.com/skip2/go-qrcode v0.0.0-20191027152451-9434209cb086/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90tenwKoCX93Gn3MAQJMOSBsDQ=

View File

@ -7,7 +7,7 @@ import (
"strings"
)
var Index = &ice.Context{Name: "docker", Help: "docker",
var Index = &ice.Context{Name: "docker", Help: "容器管理",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
"docker": {Name: "docker", Help: "docker", Value: kit.Data(kit.MDB_SHORT, "name")},

View File

@ -26,7 +26,7 @@ func (f *Frame) Close(m *ice.Message, arg ...string) bool {
return true
}
var Index = &ice.Context{Name: "tmux", Help: "终端模块",
var Index = &ice.Context{Name: "tmux", Help: "终端管理",
Caches: map[string]*ice.Cache{},
Configs: map[string]*ice.Config{
"buffer": {Name: "buffer", Help: "缓存", Value: kit.Data()},

31
type.go
View File

@ -545,37 +545,18 @@ func (m *Message) Table(cbs ...interface{}) *Message {
}
return m
}
func (m *Message) Render(str string) *Message {
if res, err := kit.Render(str, m); m.Assert(err) {
func (m *Message) Render(str string, arg ...interface{}) *Message {
if len(arg) == 0 {
arg = append(arg, m)
}
if res, err := kit.Render(str, arg[0]); m.Assert(err) {
m.Echo(string(res))
}
return m
}
func (m *Message) Split(str string, field string, space string, enter string) *Message {
indexs := []int{}
fields := kit.Split(field, space)
for i, l := range kit.Split(str, enter) {
if i == 0 && (field == "" || field == "index") {
fields = kit.Split(l, space)
if field == "index" {
for _, v := range fields {
indexs = append(indexs, strings.Index(l, v))
}
}
continue
}
if len(indexs) > 0 {
for i, v := range indexs {
if i == len(indexs)-1 {
m.Push(kit.Select("some", fields, i), l[v:])
} else {
m.Push(kit.Select("some", fields, i), l[v:indexs[i+1]])
}
}
continue
}
for _, l := range kit.Split(str, enter) {
for i, v := range kit.Split(l, space) {
m.Push(kit.Select("some", fields, i), v)
}