forked from x/icebergs
opt wiki
This commit is contained in:
parent
12a7ac761a
commit
b0346ea915
@ -160,3 +160,9 @@ func ConfigFromOption(m *ice.Message, arg ...string) {
|
|||||||
m.Config(k, kit.Select(m.Config(k), m.Option(k)))
|
m.Config(k, kit.Select(m.Config(k), m.Option(k)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
func ConfigAuto(m *ice.Message, arg ...string) {
|
||||||
|
if cs := m.Target().Configs; cs[m.CommandKey()] == nil {
|
||||||
|
cs[m.CommandKey()] = &ice.Config{Value: kit.Data()}
|
||||||
|
ice.Info.Load(m, m.CommandKey())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -290,6 +290,9 @@ func AutoConfig(args ...ice.Any) *ice.Action {
|
|||||||
}
|
}
|
||||||
inputs = append(inputs, k)
|
inputs = append(inputs, k)
|
||||||
})
|
})
|
||||||
|
if len(inputs) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
cs := m.Target().Commands
|
cs := m.Target().Commands
|
||||||
if cs[m.CommandKey()] == nil {
|
if cs[m.CommandKey()] == nil {
|
||||||
@ -298,7 +301,7 @@ func AutoConfig(args ...ice.Any) *ice.Action {
|
|||||||
|
|
||||||
if cs[m.CommandKey()].Actions[INSERT] != nil {
|
if cs[m.CommandKey()].Actions[INSERT] != nil {
|
||||||
if cs[m.CommandKey()].Meta[INSERT] == nil {
|
if cs[m.CommandKey()].Meta[INSERT] == nil {
|
||||||
m.Design(INSERT, "添加", append([]ice.Any{ZONE}, inputs...)...)
|
m.Design(INSERT, "添加", append([]ice.Any{kit.Select(ZONE, m.Config(SHORT))}, inputs...)...)
|
||||||
}
|
}
|
||||||
} else if cs[m.CommandKey()].Actions[CREATE] != nil {
|
} else if cs[m.CommandKey()].Actions[CREATE] != nil {
|
||||||
if cs[m.CommandKey()].Meta[CREATE] == nil {
|
if cs[m.CommandKey()].Meta[CREATE] == nil {
|
||||||
|
@ -35,16 +35,6 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
func FileAction(arg ...ice.Any) ice.Actions {
|
|
||||||
return ice.Actions{ice.CTX_INIT: mdb.AutoConfig(arg...),
|
|
||||||
nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(nfs.TRASH, path.Join(m.Config(nfs.PATH), m.Option(nfs.PATH)))
|
|
||||||
}},
|
|
||||||
nfs.SAVE: {Name: "save path text", Help: "保存", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(nfs.SAVE, arg[0], arg[1], kit.Dict(nfs.DIR_ROOT, m.Config(nfs.PATH)))
|
|
||||||
}},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
func CSV(m *ice.Message, text string, head ...string) *ice.Message {
|
func CSV(m *ice.Message, text string, head ...string) *ice.Message {
|
||||||
bio := bytes.NewBufferString(text)
|
bio := bytes.NewBufferString(text)
|
||||||
r := csv.NewReader(bio)
|
r := csv.NewReader(bio)
|
||||||
|
@ -119,7 +119,7 @@ func init() {
|
|||||||
<div class="output"></div>
|
<div class="output"></div>
|
||||||
<div class="status"></div>
|
<div class="status"></div>
|
||||||
</fieldset>`), ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
</fieldset>`), ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if arg[1] == "args" {
|
if arg[1] == ctx.ARGS {
|
||||||
arg = kit.Simple("", arg)
|
arg = kit.Simple("", arg)
|
||||||
}
|
}
|
||||||
if arg = _name(m, arg); strings.Contains(arg[1], ice.NL) {
|
if arg = _name(m, arg); strings.Contains(arg[1], ice.NL) {
|
||||||
|
@ -54,7 +54,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
list := []string{kit.Format(`<div class="story" data-type="spark" data-name="%s">`, arg[0])}
|
list := []string{kit.Format(`<div class="story" data-type="spark" data-name="%s">`, arg[0])}
|
||||||
for _, l := range kit.SplitLine(strings.Join(arg[1:], ice.NL)) {
|
for _, l := range kit.SplitLine(strings.Join(arg[1:], ice.NL)) {
|
||||||
list = append(list, "<div>", Format("label", kit.Select("> ", "$ ", arg[0] == SHELL)), Format("span", l), "</div>")
|
list = append(list, Format("div", Format("label", kit.Select("> ", "$ ", arg[0] == SHELL)), Format("span", l)))
|
||||||
}
|
}
|
||||||
return strings.Join(append(list, "</div>"), "")
|
return strings.Join(append(list, "</div>"), "")
|
||||||
})
|
})
|
||||||
@ -77,7 +77,6 @@ func init() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if strings.HasPrefix(line, "```") {
|
if strings.HasPrefix(line, "```") {
|
||||||
if block == "" {
|
if block == "" {
|
||||||
text()
|
text()
|
||||||
@ -88,7 +87,6 @@ func init() {
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
code = append(code, line)
|
code = append(code, line)
|
||||||
})
|
})
|
||||||
text()
|
text()
|
||||||
|
@ -36,13 +36,13 @@ func _wiki_path(m *ice.Message, arg ...string) string {
|
|||||||
return path.Join(m.Config(nfs.PATH), path.Join(arg...))
|
return path.Join(m.Config(nfs.PATH), path.Join(arg...))
|
||||||
}
|
}
|
||||||
func _wiki_link(m *ice.Message, text string) string {
|
func _wiki_link(m *ice.Message, text string) string {
|
||||||
if !strings.HasPrefix(text, ice.PS) && !strings.HasPrefix(text, ice.HTTP) {
|
if !kit.HasPrefix(text, ice.PS, ice.HTTP) {
|
||||||
text = path.Join(web.SHARE_LOCAL, _wiki_path(m, text))
|
text = path.Join(web.SHARE_LOCAL, _wiki_path(m, text))
|
||||||
}
|
}
|
||||||
return text
|
return text
|
||||||
}
|
}
|
||||||
func _wiki_list(m *ice.Message, arg ...string) bool {
|
func _wiki_list(m *ice.Message, arg ...string) bool {
|
||||||
if m.Option(nfs.DIR_ROOT, _wiki_path(m)); len(arg) == 0 || strings.HasSuffix(arg[0], ice.PS) {
|
if m.Option(nfs.DIR_ROOT, _wiki_path(m)); len(arg) == 0 || kit.HasSuffix(arg[0], ice.PS) {
|
||||||
if m.Option(nfs.DIR_DEEP) != ice.TRUE {
|
if m.Option(nfs.DIR_DEEP) != ice.TRUE {
|
||||||
m.Cmdy(nfs.DIR, kit.Slice(arg, 0, 1), kit.Dict(nfs.DIR_TYPE, nfs.DIR))
|
m.Cmdy(nfs.DIR, kit.Slice(arg, 0, 1), kit.Dict(nfs.DIR_TYPE, nfs.DIR))
|
||||||
}
|
}
|
||||||
@ -78,24 +78,10 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func WikiAction(dir string, ext ...string) ice.Actions {
|
func WikiAction(dir string, ext ...string) ice.Actions {
|
||||||
return ice.Actions{
|
return ice.Actions{ice.CTX_INIT: mdb.AutoConfig(nfs.PATH, dir, lex.REGEXP, kit.FileReg(ext...)),
|
||||||
ice.CTX_INIT: &ice.Action{Hand: func(m *ice.Message, arg ...string) {
|
web.UPLOAD: {Hand: func(m *ice.Message, arg ...string) { _wiki_upload(m, m.Option(nfs.PATH)) }},
|
||||||
if cs := m.Target().Configs; cs[m.CommandKey()] == nil {
|
nfs.SAVE: {Name: "save path text", Hand: func(m *ice.Message, arg ...string) { _wiki_save(m, m.Option(nfs.PATH), m.Option(mdb.TEXT)) }},
|
||||||
cs[m.CommandKey()] = &ice.Config{Value: kit.Data()}
|
nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) { m.Cmd(nfs.TRASH, _wiki_path(m, m.Option(nfs.PATH))) }},
|
||||||
ice.Info.Load(m, m.CommandKey())
|
|
||||||
}
|
|
||||||
m.Config(nfs.PATH, dir)
|
|
||||||
m.Config(lex.REGEXP, kit.FileReg(ext...))
|
|
||||||
}},
|
|
||||||
nfs.TRASH: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(nfs.TRASH, path.Join(m.Config(nfs.PATH), m.Option(nfs.PATH)))
|
|
||||||
}},
|
|
||||||
nfs.SAVE: {Name: "save path text", Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
m.Cmd(nfs.SAVE, arg[0], arg[1], kit.Dict(nfs.DIR_ROOT, m.Config(nfs.PATH)))
|
|
||||||
}},
|
|
||||||
web.UPLOAD: {Hand: func(m *ice.Message, arg ...string) {
|
|
||||||
_wiki_upload(m, m.Option(nfs.PATH))
|
|
||||||
}},
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,16 +6,14 @@ import (
|
|||||||
"shylinux.com/x/icebergs/base/ctx"
|
"shylinux.com/x/icebergs/base/ctx"
|
||||||
"shylinux.com/x/icebergs/base/mdb"
|
"shylinux.com/x/icebergs/base/mdb"
|
||||||
"shylinux.com/x/icebergs/base/nfs"
|
"shylinux.com/x/icebergs/base/nfs"
|
||||||
|
"shylinux.com/x/icebergs/base/ssh"
|
||||||
|
"shylinux.com/x/icebergs/misc/git"
|
||||||
kit "shylinux.com/x/toolkits"
|
kit "shylinux.com/x/toolkits"
|
||||||
)
|
)
|
||||||
|
|
||||||
func _word_show(m *ice.Message, name string, arg ...string) {
|
func _word_show(m *ice.Message, name string, arg ...string) {
|
||||||
m.SetResult()
|
m.OptionMulti(ice.MSG_ALIAS, m.Configv(mdb.ALIAS), TITLE, map[string]int{}, MENU, kit.Dict(mdb.LIST, kit.List()))
|
||||||
defer m.StatusTime()
|
m.Cmdy(ssh.SOURCE, name, kit.Dict(nfs.DIR_ROOT, _wiki_path(m)))
|
||||||
m.Option(TITLE, map[string]int{})
|
|
||||||
m.Option(MENU, kit.Dict(mdb.LIST, kit.List()))
|
|
||||||
m.Option(ice.MSG_ALIAS, m.Configv(mdb.ALIAS))
|
|
||||||
m.Cmdy("ssh.source", name, kit.Dict(nfs.DIR_ROOT, _wiki_path(m)))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const WORD = "word"
|
const WORD = "word"
|
||||||
@ -36,12 +34,15 @@ func init() {
|
|||||||
WordAlias(m, SEQUENCE, CHART, SEQUENCE)
|
WordAlias(m, SEQUENCE, CHART, SEQUENCE)
|
||||||
}},
|
}},
|
||||||
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
mdb.INPUTS: {Name: "inputs", Help: "补全", Hand: func(m *ice.Message, arg ...string) {
|
||||||
m.Option(nfs.DIR_DEEP, ice.TRUE)
|
m.Cmd(git.REPOS, ice.OptionFields(nfs.PATH)).Tables(func(value ice.Maps) {
|
||||||
for _, p := range []string{"src/", "usr/icebergs/", "usr/learning/", "usr/linux-story/", "usr/nginx-story/", "usr/golang-story/", "usr/redis-story/", "usr/mysql-story/"} {
|
if m.Option(nfs.DIR_DEEP, ice.TRUE); kit.Path(value[nfs.PATH]) == kit.Path("") {
|
||||||
_wiki_list(m, p)
|
_wiki_list(m, value[nfs.PATH]+"/src/")
|
||||||
|
} else {
|
||||||
|
_wiki_list(m, value[nfs.PATH])
|
||||||
}
|
}
|
||||||
|
})
|
||||||
}}, "play": {Name: "play", Help: "演示"},
|
}}, "play": {Name: "play", Help: "演示"},
|
||||||
ice.STORY: {Name: "story", Hand: func(m *ice.Message, arg ...string) { m.Cmdy(arg[0], ice.RUN, arg[2:]) }},
|
ice.STORY: {Hand: func(m *ice.Message, arg ...string) { m.Cmdy(arg[0], ice.RUN, arg[2:]) }},
|
||||||
}, WikiAction("", nfs.SHY), ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
}, WikiAction("", nfs.SHY), ctx.CmdAction()), Hand: func(m *ice.Message, arg ...string) {
|
||||||
if m.Option(nfs.DIR_DEEP, ice.TRUE); len(arg) == 0 {
|
if m.Option(nfs.DIR_DEEP, ice.TRUE); len(arg) == 0 {
|
||||||
arg = append(arg, "src/")
|
arg = append(arg, "src/")
|
||||||
@ -52,18 +53,9 @@ func init() {
|
|||||||
}},
|
}},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
func WordAction(template string, arg ...ice.Any) ice.Actions {
|
||||||
|
return ice.Actions{ice.CTX_INIT: mdb.AutoConfig(append([]ice.Any{nfs.TEMPLATE, template}, arg...)...)}
|
||||||
|
}
|
||||||
func WordAlias(m *ice.Message, cmd string, cmds ...string) {
|
func WordAlias(m *ice.Message, cmd string, cmds ...string) {
|
||||||
m.Conf(WORD, kit.Keym(mdb.ALIAS, cmd), cmds)
|
m.Conf(WORD, kit.Keym(mdb.ALIAS, cmd), cmds)
|
||||||
}
|
}
|
||||||
func WordAction(template string, arg ...ice.Any) ice.Actions {
|
|
||||||
return ice.Actions{ice.CTX_INIT: &ice.Action{Hand: func(m *ice.Message, args ...string) {
|
|
||||||
if cs := m.Target().Configs; cs[m.CommandKey()] == nil {
|
|
||||||
cs[m.CommandKey()] = &ice.Config{Value: kit.Data()}
|
|
||||||
ice.Info.Load(m, m.CommandKey())
|
|
||||||
}
|
|
||||||
m.Config(nfs.TEMPLATE, template)
|
|
||||||
for i := 0; i < len(arg)-1; i += 2 {
|
|
||||||
m.Config(kit.Format(arg[i]), arg[i+1])
|
|
||||||
}
|
|
||||||
}}}
|
|
||||||
}
|
|
||||||
|
6
misc.go
6
misc.go
@ -78,6 +78,12 @@ func (m *Message) PushDetail(value Any, arg ...string) *Message {
|
|||||||
return m.Push(FIELDS_DETAIL, value, kit.Split(kit.Join(arg)))
|
return m.Push(FIELDS_DETAIL, value, kit.Split(kit.Join(arg)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (m *Message) OptionMulti(arg ...Any) *Message {
|
||||||
|
for i := 0; i < len(arg); i += 2 {
|
||||||
|
m.Option(kit.Format(arg[i]), arg[i+1])
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
func (m *Message) ToLowerAppend(arg ...string) *Message {
|
func (m *Message) ToLowerAppend(arg ...string) *Message {
|
||||||
for _, k := range m.meta[MSG_APPEND] {
|
for _, k := range m.meta[MSG_APPEND] {
|
||||||
m.RenameAppend(k, strings.ToLower(k))
|
m.RenameAppend(k, strings.ToLower(k))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user