diff --git a/base/cli/runtime.go b/base/cli/runtime.go index 6d5d7c49..5ad8b342 100644 --- a/base/cli/runtime.go +++ b/base/cli/runtime.go @@ -41,11 +41,13 @@ func _runtime_init(m *ice.Message) { ice.Info.Username = m.Conf(RUNTIME, kit.Keys(BOOT, USERNAME)) aaa.UserRoot(ice.Pulse, "", ice.Info.Username, aaa.ROOT, ice.OPS) aaa.UserRoot(ice.Pulse, "", ice.Info.Make.Username, aaa.TECH, ice.DEV) - msg := m.Cmd(nfs.DIR, _system_find(m, os.Args[0]), "time,path,size,hash") - m.Conf(RUNTIME, kit.Keys(BOOT, mdb.TIME), msg.Append(mdb.TIME)) - m.Conf(RUNTIME, kit.Keys(BOOT, mdb.HASH), msg.Append(mdb.HASH)) - m.Conf(RUNTIME, kit.Keys(BOOT, nfs.SIZE), msg.Append(nfs.SIZE)) - m.Conf(RUNTIME, kit.Keys(BOOT, ice.BIN), msg.Append(nfs.PATH)) + if runtime.GOARCH != MIPSLE { + msg := m.Cmd(nfs.DIR, _system_find(m, os.Args[0]), "time,path,size,hash") + m.Conf(RUNTIME, kit.Keys(BOOT, mdb.TIME), msg.Append(mdb.TIME)) + m.Conf(RUNTIME, kit.Keys(BOOT, mdb.HASH), msg.Append(mdb.HASH)) + m.Conf(RUNTIME, kit.Keys(BOOT, nfs.SIZE), msg.Append(nfs.SIZE)) + m.Conf(RUNTIME, kit.Keys(BOOT, ice.BIN), msg.Append(nfs.PATH)) + } m.Conf(RUNTIME, kit.Keys(BOOT, mdb.COUNT), count+1) m.Conf(RUNTIME, mdb.META, "") m.Conf(RUNTIME, mdb.HASH, "") diff --git a/base/web/render.go b/base/web/render.go index 35a9814e..7ceb45d4 100644 --- a/base/web/render.go +++ b/base/web/render.go @@ -130,7 +130,7 @@ func RenderCmds(m *ice.Message, list ...ice.Any) { func RenderPodCmd(m *ice.Message, pod, cmd string, arg ...ice.Any) { msg := m.Cmd(Space(m, pod), ctx.COMMAND, kit.Select("web.wiki.word", cmd)) RenderCmds(m, kit.Dict(msg.AppendSimple(mdb.NAME, mdb.HELP), - ctx.INDEX, cmd, ctx.ARGS, kit.Simple(arg), ctx.DISPLAY, m.Option(ice.MSG_DISPLAY), + ctx.INDEX, msg.Append(ctx.INDEX), ctx.ARGS, kit.Simple(arg), ctx.DISPLAY, m.Option(ice.MSG_DISPLAY), mdb.LIST, kit.UnMarshal(msg.Append(mdb.LIST)), mdb.META, kit.UnMarshal(msg.Append(mdb.META)), )) } @@ -152,13 +152,15 @@ const ( VIEW = "view" CHAT = "chat" - TEAM_PLAN = "web.team.plan" - WIKI_WORD = "web.wiki.word" - WIKI_DRAW = "web.wiki.draw" - WIKI_FEEL = "web.wiki.feel" - CODE_INNER = "web.code.inner" - CODE_VIMER = "web.code.vimer" - CODE_XTERM = "web.code.xterm" - CHAT_FAVOR = "web.chat.favor" - CHAT_IFRAME = "web.chat.iframe" + TEAM_PLAN = "web.team.plan" + WIKI_WORD = "web.wiki.word" + WIKI_DRAW = "web.wiki.draw" + WIKI_FEEL = "web.wiki.feel" + CODE_INNER = "web.code.inner" + CODE_VIMER = "web.code.vimer" + CODE_XTERM = "web.code.xterm" + CODE_COMPILE = "web.code.compile" + CODE_GIT_STATUS = "web.code.git.status" + CHAT_FAVOR = "web.chat.favor" + CHAT_IFRAME = "web.chat.iframe" ) diff --git a/core/chat/iframe.go b/core/chat/iframe.go index 5bddff66..77ee433a 100644 --- a/core/chat/iframe.go +++ b/core/chat/iframe.go @@ -60,6 +60,9 @@ func init() { mdb.HashCreate(m, mdb.TYPE, web.LINK, mdb.NAME, kit.ParseURL(m.Option(web.LINK)).Host, m.OptionSimple()) }}, web.OPEN: {Hand: func(m *ice.Message, arg ...string) { ctx.ProcessOpen(m, m.Option(web.LINK)) }}, + web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { + m.Cmd("", mdb.CREATE, kit.Dict(web.LINK, m.MergePod(m.Option(mdb.NAME)))) + }}, }, mdb.HashAction(mdb.SHORT, web.LINK, mdb.FIELD, "time,hash,type,name,link"), FavorAction()), Hand: func(m *ice.Message, arg ...string) { if mdb.HashSelect(m, arg...); len(arg) == 0 { m.PushAction(web.OPEN, mdb.REMOVE).Action(mdb.CREATE, mdb.PRUNES) diff --git a/core/chat/macos/desktop.css b/core/chat/macos/desktop.css index a99ae860..c02650c8 100644 --- a/core/chat/macos/desktop.css +++ b/core/chat/macos/desktop.css @@ -7,9 +7,10 @@ fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.ic fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.keyword input { width:320px; background-color:transparent; border:#404141 solid 1px; } fieldset.macos.desktop>div.output>fieldset.macos.searchs>form.option>div.item.keyword:hover { background-color:transparent; } fieldset.macos.desktop>div.output>fieldset.macos.notifications { height:calc(100% - 25px); width:250px; overflow:auto; position:absolute; top:25px; right:0; } +fieldset.macos.desktop>div.output>fieldset.macos.notifications>div.action>div.item input { background-color:transparent; } fieldset.macos.desktop>div.output>fieldset.macos.notifications>div.output>div.item { margin-top:10px; margin-right:10px; min-height:60px; clear:both; } -fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item div.title { padding-top:10px; height:24px; width:132px; overflow:hidden; } -fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item div.time { color:gray; font-size:12px; padding:5px; padding-top:10px; height:24px; width:48px; } +fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item div.title { margin-top:10px; width:132px; overflow:hidden; } +fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item div.time { color:gray; font-size:12px; margin-top:10px; width:48px; } fieldset.macos.desktop>div.output>fieldset.macos.notifications div.item div.content { width:180px; } fieldset.macos.desktop>div.output>fieldset.macos.dock { border:#ffffff3d solid 1px; border-radius:20px; position:absolute; bottom:10px; z-index:11; transition:margin-left 0.3s; } fieldset.macos.desktop>div.output>fieldset.macos.dock:hover { margin-left:-40px; transition:margin-left 0.3s; } @@ -22,13 +23,21 @@ fieldset.macos.desktop>div.output>div.desktop>div.item>div.name { font-size:12px fieldset.macos.desktop>div.output>div.desktop>fieldset { border-radius:10px; position:absolute; } fieldset.macos.desktop>div.output>div.desktop>fieldset>div.item.button { border-radius:20px; height:20px; width:20px; scale:0.7; position:absolute; top:15px; right:10px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>legend { background-color:unset; padding-right:10px; margin:10px 0; } -fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>* { margin:10px 0px 10px 10px; } +fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>*:not(.textarea) { margin:10px 0px 10px 10px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.icon { margin-left:0; margin-top:12px; margin-bottom:8px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item.icons { margin-left:0; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.item:last-child { margin-right:20px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>* { margin:10px 0px 10px 10px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>div.item.icons>span.icon { margin-top:12px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>div.action>div.item:last-child { margin-right:80px; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.code.xterm>div.status { display:none; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.code.vimer>div.status { display:none; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.wiki.feel>div.status { display:none; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.iframe>div.status { display:none; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.chat.macos.finder>div.status { display:none; } +fieldset.macos.desktop>div.output>div.desktop>fieldset.web.code.compile>form.option>div.item:last-child { margin-right:80px; } +fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>form.option>div.item { margin-right:0px; } +fieldset.macos.desktop>div.output>div.desktop>fieldset>div.output>fieldset>div.action>div.item { margin-right:0px; } fieldset.macos.menu>div.output>div.item { padding:0 5px; float:right; cursor:pointer; } fieldset.macos.menu>div.output>div.menu { float:left; padding:0 20px; cursor:pointer; } fieldset.macos.menu>div.output>div.tabs { float:left; } diff --git a/core/chat/macos/desktop.js b/core/chat/macos/desktop.js index 098abe42..935ec5b6 100644 --- a/core/chat/macos/desktop.js +++ b/core/chat/macos/desktop.js @@ -1,17 +1,15 @@ Volcanos(chat.ONIMPORT, { _init: function(can, msg, cb) { if (can.isCmdMode()) { can.onappend.style(can, html.OUTPUT), can.ConfHeight(can.page.height()) } can.onimport.layout(can) - can.ui = {}, can.base.isFunc(cb) && cb(msg), can.onmotion.clear(can), can.onlayout.background(can, can.user.info.background, can._fields) + can.ui = {}, can.base.isFunc(cb) && cb(msg), can.onmotion.clear(can), can.onlayout.background(can, can.user.info.background||"/require/usr/icons/background.jpg", can._fields) can.onimport._menu(can), can.onimport._dock(can), can.onimport._searchs(can), can.onimport._notifications(can) }, _menu: function(can) { can.onappend.plugin(can, {index: "web.chat.macos.menu", style: html.OUTPUT}, function(sub) { can.ui.menu = sub sub.onexport.record = function(_, value, key, item) { delete(can.onfigure._path) switch (value) { - case "create": - can.onaction.create(event, can) - break + case "create": can.onaction.create(event, can); break case "desktop": var carte = can.user.carte(event, can, {}, can.core.Item(can.onfigure), function(event, button, meta, carte) { can.onfigure[button](event, can, carte) }); break case "searchs": can.onmotion.toggle(can, can.ui.searchs._target); break - case "notifications": can.onmotion.toggle(can, can.ui.notifications._target); break + case "notifications": can.ui.notifications._output.innerHTML && can.onmotion.toggle(can, can.ui.notifications._target); break } } sub.onexport.output = function() { can.onimport._desktop(can, can._msg) } @@ -44,7 +42,9 @@ Volcanos(chat.ONIMPORT, { target._tabs = can.onimport.tabs(can, [{name: "Desktop"+(can.page.Select(can, can._output, html.DIV_DESKTOP).length-1)}], function() { can.onmotion.select(can, can._output, "div.desktop", target), can.ui.desktop = target }, function() { can.page.Remove(can, target) }, can.ui.menu._output), target._tabs._desktop = target target.ondragend = function() { can.onimport._item(can, window._drag_item) } }, - _window: function(can, item) { item.height = can.base.Min(can.ConfHeight()-400, 320, 800), item.width = can.base.Min(can.ConfWidth()-400, 480, 1000) + _window: function(can, item) { + item.top = 125, item.height = can.base.Min(can.ConfHeight()-400, 480, 800), item.width = can.base.Min(can.ConfWidth()-400, 640, 1000) + if (can.ConfHeight() < 800) { item.top = 25, item.height = can.ConfHeight()-165 } can.onappend.plugin(can, item, function(sub) { can.ondetail.select(can, sub._target) var index = 0; can.core.Item({ "#f95f57": function(event) { sub.onaction.close(event, sub) }, @@ -55,7 +55,8 @@ Volcanos(chat.ONIMPORT, { }, "#32c840": function(event) { sub.onaction.full(event, sub) }, }, function(color, cb) { can.page.insertBefore(can, [{view: [[html.ITEM, html.BUTTON]], style: {"background-color": color, right: 10+20*index++}, onclick: cb}], sub._output) }) - sub.onimport.size(sub, item.height, item.width, true), can.onmotion.move(can, sub._target, {"z-index": 10, top: 125, left: 100}) + sub.onimport.size(sub, item.height, item.width, true), can.onmotion.move(can, sub._target, {"z-index": 10, top: item.top, left: 100}) + sub.onimport._open = function(sub, msg, arg) { can.onimport._window(can, {index: "web.chat.iframe", args: [arg]}) } sub.onmotion.resize(can, sub._target, function(height, width) { sub.onimport.size(sub, height, width) }, 25) sub.onexport.record = function(sub, value, key, item) { can.onimport._window(can, item) } sub.onexport.actionHeight = function(sub) { return can.page.ClassList.has(can, sub._target, html.OUTPUT)? 0: html.ACTION_HEIGHT+20 }, diff --git a/core/chat/macos/dock.js b/core/chat/macos/dock.js index f797c513..1ac0495d 100644 --- a/core/chat/macos/dock.js +++ b/core/chat/macos/dock.js @@ -1,6 +1,6 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { function show(msg) { can.onmotion.clear(can) - msg.Table(function(item) { can.page.Append(can, can._output, [{view: html.ITEM, list: [{view: html.ICON, list: [{img: can.misc.PathJoin(item.icon)}] }], + msg.Table(function(item) { can.page.Append(can, can._output, [{view: html.ITEM, title: item.name, list: [{view: html.ICON, list: [{img: can.misc.PathJoin(item.icon||can.page.drawText(can, item.name))}] }], onclick: function(event) { can.sup.onexport.record(can, item.name, mdb.NAME, item) }, oncontextmenu: function(event) { var carte = can.user.carte(event, can, { remove: function() { item.name != "Finder" && can.runAction(event, mdb.REMOVE, [item.hash]) }, diff --git a/core/chat/macos/finder.go b/core/chat/macos/finder.go index 18923d8a..ceb6158e 100644 --- a/core/chat/macos/finder.go +++ b/core/chat/macos/finder.go @@ -17,11 +17,15 @@ func init() { DockAppend(m, "Finder", m.PrefixKey()) DockAppend(m, "Safari", web.CHAT_IFRAME) DockAppend(m, "Terminal", web.CODE_XTERM) + DockAppend(m, "", web.CODE_GIT_STATUS, mdb.ICON, "usr/icons/git.jpg") + DockAppend(m, "", web.CODE_COMPILE, mdb.ICON, "usr/icons/go.png") DockAppend(m, "", web.CODE_VIMER) } }}, mdb.SEARCH: {Hand: func(m *ice.Message, arg ...string) { - mdb.IsSearchForEach(m, arg, func() []string { return []string{web.LINK, DESKTOP, m.MergePodCmd("", DESKTOP, log.DEBUG, ice.TRUE)} }) + mdb.IsSearchForEach(m, arg, func() []string { + return []string{web.LINK, DESKTOP, m.MergePodCmd("", DESKTOP, log.DEBUG, ice.TRUE)} + }) }}, }, CmdHashAction(mdb.NAME))}, }) diff --git a/core/chat/macos/macos.go b/core/chat/macos/macos.go index 8bf0cb4c..d3e035cd 100644 --- a/core/chat/macos/macos.go +++ b/core/chat/macos/macos.go @@ -1,6 +1,8 @@ package macos import ( + "strings" + ice "shylinux.com/x/icebergs" "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" @@ -21,7 +23,7 @@ func init() { chat.Index.Register(Index, nil, DESKTOP) } func Prefix(arg ...string) string { return chat.Prefix(MACOS, kit.Keys(arg)) } func CmdHashAction(arg ...string) ice.Actions { - file := kit.PathJoin("/require/", kit.FileLines(2)) + file := kit.FileLine(2, 100) return ice.MergeActions(ice.Actions{ mdb.INPUTS: {Hand: func(m *ice.Message, arg ...string) { switch mdb.HashInputs(m, arg); arg[0] { @@ -31,6 +33,8 @@ func CmdHashAction(arg ...string) ice.Actions { m.Cmd(nfs.DIR, USR_ICONS, func(value ice.Maps) { m.Push(arg[0], value[nfs.PATH]) }) } }}, - mdb.SELECT: {Name: "list hash auto create", Hand: func(m *ice.Message, arg ...string) { mdb.HashSelect(m, arg...).Sort(mdb.NAME).Display(file) }}, + mdb.SELECT: {Name: "list hash auto create", Hand: func(m *ice.Message, arg ...string) { + mdb.HashSelect(m, arg...).Sort(mdb.NAME).Display(kit.PathJoin("/require/", strings.TrimPrefix(file, ice.Info.Make.Path))) + }}, }, ctx.CmdAction(), mdb.HashAction(mdb.SHORT, kit.Select("", arg, 0), mdb.FIELD, kit.Select("time,hash,name,icon,text,index,args", arg, 1), kit.Slice(arg, 2))) } diff --git a/core/chat/macos/notifications.go b/core/chat/macos/notifications.go index 3b767f31..b4243d04 100644 --- a/core/chat/macos/notifications.go +++ b/core/chat/macos/notifications.go @@ -2,7 +2,9 @@ package macos import ( ice "shylinux.com/x/icebergs" + "shylinux.com/x/icebergs/base/ctx" "shylinux.com/x/icebergs/base/mdb" + "shylinux.com/x/icebergs/base/web" kit "shylinux.com/x/toolkits" ) @@ -13,6 +15,9 @@ func init() { mdb.PRUNES: {Name: "prunes", Hand: func(m *ice.Message, arg ...string) { m.Conf("", kit.Keys(mdb.HASH), "") }}, + web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { + m.Cmd("", mdb.CREATE, m.OptionSimple(mdb.NAME), mdb.TEXT, "空间创建成功", ctx.INDEX, web.CHAT_IFRAME, ctx.ARGS, m.MergePod(m.Option(mdb.NAME))) + }}, }, CmdHashAction()), Hand: func(m *ice.Message, arg ...string) { mdb.HashSelect(m, arg...).SortStrR(mdb.TIME).Display("") }}}) diff --git a/core/chat/macos/notifications.js b/core/chat/macos/notifications.js index 4b414884..917f8664 100644 --- a/core/chat/macos/notifications.js +++ b/core/chat/macos/notifications.js @@ -1,11 +1,12 @@ Volcanos(chat.ONIMPORT, {_init: function(can, msg) { - can.onappend._action(can), can.page.style(can, can._action, html.DISPLAY, html.BLOCK) can.page.Appends(can, can._output, msg.Table(function(item) { return {view: html.ITEM, _init: function(target) { target.onclick = function(event) { can.sup.onexport.record(can.sup, item.index, ctx.INDEX, item), can.runAction(event, mdb.REMOVE, [item.hash], function() { can.page.Remove(can, target) }) } var ui = can.onappend.layout(can, [html.ICON, [[wiki.TITLE, mdb.TIME], wiki.CONTENT]], "", target) can.page.Append(can, ui.icon, [{img: can.misc.PathJoin(item.icon||can.page.drawText(can, item.index, 60))}]) ui.title.innerHTML = item.name||"", ui.content.innerHTML = item.text||"", ui.time.innerHTML = item.time.split(lex.SP).pop().split(nfs.DF).slice(0, 2).join(nfs.DF) - }} })) + }} })), msg.Length() == 0 && can.onmotion.hidden(can, can._fields), can.onappend._action(can), can.page.style(can, can._action, html.DISPLAY, html.BLOCK) }}) -Volcanos(chat.ONACTION, {list: [mdb.PRUNES], -}) \ No newline at end of file +Volcanos(chat.ONACTION, {list: [mdb.PRUNES, web.UPDATE, "toggle"], + update: function(event, can, button) { can.Update(event) }, + toggle: function(event, can, button) { can.onmotion.hidden(can, can._fields) }, +}) diff --git a/core/code/autogen.go b/core/code/autogen.go index dc3b2563..3f2de9b3 100644 --- a/core/code/autogen.go +++ b/core/code/autogen.go @@ -76,7 +76,7 @@ func _autogen_gits(m *ice.Message, arg ...string) string { func _autogen_git(m *ice.Message, arg ...string) ice.Map { msg := m.Cmd("web.code.git.repos", "remote") return kit.Dict(arg, - mdb.TIME, m.Time(), nfs.PATH, kit.Path(""), web.DOMAIN, tcp.PublishLocalhost(m, m.Option(ice.MSG_USERWEB)), + mdb.TIME, m.Time(), nfs.PATH, kit.Path("")+nfs.PS, web.DOMAIN, tcp.PublishLocalhost(m, m.Option(ice.MSG_USERWEB)), mdb.HASH, msg.Append(mdb.HASH), nfs.REMOTE, msg.Append(nfs.REMOTE), nfs.BRANCH, msg.Append(nfs.BRANCH), nfs.VERSION, msg.Append(nfs.VERSION), aaa.EMAIL, msg.Append(aaa.EMAIL), aaa.USERNAME, msg.Append(aaa.USERNAME), ) diff --git a/core/code/binpack.go b/core/code/binpack.go index 9f58ca29..a25961bb 100644 --- a/core/code/binpack.go +++ b/core/code/binpack.go @@ -95,7 +95,7 @@ func init() { Index.MergeCommands(ice.Commands{ BINPACK: {Name: "binpack path auto create insert", Help: "打包", Actions: ice.MergeActions(ice.Actions{ mdb.CREATE: {Hand: func(m *ice.Message, arg ...string) { _binpack_all(m) }}, - mdb.INSERT: {Name: "insert path*", Hand: func(m *ice.Message, arg ...string) { mdb.HashCreate(m) }}, + mdb.INSERT: {Name: "insert path*", Hand: func(m *ice.Message, arg ...string) { mdb.HashCreate(m, m.OptionSimple(nfs.PATH)) }}, }, mdb.HashAction(mdb.SHORT, nfs.PATH, mdb.FIELD, "time,path"))}, }) } diff --git a/core/code/xterm.go b/core/code/xterm.go index 4d4af412..82a2351e 100644 --- a/core/code/xterm.go +++ b/core/code/xterm.go @@ -111,7 +111,7 @@ func init() { web.ProcessPodCmd(m, "", "", m.OptionSimple(mdb.HASH), ctx.STYLE, web.OUTPUT) }}, web.DREAM_CREATE: {Hand: func(m *ice.Message, arg ...string) { - m.Cmd("", mdb.CREATE, mdb.TYPE, BASH, m.OptionSimple(mdb.NAME), nfs.PATH, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME))) + m.Cmd("", mdb.CREATE, mdb.TYPE, BASH, m.OptionSimple(mdb.NAME), nfs.PATH, path.Join(ice.USR_LOCAL_WORK, m.Option(mdb.NAME))+nfs.PS) }}, web.DREAM_TABLES: {Hand: func(m *ice.Message, arg ...string) { kit.Switch(m.Option(mdb.TYPE), kit.Simple(web.SERVER, web.WORKER), func() { m.PushButton(kit.Dict(m.CommandKey(), "命令")) }) diff --git a/render.go b/render.go index e3a1fc22..a0d99af7 100644 --- a/render.go +++ b/render.go @@ -201,7 +201,7 @@ func (m *Message) EchoDownload(arg ...string) *Message { } func (m *Message) Display(file string, arg ...Any) { if file == "" { - file = kit.PathJoin("/require/", kit.FileLines(2)) + file = kit.PathJoin("/require/", strings.TrimPrefix(kit.FileLine(2, 100), Info.Make.Path)) } m.Option(MSG_DISPLAY, kit.MergeURL(kit.Select(kit.ExtChange(file, JS), file, strings.Contains(file, QS)), arg...)) }