diff --git a/fgs/pandoc.py b/fgs/pandoc.py index 8f17e7652e5e4e5dfe1e311f4d364fe252b249c2..2139783d33e899a1042c050db53ecc67e2e049cc 100644 --- a/fgs/pandoc.py +++ b/fgs/pandoc.py @@ -48,6 +48,7 @@ def run_pandoc(source, factories, lang, base="markdown", extensions=[], extra_ar if block != None: blocks.append(block) + elementlist = convert_elements_to_list(blocks) contentmetadata = {} contentmetadata["toc_list"] = [] @@ -56,10 +57,33 @@ def run_pandoc(source, factories, lang, base="markdown", extensions=[], extra_ar # TODO TOC #contentmetadata["toc"] = build_toc(n["toc_list"].copy()) + # Get all images on page + images = [] + for e in elementlist: + if e.etype == "image": + images.append(e) + contentmetadata["images"] = images + contentmetadata["has_image"] = (len(images) > 0) + if contentmetadata["has_image"]: + contentmetadata["image"] = images[0] + + + #blocks = json.loads(json.dumps(blocks, cls=ElementEncoder)) # Reduce to 'simple' dict, which can be converted to JSON in Jinja2. return (blocks, contentmetadata) + +def convert_elements_to_list(elements): + res = [] + for element in elements: + res.append(element) + res += convert_elements_to_list(element.children) + return res + + + + def parse_from_register(factories, lang, reg: dict, h: dict, custom_syntax_handler): t = h['t'] # pandoc type if t not in reg: