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 |