diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-10-07 14:17:58 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-10-07 14:17:58 +0000 |
| commit | 7448fe54c582f1c2535c3a41bfb51ac4e00161a6 (patch) | |
| tree | 128adbd5c97633d83b33ef9d18b4cf39ef8a36a9 /render_all.moon | |
| parent | Merge branch 'master' into ba (diff) | |
| download | mmm-7448fe54c582f1c2535c3a41bfb51ac4e00161a6.tar.gz mmm-7448fe54c582f1c2535c3a41bfb51ac4e00161a6.zip | |
SQL import and loading
Diffstat (limited to 'render_all.moon')
| -rw-r--r-- | render_all.moon | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/render_all.moon b/render_all.moon index 3d295c9..e2f171e 100644 --- a/render_all.moon +++ b/render_all.moon @@ -10,7 +10,6 @@ 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 @@ -70,7 +69,46 @@ render = (fileder, output) -> " \close! -for fileder in coroutine.wrap load_tree!\iterate +import SQLStore from require 'mmm.mmmfs.drivers.sql' +import Fileder, Key from require 'mmm.mmmfs.fileder' + +-- split filename into dirname + basename +dir_base = (path) -> + dir, base = path\match '(.-)([^/]-)$' + if dir and #dir > 0 + dir = dir\sub 1, #dir - 1 + + dir, base + +load_tree = (store, root='') -> + fileders = setmetatable {}, + __index: (path) => + with val = Fileder {} + .path = path + rawset @, path, val + + root = fileders[root] + root.facets['name: alpha'] = '' + for fn, ft in store\list_facets root.path + val = store\load_facet root.path, fn, ft + root.facets[Key fn, ft] = val + + for path in store\list_all_fileders root.path + fileder = fileders[path] + + parent, name = dir_base path + fileder.facets['name: alpha'] = name + table.insert fileders[parent].children, fileder + + for fn, ft in store\list_facets path + val = store\load_facet path, fn, ft + fileder.facets[Key fn, ft] = val + + root + +tree = load_tree SQLStore! + +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" |
