diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-10-10 15:38:52 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-10-10 15:38:52 +0000 |
| commit | 9ab2f0fe3a1a043300536a057bafe5058d987d7f (patch) | |
| tree | a655e2df23258103c783601547d3c5db0376ef8e | |
| parent | add entr instructions (diff) | |
| download | mmm-9ab2f0fe3a1a043300536a057bafe5058d987d7f.tar.gz mmm-9ab2f0fe3a1a043300536a057bafe5058d987d7f.zip | |
add $interactive facet with Browser
| -rw-r--r-- | build/server.moon | 20 | ||||
| -rw-r--r-- | mmm/mmmfs/browser.moon | 4 | ||||
| -rw-r--r-- | mmm/mmmfs/layout.moon | 11 |
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> |
