1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-26 01:24:05 +08:00
This commit is contained in:
shaoying 2021-07-26 07:36:09 +08:00
parent 028da6be6b
commit 08f8ba8730
14 changed files with 67 additions and 75 deletions

View File

@ -84,8 +84,7 @@ func init() {
},
Configs: map[string]*ice.Config{
FIELD: {Name: FIELD, Help: "插件", Value: kit.Data(
kit.MDB_TEMPLATE, `<fieldset class="story {{.Option "name"}}"
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}" data-meta='{{.Optionv "meta"|Format}}'>
kit.MDB_TEMPLATE, `<fieldset {{.OptionTemplate}}" data-meta='{{.Optionv "meta"|Format}}'>
<legend>{{.Option "name"}}</legend>
<form class="option"></form>
<div class="action"></div>

View File

@ -42,10 +42,7 @@ func init() {
},
Configs: map[string]*ice.Config{
IMAGE: {Name: IMAGE, Help: "图片", Value: kit.Data(
kit.MDB_TEMPLATE, `<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"}}">`,
kit.MDB_TEMPLATE, `<img {{.OptionTemplate}} title="{{.Option "text"}}" src="{{.Option "text"}}">`,
)},
},
})

View File

@ -24,8 +24,7 @@ func init() {
},
Configs: map[string]*ice.Config{
LOCAL: {Name: LOCAL, Help: "文件", Value: kit.Data(
kit.MDB_TEMPLATE, `<code class="story" {{.OptionTemplate}}
>{{range $index, $value := .Optionv "input"}}{{$value}}{{end}}</code>`,
kit.MDB_TEMPLATE, `<code {{.OptionTemplate}}>{{range $index, $value := .Optionv "input"}}{{$value}}{{end}}</code>`,
)},
},
})

View File

@ -25,10 +25,7 @@ func init() {
},
Configs: map[string]*ice.Config{
ORDER: {Name: ORDER, Help: "列表", Value: kit.Data(
kit.MDB_TEMPLATE, `<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>`,
kit.MDB_TEMPLATE, `<ul {{.OptionTemplate}}>{{range $index, $value := .Optionv "list"}}<li>{{$value}}</li>{{end}}</ul>`,
)},
},
})

View File

@ -35,10 +35,7 @@ func init() {
},
Configs: map[string]*ice.Config{
REFER: {Name: REFER, Help: "参考", Value: kit.Data(
kit.MDB_TEMPLATE, `<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>`,
kit.MDB_TEMPLATE, `<ul {{.OptionTemplate}}>{{range $index, $value := .Optionv "list"}}<li>{{index $value 0}}: <a href="{{index $value 1}}" target="_blank">{{index $value 1}}</a></li>{{end}}</ul>`,
)},
},
})

View File

@ -24,10 +24,7 @@ func init() {
},
Configs: map[string]*ice.Config{
SHELL: {Name: SHELL, Help: "命令", Value: kit.Data(
kit.MDB_TEMPLATE, `<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"}}
kit.MDB_TEMPLATE, `<code {{.OptionTemplate}}>$ {{.Option "input"}} # {{.Option "name"}}
{{.Option "output"}}</code>`,
)},
},

View File

@ -51,9 +51,7 @@ func init() {
},
Configs: map[string]*ice.Config{
TABLE: {Name: TABLE, Help: "表格", Value: kit.Data(
kit.MDB_TEMPLATE, `<table class="story"
{{range $k, $v := .Optionv "extra"}}data-{{$k}}='{{$v}}'{{end}}
data-type="{{.Option "type"}}" data-name="{{.Option "name"}}" data-text="{{.Option "text"}}">
kit.MDB_TEMPLATE, `<table {{.OptionTemplate}}>
<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>

View File

@ -1 +0,0 @@
package wiki

View File

@ -1,7 +1,6 @@
package wiki
import (
"fmt"
"strings"
ice "github.com/shylinux/icebergs"
@ -9,40 +8,39 @@ import (
)
func _title_show(m *ice.Message, kind, text string, arg ...string) {
title, _ := m.Optionv(TITLE).(map[string]int)
switch kind {
switch title, _ := m.Optionv(TITLE).(map[string]int); kind {
case PREMENU: // 前置目录
m.RenderTemplate(premenu)
_option(m, kind, "", strings.TrimSpace(text), arg...)
m.RenderTemplate(m.Conf(TITLE, kit.Keym(kind)))
return
case ENDMENU: // 后置目录
m.RenderTemplate(endmenu)
_option(m, kind, "", strings.TrimSpace(text), arg...)
m.RenderTemplate(m.Conf(TITLE, kit.Keym(kind)))
return
case SECTION: // 分节标题
title[SECTION]++
m.Option("level", "h3")
m.Option("prefix", fmt.Sprintf("%d.%d ", title[CHAPTER], title[SECTION]))
m.Option(kit.MDB_LEVEL, "h3")
m.Option(kit.MDB_PREFIX, kit.Format("%d.%d ", title[CHAPTER], title[SECTION]))
case CHAPTER: // 章节标题
title[CHAPTER]++
title[SECTION] = 0
m.Option("level", "h2")
m.Option("prefix", fmt.Sprintf("%d ", title[CHAPTER]))
m.Option(kit.MDB_LEVEL, "h2")
m.Option(kit.MDB_PREFIX, kit.Format("%d ", title[CHAPTER]))
default: // 文章标题
m.Option("level", "h1")
m.Option("prefix", "")
m.Option(kit.MDB_LEVEL, "h1")
m.Option(kit.MDB_PREFIX, "")
}
// 添加目录
menu, _ := m.Optionv("menu").(map[string]interface{})
menu["list"] = append(menu["list"].([]interface{}), map[string]interface{}{
"level": m.Option("level"), "prefix": m.Option("prefix"), "content": m.Option("content", text),
})
// 渲染引擎
_wiki_template(m, TITLE, "", text, arg...)
// 添加目录
menu, _ := m.Optionv(kit.MDB_MENU).(map[string]interface{})
menu[kit.MDB_LIST] = append(menu[kit.MDB_LIST].([]interface{}), kit.Dict(m.OptionSimple("level,prefix,text")))
}
const (
@ -59,8 +57,8 @@ func init() {
Commands: map[string]*ice.Command{
TITLE: {Name: "title [premenu|chapter|section|endmenu] text", Help: "标题", Hand: func(m *ice.Message, c *ice.Context, cmd string, arg ...string) {
if len(arg) == 0 {
ns := strings.Split(ice.Info.NodeName, "-")
arg = append(arg, kit.Select(ns[len(ns)-1], ""))
ns := kit.Split(ice.Info.NodeName, "-")
arg = append(arg, ns[len(ns)-1])
}
if len(arg) == 1 {
arg = append(arg, "")
@ -70,13 +68,12 @@ func init() {
},
Configs: map[string]*ice.Config{
TITLE: {Name: TITLE, Help: "标题", Value: kit.Data(
kit.MDB_TEMPLATE, `<{{.Option "level"}} {{.OptionTemplate}}>{{.Option "prefix"}} {{.Option "content"}}</{{.Option "level"}}>`,
kit.MDB_TEMPLATE, `<{{.Option "level"}} {{.OptionTemplate}}>{{.Option "prefix"}} {{.Option "text"}}</{{.Option "level"}}>`,
PREMENU, `<ul {{.OptionTemplate}}></ul>`,
ENDMENU, `<ul {{.OptionTemplate}}>{{$menu := .Optionv "menu"}}
{{range $index, $value := Value $menu "list"}}<li>{{Value $value "prefix"}} {{Value $value "text"}}</li>{{end}}
</ul>`,
)},
},
})
}
var premenu = `<ul class="story" data-type="premenu"></ul>`
var endmenu = `<ul class="story" data-type="endmenu">{{$menu := .Optionv "menu"}}{{range $index, $value := Value $menu "list"}}
<li>{{Value $value "prefix"}} {{Value $value "content"}}</li>{{end}}
</ul>`

View File

@ -9,11 +9,6 @@ import (
kit "github.com/shylinux/toolkits"
)
var video = `<video 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"}}" controls></video>`
func _video_show(m *ice.Message, name, text string, arg ...string) {
if !strings.HasPrefix(text, "http") && !strings.HasPrefix(text, "/") {
text = path.Join("/share/local", _wiki_path(m, FEEL, text))
@ -33,9 +28,6 @@ const VIDEO = "video"
func init() {
Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{
VIDEO: {Name: "video", Help: "视频", Value: kit.Data(kit.MDB_TEMPLATE, video)},
},
Commands: map[string]*ice.Command{
VIDEO: {Name: "video [name] url", Help: "视频", Action: map[string]*ice.Action{
mdb.RENDER: {Name: "render", Help: "渲染", Hand: func(m *ice.Message, arg ...string) {
@ -45,5 +37,11 @@ func init() {
arg = _name(m, arg)
_video_show(m, arg[0], arg[1], arg[2:]...)
}},
}})
},
Configs: map[string]*ice.Config{
VIDEO: {Name: "video", Help: "视频", Value: kit.Data(
kit.MDB_TEMPLATE, `<video {{.OptionTemplate}} title="{{.Option "text"}}" src="{{.Option "text"}}" controls></video>`,
)},
},
})
}

View File

@ -60,5 +60,6 @@ var Index = &ice.Context{Name: WIKI, Help: "文档中心",
func init() {
web.Index.Register(Index, &web.Frame{},
FEEL, WORD, DATA, DRAW, IMAGE, SPARK,
TITLE,
)
}

View File

@ -1,27 +1,39 @@
title
title "hi"
premenu
chapter "文档"
section "文档"
endmenu
return
field "影音" web.wiki.feel
field "数据" web.wiki.data
field "绘图" web.wiki.draw
return
field "文档" web.wiki.word
field "绘图" web.wiki.draw
field "绘图" web.wiki.draw
field "绘图" web.wiki.draw
wiki.go
wiki.shy
feel.go
word.go
data.go
draw.go
title.go
brief.go
refer.go
spark.go
order.go
table.go
chart.go
image.go
video.go
music.go
baidu.go
template.go
field.go
shell.go
local.go
parse.go
other.go
data.go
draw.go
feel.go
word.go
wiki.go
wiki.shy

View File

@ -31,9 +31,9 @@ func _option(m *ice.Message, kind, name, text string, arg ...string) {
func _word_show(m *ice.Message, name string, arg ...string) {
m.Set(ice.MSG_RESULT)
m.Option(TITLE, map[string]int{})
m.Option("menu", kit.Dict("list", []interface{}{}))
m.Option(kit.MDB_MENU, kit.Dict(kit.MDB_LIST, []interface{}{}))
m.Option(ice.MSG_ALIAS, m.Confv(WORD, kit.Keym("alias")))
m.Option(ice.MSG_ALIAS, m.Confv(WORD, kit.Keym(kit.MDB_ALIAS)))
m.Option(nfs.DIR_ROOT, _wiki_path(m, WORD))
m.Option(ice.MSG_RENDER, ice.RENDER_RAW)
m.Cmdy(ssh.SOURCE, name)
@ -50,7 +50,7 @@ func init() {
Index.Merge(&ice.Context{
Configs: map[string]*ice.Config{
WORD: {Name: WORD, Help: "语言文字", Value: kit.Data(
kit.MDB_PATH, "", kit.MDB_REGEXP, ".*\\.shy", "alias", kit.Dict(
kit.MDB_PATH, "", kit.MDB_REGEXP, ".*\\.shy", kit.MDB_ALIAS, kit.Dict(
PREMENU, []interface{}{TITLE, PREMENU},
CHAPTER, []interface{}{TITLE, CHAPTER},
SECTION, []interface{}{TITLE, SECTION},

View File

@ -275,6 +275,7 @@ func (m *Message) RenderResult(args ...interface{}) *Message {
return m.Render(RENDER_RESULT, args...)
}
func (m *Message) RenderTemplate(args ...interface{}) *Message {
return m.Render(RENDER_TEMPLATE, args...)
}
func (m *Message) RenderDownload(args ...interface{}) *Message {