handlers/render.lua

changeset 30
3ac53da03439
parent 29
d4b0773f5e06
child 42
260f867d46c0
equal deleted inserted replaced
29:d4b0773f5e06 30:3ac53da03439
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

mercurial