aboutsummaryrefslogtreecommitdiffstats
path: root/build/render_all.moon
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-10-07 17:49:16 +0000
committers-ol <s-ol@users.noreply.github.com>2019-10-07 17:49:16 +0000
commitad26c7c4e374f66a978f9946bbb083377f2224a6 (patch)
tree7bdee1e299cb2a907294b115b577e14ccbee4986 /build/render_all.moon
parentadd simple HTTP server (diff)
downloadmmm-ad26c7c4e374f66a978f9946bbb083377f2224a6.tar.gz
mmm-ad26c7c4e374f66a978f9946bbb083377f2224a6.zip
allow server to render with layout
Diffstat (limited to 'build/render_all.moon')
-rw-r--r--build/render_all.moon71
1 files changed, 11 insertions, 60 deletions
diff --git a/build/render_all.moon b/build/render_all.moon
index 14e4cce..4fe827b 100644
--- a/build/render_all.moon
+++ b/build/render_all.moon
@@ -10,73 +10,24 @@ add '?/init.server'
require 'mmm'
import tohtml from require 'mmm.component'
import Browser from require 'mmm.mmmfs.browser'
-import get_meta, header, footer from require 'build.layout'
+import render from require 'mmm.mmmfs.layout'
+import SQLStore from require 'mmm.mmmfs.drivers.sql'
+import load_tree from require 'build.util'
-- usage:
--- moon render_all.moon [db.sqlite3]
-{ file } = arg
+-- moon render_all.moon [db.sqlite3] [startpath]
+{ file, startpath } = arg
export BROWSER
-render = (fileder, output) ->
- BROWSER = Browser fileder
-
- with io.open output, 'w'
- \write [[
- <!DOCTYPE html>
- <html>
- <head>
- <link rel="stylesheet" type="text/css" href="/main.css" />
- <!--
- <link rel="preload" as="fetch" href="/mmm/dom/init.lua" />
- <link rel="preload" as="fetch" href="/mmm/component/init.lua" />
- <link rel="preload" as="fetch" href="/mmm/mmmfs/init.lua" />
- <link rel="preload" as="fetch" href="/mmm/mmmfs/fileder.lua" />
- <link rel="preload" as="fetch" href="/mmm/mmmfs/browser.lua" />
- -->
-
- <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400" rel="stylesheet">
- ]]
- \write "
- #{get_meta fileder}
- </head>
- <body>
- #{header}
-
- #{assert (tohtml BROWSER), "couldn't render BROWSER"}
-
- #{footer}
- "
- \write [[
- <script src="/highlight.pack.js"></script>
- <script src="//cdnjs.cloudflare.com/ajax/libs/marked/0.5.1/marked.min.js"></script>
- <script src="//cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.6/svg.min.js"></script>
- <script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
- <script src="/fengari-web.js"></script>
- <script type="application/lua" src="/mmm.bundle.lua"></script>
- <script type="application/lua">require 'mmm'</script>
- ]]
- \write "
- <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>
- </body>
- </html>
- "
- \close!
-
-
tree = load_tree SQLStore :name
+tree = tree\walk startpath if startpath
for fileder in coroutine.wrap tree\iterate
print "rendering '#{fileder.path}'..."
os.execute "mkdir -p 'out/#{fileder.path}'"
- render fileder, "out/#{fileder.path}/index.html"
+
+ BROWSER = Browser fileder
+ with io.open "out/#{fileder.path}/index.html", 'w'
+ \write render (tohtml BROWSER), fileder
+ \close!