diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-10-07 17:49:16 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-10-07 17:49:16 +0000 |
| commit | ad26c7c4e374f66a978f9946bbb083377f2224a6 (patch) | |
| tree | 7bdee1e299cb2a907294b115b577e14ccbee4986 /build/render_all.moon | |
| parent | add simple HTTP server (diff) | |
| download | mmm-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.moon | 71 |
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! |
