mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt wiki
This commit is contained in:
parent
fb5e13d687
commit
ad20ca96fc
@ -13,24 +13,30 @@ const CHAT = "chat"
|
||||
var Index = &ice.Context{Name: CHAT, Help: "聊天中心",
|
||||
Commands: map[string]*ice.Command{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Cmd(web.SERVE, aaa.WHITE, HEADER, RIVER, ACTION, FOOTER)
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, P_SEARCH, m.Prefix(P_SEARCH))
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, EMAIL, m.Prefix(EMAIL))
|
||||
m.Watch(web.SPACE_START, m.Prefix(NODE))
|
||||
m.Watch(web.SPACE_STOP, m.Prefix(NODE))
|
||||
m.Load()
|
||||
m.Cmd(web.SERVE, aaa.WHITE, "header", "river", "action", "footer")
|
||||
|
||||
m.Conf(ACTION, "meta.domain.web.chat.meet.miss", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.chat.meet.mate", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.chat.location", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.chat.paste", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.chat.scan", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.wiki.feel", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.wiki.draw", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.wiki.data", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.wiki.word", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.team.task", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.team.plan", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.mall.asset", "true")
|
||||
m.Conf(ACTION, "meta.domain.web.mall.salary", "true")
|
||||
for _, cmd := range []string{
|
||||
"web.chat.meet.miss",
|
||||
"web.chat.meet.mate",
|
||||
"web.chat.location",
|
||||
"web.chat.paste",
|
||||
"web.chat.scan",
|
||||
"web.wiki.feel",
|
||||
"web.wiki.draw",
|
||||
"web.wiki.data",
|
||||
"web.wiki.word",
|
||||
"web.team.task",
|
||||
"web.team.plan",
|
||||
"web.mall.asset",
|
||||
"web.mall.salary",
|
||||
} {
|
||||
m.Conf(ACTION, kit.Keym("domain", cmd), "true")
|
||||
}
|
||||
|
||||
m.Conf(RIVER, "meta.template", kit.Dict(
|
||||
"base", kit.Dict(
|
||||
@ -62,8 +68,6 @@ var Index = &ice.Context{Name: CHAT, Help: "聊天中心",
|
||||
},
|
||||
),
|
||||
))
|
||||
m.Watch(web.SPACE_START, m.Prefix(NODE))
|
||||
m.Watch(web.SPACE_STOP, m.Prefix(NODE))
|
||||
}},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
||||
},
|
||||
@ -72,6 +76,6 @@ var Index = &ice.Context{Name: CHAT, Help: "聊天中心",
|
||||
func init() {
|
||||
web.Index.Register(Index, &web.Frame{},
|
||||
HEADER, RIVER, STORM, ACTION, FOOTER,
|
||||
LOCATION, PASTE, SCAN, FILES,
|
||||
SCAN, PASTE, FILES, LOCATION,
|
||||
)
|
||||
}
|
||||
|
@ -1,2 +1,19 @@
|
||||
chapter "组织"
|
||||
|
||||
chat.go
|
||||
chat.shy
|
||||
|
||||
header.go
|
||||
search.go
|
||||
river.go
|
||||
action.go
|
||||
footer.go
|
||||
|
||||
scan.go
|
||||
paste.go
|
||||
files.go
|
||||
location.go
|
||||
study.go
|
||||
email.go
|
||||
meet.go
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
package chat
|
||||
|
||||
import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
)
|
||||
|
||||
const FILES = "files"
|
||||
|
||||
func init() {
|
||||
Index.Merge(&ice.Context{
|
||||
Configs: map[string]*ice.Config{
|
||||
FILES: {Name: FILES, Help: "文件", Value: kit.Data(kit.MDB_SHORT, "data")},
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
FILES: {Name: "files hash auto upload", Help: "扫码", Action: map[string]*ice.Action{
|
||||
web.UPLOAD: {Name: "upload", Help: "上传", Hand: func(m *ice.Message, arg ...string) {
|
||||
up := kit.Simple(m.Optionv(ice.MSG_UPLOAD))
|
||||
m.Cmdy(mdb.INSERT, FILES, "", mdb.HASH, "data", up[0], kit.MDB_NAME, up[1])
|
||||
}},
|
||||
mdb.REMOVE: {Name: "remove", Help: "删除", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(mdb.DELETE, FILES, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH))
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Option(mdb.FIELDS, kit.Select("time,hash,name,data", mdb.DETAIL, len(arg) > 0))
|
||||
m.Cmdy(mdb.SELECT, FILES, "", mdb.HASH, "hash", arg)
|
||||
m.Table(func(index int, value map[string]string, head []string) {
|
||||
m.PushDownload(value[kit.MDB_NAME], "/share/cache/"+value["data"])
|
||||
})
|
||||
if len(arg) == 0 {
|
||||
m.SortTimeR(kit.MDB_TIME)
|
||||
}
|
||||
m.PushAction(mdb.REMOVE)
|
||||
}},
|
||||
},
|
||||
})
|
||||
}
|
@ -3,7 +3,9 @@ package chat
|
||||
import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/aaa"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
"github.com/shylinux/icebergs/core/code"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
)
|
||||
|
||||
@ -11,6 +13,8 @@ const (
|
||||
TITLE = "title"
|
||||
LOGIN = "login"
|
||||
CHECK = "check"
|
||||
|
||||
BACKGROUND = "background"
|
||||
)
|
||||
const HEADER = "header"
|
||||
|
||||
@ -46,18 +50,17 @@ func init() {
|
||||
aaa.USERROLE: {Name: "userrole", Help: "用户角色", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Echo(aaa.UserRole(m, m.Option("who")))
|
||||
}},
|
||||
|
||||
"background": {Name: "background", Help: "背景图片", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option("background", m.Conf(HEADER, "background", arg[0]))
|
||||
BACKGROUND: {Name: "background", Help: "背景图片", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Option(BACKGROUND, m.Conf(HEADER, BACKGROUND, arg[0]))
|
||||
}},
|
||||
"pack": {Name: "pack", Help: "打包", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy("web.code.webpack", "create")
|
||||
code.WEBPACK: {Name: "webpack", Help: "打包", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy(code.WEBPACK, mdb.CREATE)
|
||||
}},
|
||||
"wx": {Name: "wx", Help: "微信", Hand: func(m *ice.Message, arg ...string) {
|
||||
m.Cmdy("web.chat.wx.access", "config")
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Option("background", m.Conf(HEADER, "background"))
|
||||
m.Option(BACKGROUND, m.Conf(HEADER, BACKGROUND))
|
||||
m.Echo(m.Conf(HEADER, TITLE))
|
||||
}},
|
||||
},
|
||||
|
@ -17,7 +17,7 @@ func init() {
|
||||
},
|
||||
Commands: map[string]*ice.Command{
|
||||
DRAW: {Name: "draw path=src/ file=main.svg 刷新:button=auto 编辑 save 项目 参数", Help: "思维导图", Meta: kit.Dict(
|
||||
"display", "/plugin/local/wiki/draw.js", "style", "drawer",
|
||||
"display", "/plugin/local/wiki/draw.js",
|
||||
), Action: map[string]*ice.Action{
|
||||
nfs.SAVE: {Name: "save", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
|
||||
_wiki_save(m, DRAW, path.Join(arg...), m.Option("content"))
|
||||
|
@ -9,18 +9,42 @@ var title = `<{{.Option "level"}} class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}"
|
||||
>{{.Option "prefix"}} {{.Option "content"}}</{{.Option "level"}}>`
|
||||
|
||||
var brief = `<p class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
>{{.Option "text"}}</p>`
|
||||
|
||||
var refer = `<ul class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
|
||||
{{range $index, $value := .Optionv "list"}}<li>{{index $value 0}}: <a href="{{index $value 1}}" target="_blank">{{index $value 1}}</a></li>{{end}}</ul>`
|
||||
var spark = `<p class="story {{.Option "style"}}" {{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}} data-type="{{.Option "type"}}" data-name="{{.Option "name"}}">{{.Option "text"}}</p>`
|
||||
|
||||
var order = `<ul class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
|
||||
{{range $index, $value := .Optionv "list"}}<li>{{$value}}</li>{{end}}</ul>`
|
||||
var table = `<table class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
|
||||
<tr>{{range $i, $v := .Optionv "head"}}<th>{{$v}}</th>{{end}}</tr>
|
||||
{{range $index, $value := .Optionv "list"}}
|
||||
<tr>{{range $i, $v := $value}}<td>{{$v}}</td>{{end}}</tr>
|
||||
{{end}}
|
||||
</table>`
|
||||
var shell = `<code class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "input"}}"
|
||||
>$ {{.Option "input"}} # {{.Option "name"}}
|
||||
{{.Option "output"}}</code>`
|
||||
var local = `<code class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
>{{range $index, $value := .Optionv "input"}}{{$value}}{{end}}</code>`
|
||||
|
||||
var image = `<img class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
title="{{.Option "text"}}" src="{{.Option "text"}}">`
|
||||
var chart = `<svg class="story" vertion="1.1" xmlns="http://www.w3.org/2000/svg" dominant-baseline="middle" text-anchor="middle"
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
width="{{.Option "width"}}" height="{{.Option "height"}}"
|
||||
@ -36,35 +60,7 @@ var field = `<fieldset class="story {{.Option "name"}}" data-type="{{.Option "ty
|
||||
<div class="status"></div>
|
||||
</fieldset>
|
||||
`
|
||||
var shell = `<code class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "input"}}"
|
||||
>$ {{.Option "input"}} # {{.Option "name"}}
|
||||
{{.Option "output"}}</code>
|
||||
`
|
||||
var local = `<code class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
>{{range $index, $value := .Optionv "input"}}{{$value}}{{end}}</code>`
|
||||
|
||||
var order = `<ul class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
|
||||
{{range $index, $value := .Optionv "list"}}<li>{{$value}}</li>{{end}}</ul>`
|
||||
|
||||
var table = `<table class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
|
||||
<tr>{{range $i, $v := .Optionv "head"}}<th>{{$v}}</th>{{end}}</tr>
|
||||
{{range $index, $value := .Optionv "list"}}
|
||||
<tr>{{range $i, $v := $value}}<td>{{$v}}</td>{{end}}</tr>
|
||||
{{end}}
|
||||
</table>`
|
||||
|
||||
var image = `<img class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}"
|
||||
title="{{.Option "text"}}" src="{{.Option "text"}}">`
|
||||
var other = ``
|
||||
|
||||
var video = `<video class="story"
|
||||
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
|
||||
|
@ -2,7 +2,6 @@ package wiki
|
||||
|
||||
import (
|
||||
ice "github.com/shylinux/icebergs"
|
||||
"github.com/shylinux/icebergs/base/mdb"
|
||||
"github.com/shylinux/icebergs/base/nfs"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
@ -53,11 +52,7 @@ const WIKI = "wiki"
|
||||
|
||||
var Index = &ice.Context{Name: WIKI, Help: "文档中心",
|
||||
Commands: map[string]*ice.Command{
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, VIDEO, m.Prefix(VIDEO))
|
||||
m.Cmd(mdb.SEARCH, mdb.CREATE, MUSIC, m.Prefix(MUSIC))
|
||||
m.Load()
|
||||
}},
|
||||
ice.CTX_INIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Load() }},
|
||||
ice.CTX_EXIT: {Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) { m.Save() }},
|
||||
},
|
||||
}
|
||||
|
@ -3,15 +3,15 @@ chapter "文档"
|
||||
wiki.go
|
||||
wiki.shy
|
||||
|
||||
baidu.go
|
||||
music.go
|
||||
video.go
|
||||
|
||||
chart.go
|
||||
template.go
|
||||
|
||||
feel.go
|
||||
draw.go
|
||||
data.go
|
||||
word.go
|
||||
|
||||
chart.go
|
||||
template.go
|
||||
|
||||
baidu.go
|
||||
music.go
|
||||
video.go
|
||||
|
||||
|
@ -8,10 +8,7 @@ import (
|
||||
"github.com/shylinux/icebergs/base/ssh"
|
||||
"github.com/shylinux/icebergs/base/web"
|
||||
kit "github.com/shylinux/toolkits"
|
||||
"github.com/skip2/go-qrcode"
|
||||
|
||||
"bytes"
|
||||
"encoding/base64"
|
||||
"fmt"
|
||||
"net/url"
|
||||
"path"
|
||||
@ -114,6 +111,62 @@ func _spark_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(SPARK, "meta.template"))
|
||||
}
|
||||
|
||||
func _order_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Optionv("list", kit.Split(strings.TrimSpace(text), "\n"))
|
||||
_option(m, ORDER, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(ORDER, "meta.template"))
|
||||
}
|
||||
func _table_show(m *ice.Message, name, text string, arg ...string) {
|
||||
head, list := []string{}, [][]string{}
|
||||
for i, v := range kit.Split(strings.TrimSpace(text), "\n") {
|
||||
if v = strings.ReplaceAll(v, "%", "%%"); i == 0 {
|
||||
head = kit.Split(v)
|
||||
} else {
|
||||
line := kit.Split(v)
|
||||
for i, v := range line {
|
||||
if ls := kit.Split(v); len(ls) > 1 {
|
||||
style := []string{}
|
||||
for i := 1; i < len(ls)-1; i += 2 {
|
||||
switch ls[i] {
|
||||
case "bg":
|
||||
ls[i] = "background-color"
|
||||
case "fg":
|
||||
ls[i] = "color"
|
||||
}
|
||||
style = append(style, ls[i]+":"+ls[i+1])
|
||||
}
|
||||
line[i] = kit.Format(`<span style="%s">%s</span>`, strings.Join(style, ";"), ls[0])
|
||||
}
|
||||
}
|
||||
list = append(list, line)
|
||||
}
|
||||
}
|
||||
m.Optionv("head", head)
|
||||
m.Optionv("list", list)
|
||||
|
||||
_option(m, TABLE, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(TABLE, "meta.template"))
|
||||
}
|
||||
func _shell_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Option("output", m.Cmdx(cli.SYSTEM, "sh", "-c", m.Option("input", text)))
|
||||
_option(m, SHELL, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(SHELL, "meta.template"))
|
||||
}
|
||||
func _local_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Option("input", m.Cmdx(nfs.CAT, text))
|
||||
_option(m, LOCAL, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(LOCAL, "meta.template"))
|
||||
}
|
||||
|
||||
func _image_show(m *ice.Message, name, text string, arg ...string) {
|
||||
if name == "qrcode" {
|
||||
m.EchoQRCode(text)
|
||||
return
|
||||
}
|
||||
|
||||
_option(m, IMAGE, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(IMAGE, "meta.template"))
|
||||
}
|
||||
func _chart_show(m *ice.Message, kind, name, text string, arg ...string) {
|
||||
var chart Chart
|
||||
switch kind {
|
||||
@ -221,60 +274,9 @@ func _field_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Option("meta", data)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(FIELD, "meta.template"))
|
||||
}
|
||||
func _shell_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Option("output", m.Cmdx(cli.SYSTEM, "sh", "-c", m.Option("input", text)))
|
||||
_option(m, SHELL, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(SHELL, "meta.template"))
|
||||
}
|
||||
func _local_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Option("input", m.Cmdx(nfs.CAT, text))
|
||||
_option(m, LOCAL, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(LOCAL, "meta.template"))
|
||||
}
|
||||
|
||||
func _order_show(m *ice.Message, name, text string, arg ...string) {
|
||||
m.Optionv("list", kit.Split(strings.TrimSpace(text), "\n"))
|
||||
_option(m, ORDER, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(ORDER, "meta.template"))
|
||||
}
|
||||
func _table_show(m *ice.Message, name, text string, arg ...string) {
|
||||
head, list := []string{}, [][]string{}
|
||||
for i, v := range kit.Split(strings.TrimSpace(text), "\n") {
|
||||
if v = strings.ReplaceAll(v, "%", "%%"); i == 0 {
|
||||
head = kit.Split(v)
|
||||
} else {
|
||||
line := kit.Split(v)
|
||||
for i, v := range line {
|
||||
if ls := kit.Split(v); len(ls) > 1 {
|
||||
style := []string{}
|
||||
for i := 1; i < len(ls)-1; i += 2 {
|
||||
switch ls[i] {
|
||||
case "bg":
|
||||
ls[i] = "background-color"
|
||||
case "fg":
|
||||
ls[i] = "color"
|
||||
}
|
||||
style = append(style, ls[i]+":"+ls[i+1])
|
||||
}
|
||||
line[i] = kit.Format(`<span style="%s">%s</span>`, strings.Join(style, ";"), ls[0])
|
||||
}
|
||||
}
|
||||
list = append(list, line)
|
||||
}
|
||||
}
|
||||
m.Optionv("head", head)
|
||||
m.Optionv("list", list)
|
||||
|
||||
_option(m, TABLE, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(TABLE, "meta.template"))
|
||||
}
|
||||
func _image_show(m *ice.Message, name, text string, arg ...string) {
|
||||
_option(m, IMAGE, name, text, arg...)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(IMAGE, "meta.template"))
|
||||
}
|
||||
func _other_show(m *ice.Message, name, text string, arg ...string) {
|
||||
_option(m, OTHER, name, text, arg...)
|
||||
// m.Cmdy(mdb.RENDER, web.RENDER.Frame, text)
|
||||
m.Render(ice.RENDER_TEMPLATE, m.Conf(OTHER, "meta.template"))
|
||||
}
|
||||
|
||||
func _word_show(m *ice.Message, name string, arg ...string) {
|
||||
@ -299,12 +301,13 @@ const (
|
||||
SHELL = "shell"
|
||||
LOCAL = "local"
|
||||
|
||||
FIELD = "field"
|
||||
IMAGE = "image"
|
||||
CHART = "chart"
|
||||
PARSE = "parse"
|
||||
FIELD = "field"
|
||||
OTHER = "other"
|
||||
|
||||
PARSE = "parse"
|
||||
|
||||
PREMENU = "premenu"
|
||||
CHAPTER = "chapter"
|
||||
SECTION = "section"
|
||||
@ -322,18 +325,17 @@ func init() {
|
||||
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,
|
||||
"prompt", kit.Dict("shell", "$ "),
|
||||
)},
|
||||
SPARK: {Name: SPARK, Help: "段落", Value: kit.Data("template", spark, "prompt", kit.Dict("shell", "$ "))},
|
||||
|
||||
ORDER: {Name: ORDER, Help: "列表", Value: kit.Data("template", order)},
|
||||
TABLE: {Name: TABLE, Help: "表格", Value: kit.Data("template", table)},
|
||||
SHELL: {Name: SHELL, Help: "命令", Value: kit.Data("template", shell)},
|
||||
LOCAL: {Name: LOCAL, Help: "文件", Value: kit.Data("template", local)},
|
||||
|
||||
FIELD: {Name: FIELD, Help: "插件", Value: kit.Data("template", field)},
|
||||
CHART: {Name: CHART, Help: "图表", Value: kit.Data("template", chart, "suffix", `</svg>`)},
|
||||
IMAGE: {Name: IMAGE, Help: "图片", Value: kit.Data("template", image)},
|
||||
CHART: {Name: CHART, Help: "图表", Value: kit.Data("template", chart, "suffix", `</svg>`)},
|
||||
FIELD: {Name: FIELD, Help: "插件", Value: kit.Data("template", field)},
|
||||
OTHER: {Name: FIELD, Help: "网页", Value: kit.Data("template", other)},
|
||||
|
||||
WORD: {Name: WORD, Help: "语言文字", Value: kit.Data(
|
||||
kit.MDB_PATH, "", "regs", ".*\\.shy", "alias", map[string]interface{}{
|
||||
@ -359,11 +361,6 @@ func init() {
|
||||
_title_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
BRIEF: {Name: "brief [name] text", Help: "摘要", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if len(arg) == 0 {
|
||||
m.Echo(`<br class="story" data-type="brief">`)
|
||||
return
|
||||
}
|
||||
|
||||
arg = _name(m, arg)
|
||||
_brief_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
@ -371,7 +368,7 @@ func init() {
|
||||
arg = _name(m, arg)
|
||||
_refer_show(m, arg[0], arg[1], arg[2:]...)
|
||||
}},
|
||||
SPARK: {Name: "spark [name] text", Help: "灵感", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
SPARK: {Name: "spark [name] text", Help: "段落", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if len(arg) == 0 {
|
||||
m.Echo(`<br class="story" data-type="spark">`)
|
||||
return
|
||||
@ -386,11 +383,6 @@ func init() {
|
||||
_order_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
TABLE: {Name: "table [name] `[item item\n]...`", Help: "表格", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if arg[0] == "cmd" {
|
||||
msg := m.Cmd(kit.Split(arg[1])).Table()
|
||||
arg[1] = msg.Result()
|
||||
}
|
||||
|
||||
arg = _name(m, arg)
|
||||
_table_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
@ -403,25 +395,7 @@ func init() {
|
||||
_local_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
|
||||
FIELD: {Name: "field [name] cmd", Help: "插件", Action: map[string]*ice.Action{
|
||||
"run": {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||
if !m.Warn(!m.Right(arg[1:]), ice.ErrNotRight, arg[1:]) {
|
||||
m.Cmdy(arg[1:])
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
arg = _name(m, arg)
|
||||
_field_show(m, strings.ReplaceAll(kit.Select(path.Base(arg[1]), arg[0]), " ", "_"), arg[1], arg[2:]...)
|
||||
}},
|
||||
IMAGE: {Name: "image [name] url", Help: "图片", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if arg[0] == "qrcode" {
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 4096))
|
||||
if qr, e := qrcode.New(arg[1], qrcode.Medium); m.Assert(e) {
|
||||
m.Assert(qr.Write(kit.Int(kit.Select("256")), buf))
|
||||
}
|
||||
arg[1] = "data:image/png;base64," + base64.StdEncoding.EncodeToString(buf.Bytes())
|
||||
}
|
||||
|
||||
arg = _name(m, arg)
|
||||
_image_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
m.Render("")
|
||||
@ -432,6 +406,21 @@ func init() {
|
||||
}
|
||||
_chart_show(m, arg[0], arg[1], arg[2], arg[3:]...)
|
||||
}},
|
||||
FIELD: {Name: "field [name] cmd", Help: "插件", Action: map[string]*ice.Action{
|
||||
"run": {Name: "run", Help: "运行", Hand: func(m *ice.Message, arg ...string) {
|
||||
if !m.Warn(!m.Right(arg[1:]), ice.ErrNotRight, arg[1:]) {
|
||||
m.Cmdy(arg[1:])
|
||||
}
|
||||
}},
|
||||
}, Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
arg = _name(m, arg)
|
||||
_field_show(m, strings.ReplaceAll(kit.Select(path.Base(arg[1]), arg[0]), " ", "_"), arg[1], arg[2:]...)
|
||||
}},
|
||||
OTHER: {Name: "other [name] url", Help: "网页", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
arg = _name(m, arg)
|
||||
_other_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
|
||||
PARSE: {Name: "parse type=auto,json,http,form,list auto text:textarea", Help: "结构", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
if arg[0] == "auto" && (strings.HasPrefix(arg[1], "{") || strings.HasPrefix(arg[1], "[")) {
|
||||
arg[0] = "json"
|
||||
@ -469,10 +458,6 @@ func init() {
|
||||
}
|
||||
}
|
||||
}},
|
||||
OTHER: {Name: "other [name] url", Help: "网页", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
|
||||
arg = _name(m, arg)
|
||||
_other_show(m, arg[0], kit.Select(arg[0], arg[1]), arg[2:]...)
|
||||
}},
|
||||
|
||||
WORD: {Name: "word path=src/main.shy auto 演示", Help: "语言文字", Meta: kit.Dict(
|
||||
"display", "/plugin/local/wiki/word.js", "style", "word",
|
||||
|
Loading…
x
Reference in New Issue
Block a user