diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-09-15 21:32:55 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-09-15 21:33:23 +0000 |
| commit | 20b00cb70d73137acee0cc800f212b0f19e90ce7 (patch) | |
| tree | 25652b905d8b2284f56459a0001007ab9d19315f /render_all.moon | |
| parent | fix code font (diff) | |
| download | mmm-20b00cb70d73137acee0cc800f212b0f19e90ce7.tar.gz mmm-20b00cb70d73137acee0cc800f212b0f19e90ce7.zip | |
wip zip
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" |
