Skip to content
Snippets Groups Projects
html_report_builder.py 909 B
Newer Older
  • Learn to ignore specific revisions
  • sw's avatar
    sw committed
    import os
    from typing import Any
    
    from jinja2 import Template, FileSystemLoader, Environment
    
    from contrib.descriptions import VulnDescriptionProvider
    from contrib.report_builders import JsonReportBuilder
    
    
    class JinjaHtmlReportBuilder(JsonReportBuilder):
        def __init__(self, description_provider: VulnDescriptionProvider):
            super().__init__(description_provider)
            self.template_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'templates')
            self.template_name = 'jinja2_report.html'
            self._read_template()  # type: Template
    
        def build(self) -> Any:
            return self._template.render(data=self._buffer)
    
        def _read_template(self):
            template_loader = FileSystemLoader(searchpath=self.template_path)
            template_env = Environment(loader=template_loader, autoescape=True)
            self._template = template_env.get_template(self.template_name)