mirror of
https://shylinux.com/x/icebergs
synced 2025-04-26 01:24:05 +08:00
opt wiki
This commit is contained in:
parent
028da6be6b
commit
08f8ba8730
@ -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>
|
||||
|
@ -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"}}">`,
|
||||
)},
|
||||
},
|
||||
})
|
||||
|
@ -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>`,
|
||||
)},
|
||||
},
|
||||
})
|
||||
|
@ -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>`,
|
||||
)},
|
||||
},
|
||||
})
|
||||
|
@ -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>`,
|
||||
)},
|
||||
},
|
||||
})
|
||||
|
@ -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>`,
|
||||
)},
|
||||
},
|
||||
|
@ -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>
|
||||
|
@ -1 +0,0 @@
|
||||
package wiki
|
@ -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>`
|
||||
|
@ -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>`,
|
||||
)},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
@ -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,
|
||||
)
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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},
|
||||
|
1
misc.go
1
misc.go
@ -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 {
|
||||
|
Loading…
x
Reference in New Issue
Block a user