aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2022-03-28 14:07:05 +0000
committers-ol <s+removethis@s-ol.nu>2022-03-28 14:24:30 +0000
commit233291f8dc194b68f9c94240148a58bc05f5feff (patch)
tree86fbe9213aa52e2df205a5b17177af76b3c23852
parentremove pdf accidentally left behind (diff)
downloadmmm-233291f8dc194b68f9c94240148a58bc05f5feff.tar.gz
mmm-233291f8dc194b68f9c94240148a58bc05f5feff.zip
remove Editor remnants, fix inspector
-rw-r--r--build/server.moon138
-rw-r--r--mmm/mmmfs/browser.moon43
-rw-r--r--mmm/mmmfs/builtins.moon2
-rw-r--r--root/static/$order3
4 files changed, 54 insertions, 132 deletions
diff --git a/build/server.moon b/build/server.moon
index 5dc4eed..f6784b8 100644
--- a/build/server.moon
+++ b/build/server.moon
@@ -34,14 +34,10 @@ class Server
@flags = opts.flags
- if @flags.rw == nil
- @flags.rw = opts.host == 'localhost' or opts.host == '127.0.0.1'
-
if @flags.unsafe == nil
- @flags.unsafe = not @flags.rw or opts.host == 'localhost' or opts.host == '127.0.0.1'
+ @flags.unsafe = opts.host == 'localhost' or opts.host == '127.0.0.1'
if @flags.cache
- assert not @flags.rw, "--rw and --cache are incompatible"
@root = Fileder @store
init_cache!
@@ -93,88 +89,55 @@ class Server
convert 'text/mermaid-graph', 'text/html', debugger\render!, fileder, facet.name
handle: (method, path, facet, value) =>
- if not @flags.rw and method != 'GET' and method != 'HEAD'
- return 403, 'editing not allowed'
-
- switch method
- when 'GET', 'HEAD'
- root = @root or Fileder @store
- export BROWSER
- BROWSER = :path
- fileder = root\walk path
-
- if not fileder
- -- fileder not found
- return 404, "fileder '#{path}' not found"
-
- val = switch facet.name
- when '?index', '?tree'
- -- serve fileder index
- -- '?index': one level deep
- -- '?tree': recursively
- depth = if facet.name == '?tree' then -1 else 1
- index = @store\get_index path, depth
- convert 'table', facet.type, index, fileder, facet.name
- else
- if facet.type == '?'
- facet.type = 'text/html'
- current = fileder
- while current
- if type = current\get '_web_view: type'
- facet.type = type\match '^%s*(.-)%s*$'
- break
-
- if current.path == ''
- break
-
- path, _ = dir_base current.path
- current = root\walk path
-
- if facet.type == 'text/html+interactive'
- @handle_interactive fileder, facet
- else if base = facet.type\match '^DEBUG %-> (.*)'
- facet.type = base
- @handle_debug fileder, facet
- else if not fileder\has_facet facet.name
- 404, "facet '#{facet.name}' not found in fileder '#{path}'"
- else
- fileder\get facet
-
- if val
- 200, val
- else
- 406, "cant convert facet '#{facet.name}' to '#{facet.type}'"
- when 'POST'
- if facet
- @store\create_facet path, facet.name, facet.type, value
- 200, 'ok'
- else
- 200, @store\create_fileder dir_base path
- when 'PUT'
- if facet
- @store\update_facet path, facet.name, facet.type, value
- 200, 'ok'
- else
- cmd, args = value\match '^([^\n]+)\n(.*)'
- switch cmd
- when 'swap'
- child_a, child_b = args\match '^([^\n]+)\n([^\n]+)$'
- assert child_a and child_b, "invalid arguments"
-
- @store\swap_fileders path, child_a, child_b
- 200, 'ok'
- when nil
- 400, "invalid request"
- else
- 501, "unknown command #{cmd}"
- when 'DELETE'
- if facet
- @store\remove_facet path, facet.name, facet.type
- else
- @store\remove_fileder path
- 200, 'ok'
+ if method != 'GET' and method != 'HEAD'
+ return 501, "not implemented"
+
+ root = @root or Fileder @store
+ export BROWSER
+ BROWSER = :path
+ fileder = root\walk path
+
+ if not fileder
+ -- fileder not found
+ return 404, "fileder '#{path}' not found"
+
+ val = switch facet.name
+ when '?index', '?tree'
+ -- serve fileder index
+ -- '?index': one level deep
+ -- '?tree': recursively
+ depth = if facet.name == '?tree' then -1 else 1
+ index = @store\get_index path, depth
+ convert 'table', facet.type, index, fileder, facet.name
else
- 501, "not implemented"
+ if facet.type == '?'
+ facet.type = 'text/html'
+ current = fileder
+ while current
+ if type = current\get '_web_view: type'
+ facet.type = type\match '^%s*(.-)%s*$'
+ break
+
+ if current.path == ''
+ break
+
+ path, _ = dir_base current.path
+ current = root\walk path
+
+ if facet.type == 'text/html+interactive'
+ @handle_interactive fileder, facet
+ else if base = facet.type\match '^DEBUG %-> (.*)'
+ facet.type = base
+ @handle_debug fileder, facet
+ else if not fileder\has_facet facet.name
+ 404, "facet '#{facet.name}' not found in fileder '#{path}'"
+ else
+ fileder\get facet
+
+ if val
+ 200, val
+ else
+ 406, "cant convert facet '#{facet.name}' to '#{facet.type}'"
err_and_trace = (msg) -> debug.traceback msg, 2
stream: (sv, stream) =>
@@ -220,8 +183,7 @@ class Server
-- usage:
-- moon server.moon [FLAGS] [STORE] [host] [port]
-- * FLAGS - any of the following:
--- --[no-]rw - enable/disable POST?PUT/DELETE operations (default: on if local)
--- --[no-]unsafe - enable/disable server-side code execution when writable is on (default: on if local or --no-rw)
+-- --[no-]unsafe - enable/disable server-side code execution when writable is on (default: on if local)
-- --[no-]cache - cache all fileder contents (default: off)
-- * STORE - see mmm/mmmfs/stores/init.moon:get_store
-- * host - interface to bind to (default localhost, set to 0.0.0.0 for public hosting)
diff --git a/mmm/mmmfs/browser.moon b/mmm/mmmfs/browser.moon
index 0127742..8531d13 100644
--- a/mmm/mmmfs/browser.moon
+++ b/mmm/mmmfs/browser.moon
@@ -29,7 +29,7 @@ casts = {
transform: (href) => span a (code href), :href
}
}
-get_casts = -> combine casts, converts --, PLUGINS.editors
+get_casts = -> combine casts, converts
export BROWSER
class Browser
@@ -211,7 +211,6 @@ class Browser
key
@inspect_err = ReactiveVar!
- @editor = ReactiveVar!
with div class: 'view inspector'
-- nav
@@ -224,12 +223,6 @@ class Browser
\append div {
class: 'subnav'
- ondrop: ->
- print "dropped"
-
- onpaste: ->
- print "pasted"
-
@inspect_prop\map (current) ->
current = current and current\tostring!
fileder = @fileder\get!
@@ -245,23 +238,7 @@ class Browser
for value in pairs fileder.facet_keys
\append option value, :value, selected: value == current
- button 'rm', class: 'tight', onclick: (_, e) ->
- if window\confirm "continuing will permanently remove the facet '#{@inspect_prop\get!}'."
- fileder = @fileder\get!
- fileder\set @inspect_prop\get!, nil
- @refresh true
-
- button 'add', class: 'tight', onclick: (_, e) ->
- facet = window\prompt "please enter the facet string ('name: type' or 'type'):", 'text/markdown'
- return if not facet or facet == '' or facet == js.null
- fileder = @fileder\get!
- fileder\set facet, ''
- @inspect_prop\set Key facet
- @refresh!
-
div style: flex: '1'
-
- @editor\map (e) -> e and e.saveBtn
}
-- error / content
@@ -270,14 +247,13 @@ class Browser
\append @inspect_err
\append with pre class: 'content'
\append keep @inspect_prop\map (prop, old) ->
- @get_content facet, @inspect_err, (fileder, facet) ->
+ @get_content prop, @inspect_err, (fileder, facet) ->
value, key = fileder\get facet
assert key, "couldn't @get #{facet}"
conversions = get_conversions fileder, 'mmm/dom', key.type, get_casts!
assert conversions, "cannot cast '#{key.type}'"
- with res = apply_conversions fileder, conversions, value, facet
- @editor\set if res.EDITOR then res
+ apply_conversions fileder, conversions, value, facet
-- children
\append nav {
@@ -301,19 +277,6 @@ class Browser
'justify-content': 'space-between'
span '- ', (link_to child, code name), style: flex: 1
-
- button '↑', disabled: i == 1, onclick: (_, e) ->
- fileder\swap_children i, i - 1
- @refresh true
-
- button '↓', disabled: i == num, onclick: (_, e) ->
- fileder\swap_children i, i + 1
- @refresh true
-
- button 'rm', onclick: (_, e) ->
- if window\confirm "continuing will permanently remove all content in '#{child.path}'."
- fileder\remove_child i
- @refresh true
}
diff --git a/mmm/mmmfs/builtins.moon b/mmm/mmmfs/builtins.moon
index 763c722..e19ecf1 100644
--- a/mmm/mmmfs/builtins.moon
+++ b/mmm/mmmfs/builtins.moon
@@ -44,7 +44,7 @@ string.yieldable_gsub = (str, pat, f) ->
str = str\gsub '%%|', '%%'
str, cnt
--- list of converts, editors, scripts
+-- list of converts
-- converts each have
-- * inp - input type. can capture subtypes using `(.+)`
-- * out - output type. can substitute subtypes from inp with %1, %2 etc.
diff --git a/root/static/$order b/root/static/$order
deleted file mode 100644
index 08ba4e6..0000000
--- a/root/static/$order
+++ /dev/null
@@ -1,3 +0,0 @@
-highlight-pack
-style
-fengari-web