quizcomp.converter.html
1import logging 2import os 3import typing 4 5import edq.util.dirent 6 7import quizcomp.converter.template 8import quizcomp.model.constants 9import quizcomp.model.quiz 10import quizcomp.util.html 11 12THIS_DIR: str = os.path.abspath(os.path.dirname(os.path.realpath(__file__))) 13DEFAULT_TEMPLATE_DIR: str = os.path.join(THIS_DIR, '..', 'data', 'templates', 'edq-html') 14 15CSS_FILENAME: str = 'quiz.css' 16 17_logger = logging.getLogger(__name__) 18 19class HTMLTemplateConverter(quizcomp.converter.template.TemplateConverter): 20 """ 21 A converter to convert a quiz to HTML using templates. 22 """ 23 24 def __init__(self, 25 format: quizcomp.model.constants.Format = quizcomp.model.constants.Format.HTML, 26 template_dir: str = DEFAULT_TEMPLATE_DIR, 27 **kwargs: typing.Any) -> None: 28 super().__init__(format, template_dir, **kwargs) 29 css_path = os.path.join(template_dir, CSS_FILENAME) 30 if (not os.path.isfile(css_path)): 31 _logger.warning("Could not find CSS file: '%s'. Continuing without external CSS.", css_path) 32 self.env.globals['css_content'] = '' 33 else: 34 self.env.globals['css_content'] = edq.util.dirent.read_file(css_path) 35 36 def finalize(self, quiz: quizcomp.model.quiz.Quiz, text: str) -> str: 37 return quizcomp.util.html.clean(text, pretty = True) 38 39class CanvasTemplateConverter(HTMLTemplateConverter): 40 """ 41 A converter to convert a quiz to Canvas-specific HTML using templates. 42 """ 43 44 def __init__(self, 45 template_dir: str = DEFAULT_TEMPLATE_DIR, 46 **kwargs: typing.Any) -> None: 47 super().__init__(quizcomp.model.constants.Format.CANVAS, template_dir, **kwargs)
THIS_DIR: str =
'/home/runner/work/quiz-composer/quiz-composer/quizcomp/converter'
DEFAULT_TEMPLATE_DIR: str =
'/home/runner/work/quiz-composer/quiz-composer/quizcomp/converter/../data/templates/edq-html'
CSS_FILENAME: str =
'quiz.css'
20class HTMLTemplateConverter(quizcomp.converter.template.TemplateConverter): 21 """ 22 A converter to convert a quiz to HTML using templates. 23 """ 24 25 def __init__(self, 26 format: quizcomp.model.constants.Format = quizcomp.model.constants.Format.HTML, 27 template_dir: str = DEFAULT_TEMPLATE_DIR, 28 **kwargs: typing.Any) -> None: 29 super().__init__(format, template_dir, **kwargs) 30 css_path = os.path.join(template_dir, CSS_FILENAME) 31 if (not os.path.isfile(css_path)): 32 _logger.warning("Could not find CSS file: '%s'. Continuing without external CSS.", css_path) 33 self.env.globals['css_content'] = '' 34 else: 35 self.env.globals['css_content'] = edq.util.dirent.read_file(css_path) 36 37 def finalize(self, quiz: quizcomp.model.quiz.Quiz, text: str) -> str: 38 return quizcomp.util.html.clean(text, pretty = True)
A converter to convert a quiz to HTML using templates.
HTMLTemplateConverter( format: quizcomp.model.constants.Format = <Format.HTML: 'html'>, template_dir: str = '/home/runner/work/quiz-composer/quiz-composer/quizcomp/converter/../data/templates/edq-html', **kwargs: Any)
25 def __init__(self, 26 format: quizcomp.model.constants.Format = quizcomp.model.constants.Format.HTML, 27 template_dir: str = DEFAULT_TEMPLATE_DIR, 28 **kwargs: typing.Any) -> None: 29 super().__init__(format, template_dir, **kwargs) 30 css_path = os.path.join(template_dir, CSS_FILENAME) 31 if (not os.path.isfile(css_path)): 32 _logger.warning("Could not find CSS file: '%s'. Continuing without external CSS.", css_path) 33 self.env.globals['css_content'] = '' 34 else: 35 self.env.globals['css_content'] = edq.util.dirent.read_file(css_path)
40class CanvasTemplateConverter(HTMLTemplateConverter): 41 """ 42 A converter to convert a quiz to Canvas-specific HTML using templates. 43 """ 44 45 def __init__(self, 46 template_dir: str = DEFAULT_TEMPLATE_DIR, 47 **kwargs: typing.Any) -> None: 48 super().__init__(quizcomp.model.constants.Format.CANVAS, template_dir, **kwargs)
A converter to convert a quiz to Canvas-specific HTML using templates.