diff --git a/src/formatitko/html_generator.py b/src/formatitko/html_generator.py index 28f49de..4089a69 100644 --- a/src/formatitko/html_generator.py +++ b/src/formatitko/html_generator.py @@ -328,7 +328,7 @@ class StandaloneHTMLGenerator(HTMLGenerator): self.indent_more() self.writeln(self.single_tag("meta", attributes={"charset": "utf-8"})) self.writeln(self.single_tag("meta", attributes={"viewport": "width=device-width, initial-scale=1.0"})) - self.writeln(self.single_tag("link", attributes={"href": "https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css", "integrity":"sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0", "crossorigin":"anonymous"})) + self.writeln(self.single_tag("link", attributes={"rel": "stylesheet", "href": "https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css", "integrity":"sha384-vKruj+a13U8yHIkAyGgK1J3ArTLzrFGBbBc0tDp4ad/EyewESeXE/Iv67Aj8gKZ0", "crossorigin":"anonymous"})) if "title" in e.metadata: self.write(self.start_tag("title")) self.generate(e.metadata["title"]) diff --git a/src/formatitko/nop_processor.py b/src/formatitko/nop_processor.py index f20ff1b..8218b2e 100644 --- a/src/formatitko/nop_processor.py +++ b/src/formatitko/nop_processor.py @@ -111,10 +111,12 @@ class NOPProcessor: e = transformer(e) try: - e = self.TYPE_DICT[type(e)](e) + method = self.TYPE_DICT[type(e)] except KeyError: raise self.UnknownElementError(type(e)) + e = method(e) + for transformer in self.get_posttransformers(): e = transformer(e) diff --git a/src/formatitko/output_generator.py b/src/formatitko/output_generator.py index 71dbebf..f2e0853 100644 --- a/src/formatitko/output_generator.py +++ b/src/formatitko/output_generator.py @@ -157,9 +157,10 @@ class OutputGenerator: self.generate_MetaList(e) else: try: - self.TYPE_DICT_MISC[type(e)](e) + method = self.TYPE_DICT_MISC[type(e)] except KeyError as err: raise UnknownElementError(type(e)) from err + method(e) if isinstance(e, Group): self.context = old_context except FormatitkoRecursiveError as err: @@ -292,9 +293,10 @@ class OutputGenerator: def generate_MetaValue(self, e: MetaValue): try: - self.TYPE_DICT_META[type(e)](e) + method = self.TYPE_DICT_META[type(e)] except KeyError: self.generate(e.content) + method(e) def generate_MetaBlocks(self, e: MetaBlocks): self.generate(e.content) @@ -303,16 +305,23 @@ class OutputGenerator: self.generate(e.content) def generate_MetaBool(self, e: MetaBool): - self.generate_simple_tag(e) + if e.boolean: + self.write("True") + else: + self.write("False") def generate_MetaMap(self, e: MetaMap): self.generate_simple_tag(e) def generate_MetaString(self, e: MetaString): - self.generate_simple_tag(e) + self.write(e.text) def generate_Inline(self, e: Inline): - self.TYPE_DICT_INLINE[type(e)](e) + try: + method = self.TYPE_DICT_INLINE[type(e)] + except KeyError as err: + raise UnknownElementError(type(e)) from err + method(e) def generate_Str(self, e: Str): self.write(self.escape_special_chars(e.text)) @@ -413,7 +422,11 @@ class OutputGenerator: def generate_Block(self, e: Block): - self.TYPE_DICT_BLOCK[type(e)](e) + try: + method = self.TYPE_DICT_BLOCK[type(e)] + except KeyError as err: + raise UnknownElementError(type(e)) from err + method(e) # Block elements