aboutsummaryrefslogtreecommitdiffstats
path: root/render_all.moon
diff options
context:
space:
mode:
Diffstat (limited to 'render_all.moon')
-rw-r--r--render_all.moon76
1 files changed, 76 insertions, 0 deletions
diff --git a/render_all.moon b/render_all.moon
new file mode 100644
index 0000000..3d295c9
--- /dev/null
+++ b/render_all.moon
@@ -0,0 +1,76 @@
+add = (tmpl) ->
+ package.path ..= ";#{tmpl}.lua"
+ package.moonpath ..= ";#{tmpl}.moon"
+
+add '?'
+add '?.server'
+add '?/init'
+add '?/init.server'
+
+require 'mmm'
+import tohtml from require 'mmm.component'
+import Browser from require 'mmm.mmmfs.browser'
+import load_tree from require 'mmm.mmmfs.zip'
+import get_meta, header, footer from require 'build.layout'
+
+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!
+
+for fileder in coroutine.wrap load_tree!\iterate
+ print "rendering '#{fileder.path}'..."
+ os.execute "mkdir -p 'out/#{fileder.path}'"
+ render fileder, "out/#{fileder.path}/index.html"