+if pdf:
+ if noisy:
+ print('Generating the PDF...')
+ import logging
+ logger = logging.getLogger('weasyprint')
+ logger.addHandler(logging.StreamHandler())
+
+ # Create the PDF version of the documentation
+ pdfpage = pdfpage.replace('{% tree %}', opsidebar) # create the TOC
+ pdfpage = pdfpage.replace('{{ content }}', '') # cleans up the last spaceholder
+ pdfpage = pdfpage.replace('{{ today }}', global_today)
+ pdfpage = pdfpage.replace('src="/images/', 'src="images/') # makes images links relative
+ pdfpage = pdfpage.replace('url(\'/images/', 'url(\'images/') # CSS images links relative
+ # Write it to disk (optional, can be removed)
+ pdfpageFile = open(global_site_dir + 'pdf.html', 'w')
+ pdfpageFile.write(pdfpage)
+ pdfpageFile.close()
+
+ # Generating the actual PDF with weasyprint (https://weasyprint.org/)
+ from weasyprint import HTML
+ from weasyprint.text.fonts import FontConfiguration
+
+ html_font_config = FontConfiguration()
+ doc = HTML(string = pdfpage, base_url = global_site_dir)
+ doc.write_pdf(global_site_dir + 'manual.pdf', font_config = html_font_config)
+
+if noisy: