aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-10-10 15:38:52 +0000
committers-ol <s-ol@users.noreply.github.com>2019-10-10 15:38:52 +0000
commit9ab2f0fe3a1a043300536a057bafe5058d987d7f (patch)
treea655e2df23258103c783601547d3c5db0376ef8e
parentadd entr instructions (diff)
downloadmmm-9ab2f0fe3a1a043300536a057bafe5058d987d7f.tar.gz
mmm-9ab2f0fe3a1a043300536a057bafe5058d987d7f.zip
add $interactive facet with Browser
-rw-r--r--build/server.moon20
-rw-r--r--mmm/mmmfs/browser.moon4
-rw-r--r--mmm/mmmfs/layout.moon11
3 files changed, 23 insertions, 12 deletions
diff --git a/build/server.moon b/build/server.moon
index df18472..693f00c 100644
--- a/build/server.moon
+++ b/build/server.moon
@@ -12,6 +12,8 @@ require 'mmm'
import Key, dir_base, load_tree from require 'mmm.mmmfs.fileder'
import convert from require 'mmm.mmmfs.conversion'
import get_store from require 'mmm.mmmfs.stores'
+import render from require 'mmm.mmmfs.layout'
+import Browser from require 'mmm.mmmfs.browser'
import decodeURI from require 'http.util'
lfs = require 'lfs'
@@ -45,6 +47,24 @@ class Server
switch method
when 'GET', 'HEAD'
val = switch facet.name
+ when '?interactive'
+ export BROWSER
+
+ root = load_tree @store
+ BROWSER = Browser root, path
+ render BROWSER\todom!, fileder, noview: true, scripts: "
+ <script type=\"application/lua\">
+ on_load = on_load or {}
+ table.insert(on_load, function()
+ local path = #{string.format '%q', path}
+ local browser = require 'mmm.mmmfs.browser'
+ local root = dofile '/$bundle.lua'
+ root:mount('', true)
+
+ BROWSER = browser.Browser(root, path, true)
+ end)
+ </script>"
+
when '?index', '?tree'
-- serve fileder index
-- '?index': one level deep
diff --git a/mmm/mmmfs/browser.moon b/mmm/mmmfs/browser.moon
index 37a386c..6321457 100644
--- a/mmm/mmmfs/browser.moon
+++ b/mmm/mmmfs/browser.moon
@@ -1,7 +1,7 @@
require = relative ..., 1
import Key from require '.fileder'
import converts, get_conversions, apply_conversions from require '.conversion'
-import ReactiveVar, get_or_create, text, elements from require 'mmm.component'
+import ReactiveVar, get_or_create, text, elements, tohtml from require 'mmm.component'
import pre, div, nav, span, button, a, code, select, option from elements
import languages from require 'mmm.highlighting'
@@ -240,6 +240,8 @@ class Browser
navigate: (new) =>
@path\set new
+ todom: => tohtml @
+
{
:Browser
}
diff --git a/mmm/mmmfs/layout.moon b/mmm/mmmfs/layout.moon
index 6c6a943..61519ae 100644
--- a/mmm/mmmfs/layout.moon
+++ b/mmm/mmmfs/layout.moon
@@ -153,17 +153,6 @@ render = (content, fileder, opts={}) ->
]]
buf ..= opts.scripts
- -- <script type=\"application/lua\">
- -- on_load = on_load or {}
- -- table.insert(on_load, function()
- -- local path = #{string.format '%q', path}
- -- local browser = require 'mmm.mmmfs.browser'
- -- local root = dofile '/$bundle.lua'
- -- root:mount('', true)
-
- -- BROWSER = browser.Browser(root, path, true)
- -- end)
- -- </script>
buf ..= "
</body>
</html>