173 logging.info('Build %s from %s', self.output, self.inputs[0])
174
175 template = jinja2_env.get_template(PAGE_TEMPLATE)
176 md_converter = markdown.Markdown(extensions=[
177 'admonition',
178 'extra',
179 CodeHiliteExtension(),
180 'tables',
181 'pymdownx.superfences',
182 'toc',
183 xref_extension,
184 ])
185 result = template.render({
186 'dev':
187 is_dev_mode,
188 'body':
189 md_converter.convert(self._load_markdown()),
190 'root':
191 deployment_root
192 })
193
194 if not is_dev_mode and len(md_converter.xrefs) > 0:
195 self._update_xref_section(md_converter.xrefs)
196
197 os.makedirs(os.path.dirname(self.output), exist_ok=True)
198 with codecs.open(self.output, "w", encoding='utf-8') as file:
199 file.write(result)
200
201 template_filename = template.filename
202 self.inputs = [self.inputs[0], template_filename]
203
204