diff options
Diffstat (limited to 'render_all.moon')
| -rw-r--r-- | render_all.moon | 76 |
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" |
