| 90 newenv.page=env.pages[file] |
90 newenv.page=env.pages[file] |
| 91 |
91 |
| 92 return newenv |
92 return newenv |
| 93 end |
93 end |
| 94 |
94 |
| 95 function handlers_render.render(file, env, path_prefix) |
95 function handlers_render.render(file, env, path_prefix, renderer) |
| 96 local data=env.pages[file].data |
96 local data=env.pages[file].data |
| 97 if data then |
97 if data then |
| 98 local newenv=handlers_render.env_for(file, env, path_prefix) |
98 local newenv=handlers_render.env_for(file, env, path_prefix) |
| 99 local data2=handlers_render.process_lua(data, newenv) |
99 local data2=handlers_render.process_lua(data, newenv) |
| 100 meta = env.pages[file].meta |
100 meta = env.pages[file].meta |
| 101 renderer = meta.renderer or "markdown-it" |
|
| 102 if renderer == "markdown-it" then |
101 if renderer == "markdown-it" then |
| 103 return markdown_it.markdown(data2, env) |
102 return markdown_it.markdown(data2, env) |
| 104 elseif renderer == "pandoc" then |
103 elseif renderer == "pandoc" then |
| 105 return pandoc.pandoc(data2) |
104 return pandoc.pandoc(data2) |
| 106 elseif renderer == "lua-markdown" then |
105 elseif renderer == "lua-markdown" then |
| 117 local page=env.pages[file] |
116 local page=env.pages[file] |
| 118 local src = path.join(env.paths.src, file) |
117 local src = path.join(env.paths.src, file) |
| 119 local dst = path.join(env.paths.dst, page.destination) |
118 local dst = path.join(env.paths.dst, page.destination) |
| 120 local tmpl = path.join(env.paths.tmpl, |
119 local tmpl = path.join(env.paths.tmpl, |
| 121 page.meta.template or "page.template") |
120 page.meta.template or "page.template") |
| |
121 renderer = page.meta.renderer or "markdown-it" |
| |
122 |
| 122 local deps = {src} |
123 local deps = {src} |
| 123 |
124 |
| 124 local build=page.meta.always_build |
125 local build=page.meta.always_build |
| 125 if not build then |
126 if not build then |
| 126 if page.meta.dependencies then |
127 if page.meta.dependencies then |
| 129 table.insert(deps, path.join(env.paths.src, p)) |
130 table.insert(deps, path.join(env.paths.src, p)) |
| 130 end |
131 end |
| 131 end |
132 end |
| 132 end |
133 end |
| 133 table.insert(deps, tmpl) |
134 table.insert(deps, tmpl) |
| |
135 if renderer=="markdown-it" then |
| |
136 markdown_it.add_deps(deps, env) |
| |
137 end |
| 134 build=dependency.simple_update_check(dst, deps) |
138 build=dependency.simple_update_check(dst, deps) |
| 135 end |
139 end |
| 136 |
140 |
| 137 if build then |
141 if build then |
| 138 log.log("Render "..file.."\n") |
142 log.log("Render "..file.."\n") |
| 139 local content=handlers_render.render(file, env, page.meta) |
143 local content=handlers_render.render(file, env, page.meta, renderer) |
| 140 local page_template=filecache.get(tmpl) |
144 local page_template=filecache.get(tmpl) |
| 141 |
145 |
| 142 local newenv=table.join({content=content}, handlers_render.env_for(file, env)) |
146 local newenv=table.join({content=content}, handlers_render.env_for(file, env)) |
| 143 local data2=handlers_render.process_lua(page_template, newenv) |
147 local data2=handlers_render.process_lua(page_template, newenv) |
| 144 |
148 |