From 8cdf5d4a363ba99a6356e7e1dfe0dfb39e6fb13e Mon Sep 17 00:00:00 2001 From: s-ol Date: Fri, 11 Oct 2019 13:56:43 +0200 Subject: change ?interactive pseudofacet to text/html+interactive pseudo-type fix browser push/popstate --- build/server.moon | 53 +++++++++++++++++++++++++++-------------------------- 1 file changed, 27 insertions(+), 26 deletions(-) (limited to 'build') diff --git a/build/server.moon b/build/server.moon index 89cf1a6..ff138ee 100644 --- a/build/server.moon +++ b/build/server.moon @@ -47,28 +47,6 @@ class Server switch method when 'GET', 'HEAD' val = switch facet.name - when '?interactive' - export BROWSER - - root = Fileder @store - BROWSER = Browser root, path - render BROWSER\todom!, fileder, noview: true, scripts: " - " - when '?index', '?tree' -- serve fileder index -- '?index': one level deep @@ -81,7 +59,30 @@ class Server if not fileder\has_facet facet.name return 404, "facet '#{facet.name}' not found in fileder '#{path}'" - fileder\get facet + if facet.type == 'text/html+interactive' + export BROWSER + + root = Fileder @store + BROWSER = Browser root, path, facet.name + render BROWSER\todom!, fileder, noview: true, scripts: " + " + else + fileder\get facet if val 200, val @@ -100,7 +101,7 @@ class Server path_facet or= path path, facet = path_facet\match '(.*)/([^/]*)' - type or= 'text/html' + type or= 'text/html+interactive' type = type\match '%s*(.*)' facet = Key facet, type @@ -112,8 +113,8 @@ class Server res = headers.new! response_type = if status > 299 then 'text/plain' - else if facet then facet.type - else 'text/json' + else if facet.type == 'text/html+interactive' then 'text/html' + else facet.type res\append ':status', tostring status res\append 'content-type', response_type -- cgit v1.2.3