From 5bc8a0b470fa6a13b4915d820e3bd71bd0a2758e Mon Sep 17 00:00:00 2001 From: shylinux Date: Sat, 1 Jul 2023 13:44:18 +0800 Subject: [PATCH] opt portal --- base/web/space.go | 3 +++ core/wiki/field.go | 1 + core/wiki/portal.css | 37 ++++++++++++++++++++----------------- core/wiki/portal.js | 6 +++++- core/wiki/spark.go | 7 +++++++ 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/base/web/space.go b/base/web/space.go index ed970bf2..4a4abd44 100644 --- a/base/web/space.go +++ b/base/web/space.go @@ -229,6 +229,9 @@ func init() { m.PushButton(kit.Select(OPEN, LOGIN, value[mdb.TYPE] == LOGIN), mdb.REMOVE) }) kit.If(len(arg) == 1, func() { m.EchoIFrame(m.MergePod(arg[0])) }) + if !m.IsCliUA() { + m.Cmdy("web.code.publish", "contexts", "misc") + } } else { _space_send(m, arg[0], kit.Simple(kit.Split(arg[1]), arg[2:])...) } diff --git a/core/wiki/field.go b/core/wiki/field.go index f90d2bc7..66dde5fc 100644 --- a/core/wiki/field.go +++ b/core/wiki/field.go @@ -31,6 +31,7 @@ func _field_show(m *ice.Message, name, text string, arg ...string) { }) meta[mdb.NAME], meta[mdb.INDEX] = name, text _wiki_template(m.Options(mdb.META, kit.Format(meta)), "", name, text) + m.Debug("what %v", m.Result()) } const FIELD = "field" diff --git a/core/wiki/portal.css b/core/wiki/portal.css index 019e2e43..2d004352 100644 --- a/core/wiki/portal.css +++ b/core/wiki/portal.css @@ -1,6 +1,8 @@ -fieldset.web.wiki.portal>div.output>div.header { background-color: rgb(22 31 49); color:white; height:64px; } +fieldset.web.wiki.portal { --code-bg-color:black; --code-fg-color:silver; } +body.light fieldset.web.wiki.portal { --code-bg-color:black; --code-fg-color:white; } +fieldset.web.wiki.portal>div.output>div.header { background-color:rgb(22 31 49); color:var(--code-fg-color); height:64px; } fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] { display:flex; justify-content:center; } -fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] div.item { padding:20px; } +fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] div.item { padding:20px; height:64px; } fieldset.web.wiki.portal>div.output>div.header div.story[data-name=navmenu] div.item.space { padding:0px; margin:0 40px; } fieldset.web.wiki.portal>div.output>div.layout { display:flex; justify-content:center; } fieldset.web.wiki.portal>div.output>div.layout>div.nav { padding:40px 40px; border-right:lightgray solid 1px; width:240px; overflow:auto; --hover-bg-color:var(--plugin-bg-color); } @@ -8,39 +10,40 @@ fieldset.web.wiki.portal>div.output>div.layout>div.nav div.story[data-name=navme fieldset.web.wiki.portal>div.output>div.layout>div.nav div.story[data-name=navmenu] div.list div.item { padding-left:40px; } fieldset.web.wiki.portal>div.output>div.layout>div.main { white-space:pre-wrap; padding:40px; height:600px; min-width:200px; max-width:1000px; overflow:auto; --hover-bg-color:var(--plugin-bg-color); } fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset:not(.hide) { display:flex; flex-wrap:wrap; } -fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset>div.output { width:100%; } -fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset>div.status { width:100%; } fieldset.web.wiki.portal>div.output>div.layout>div.aside { padding:40px 20px; width:200px; overflow:auto; width:200px; --hover-bg-color:var(--plugin-bg-color); } fieldset.web.wiki.portal>div.output>div.layout>div.aside div.item { padding:5px; } fieldset.web.wiki.portal>div.output>div.layout>div.aside div.item.section { padding-left:20px; } -body.dark fieldset.web.wiki.portal>div.output>div.header { color:silver; } -body.dark fieldset.web.wiki.portal>div.output>div.layout { background-color:black; } +body.dark fieldset.web.wiki.portal>div.output>div.header { color:var(--code-fg-color); } +body.dark fieldset.web.wiki.portal>div.output>div.layout { background-color:var(--code-bg-color); } body.dark fieldset.web.wiki.portal>div.output>div.layout>div.nav { border-right:gray solid 1px; } -body.light fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output div.content { background-color:black; color:white; } +body.light fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output div.content { background-color:var(--code-bg-color); color:var(--code-fg-color); } fieldset.web.wiki.portal.home>div.output>div.layout>div.main>* { margin:auto; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main { padding:0; max-width:100%; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main h2 { text-align:center; max-width:1000px; margin:0 auto;} +fieldset.web.wiki.portal.home>div.output>div.layout>div.main p { white-space:pre-wrap; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main p { text-align:center; max-width:1000px; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main div.story.flex { display:flex; justify-content:center; } fieldset.web.wiki.portal.home>div.output>div.layout>div.main>div.story.flex>* { padding:40px 40px; } fieldset.web.wiki.portal>div.output>div.layout>div.main h1 { margin:10px 0; } -fieldset.web.wiki.portal>div.output>div.layout>div.main h2 { margin:0 auto; max-width:1000px; } +fieldset.web.wiki.portal>div.output>div.layout>div.main h2 { margin:20px auto 0; max-width:1000px; } +fieldset.web.wiki.portal>div.output>div.layout>div.main h3 { margin:10px auto 0; max-width:1000px; } fieldset.web.wiki.portal>div.output>div.layout>div.main ul>li { white-space:pre-wrap; } -fieldset.web.wiki.portal>div.output>div.layout>div.main p { white-space:pre-wrap; } +fieldset.web.wiki.portal>div.output>div.layout>div.main p { white-space:initial; } fieldset.web.wiki.portal>div.output>div.layout>div.main p { max-width:1000px; } -fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { background-color:black; color:white; } -fieldset.web.wiki.portal>div.output>div.layout>div.main input.story[type=button] { background-color:blue; color:white; font-family:system-ui; font-weight:bold; padding:20px 40px; margin:10px; height:60px; border-radius:0; } +fieldset.web.wiki.portal>div.output>div.layout>div.main p code { background-color:black; color:white; padding:0 10px; } +fieldset.web.wiki.portal>div.output>div.layout>div.main div.story[data-type=spark][data-name=shell] { background-color:var(--code-bg-color); color:var(--code-fg-color); } +fieldset.web.wiki.portal>div.output>div.layout>div.main input.story[type=button] { background-color:blue; color:var(--code-fg-color); font-family:system-ui; font-weight:bold; padding:20px 40px; margin:10px; height:60px; border-radius:0; } fieldset.web.wiki.portal>div.output>div.layout>div.main iframe { height:50%; min-height:400px; width:100%; } fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output div.content { padding:20px; border-radius:10px; } fieldset.web.wiki.portal>div.output>div.layout>div.main fieldset.inner.output { - --code-comment:white; + --code-comment:silver; --code-keyword:orange; - --code-package:white; - --code-datatype:white; + --code-package:silver; + --code-datatype:silver; --code-function:cyan; - --code-constant:white; - --code-string:white; - --code-object:white; + --code-constant:silver; + --code-string:silver; + --code-object:silver; } diff --git a/core/wiki/portal.js b/core/wiki/portal.js index 903925c6..cc7b4d99 100644 --- a/core/wiki/portal.js +++ b/core/wiki/portal.js @@ -13,7 +13,7 @@ Volcanos(chat.ONIMPORT, { } can.ui.layout(can.ConfHeight(), can.ConfWidth()), can.ConfHeight(can.ui.main.offsetHeight), can.ConfWidth(can.ui.main.offsetWidth) can.page.Select(can, can._output, wiki.STORY_ITEM, function(target) { var meta = target.dataset||{} - can.core.CallFunc([can.onimport, can.onimport[meta.name]? meta.name: meta.type||target.tagName.toLowerCase()], [can, meta, target, can.ConfWidth()]) + can.core.CallFunc([can.onimport, can.onimport[meta.name]? meta.name: meta.type||target.tagName.toLowerCase()], [can, meta, target]) meta.style && can.page.style(can, target, can.base.Obj(meta.style)) }) var file = nfs.SRC_DOCUMENT+can.db.current+(can.isCmdMode()? can.base.trimPrefix(location.hash, "#"): can.Option(nfs.FILE)) @@ -46,6 +46,10 @@ Volcanos(chat.ONIMPORT, { var _meta = can.base.Obj(meta.meta); _meta && _meta.style && can.page.style(can, target, can.base.Obj(_meta.style)) meta.style && can.page.style(can, target, can.base.Obj(meta.style)) }) + can.page.Select(can, can.ui.main, "a", function(target) { + target.innerText = target.innerText || target.href || "http://localhost:9020" + target.href = target.href || target.innerText + }) }) }, }, [""]) diff --git a/core/wiki/spark.go b/core/wiki/spark.go index 88fe4a2c..c75a1b8c 100644 --- a/core/wiki/spark.go +++ b/core/wiki/spark.go @@ -75,6 +75,13 @@ func init() { _spark_md(m, arg...) } else if arg[0] == SHELL && kit.IsIn(kit.Select("", arg, 1), cli.ALPINE, cli.CENTOS, cli.LINUX, cli.MACOS, cli.DARWIN, cli.WINDOWS) { _spark_tabs(m, arg...) + } else if arg[0] == "inner" { + if !strings.Contains(arg[1], lex.NL) && nfs.Exists(m, arg[1]) { + arg = append(arg, kit.Simple("args", kit.Join(nfs.SplitPath(m, arg[1]), " "))...) + arg[1] = m.Cmdx(nfs.CAT, arg[1]) + } + m.Cmdy("field", "", "web.code.inner", "result", arg[1], "display", "/plugin/local/code/inner.js", "style", "output", arg[2:]) + } else { arg = _name(m, arg) meta := kit.Dict()