Following
other tentatives of markdown to DOCX conversion containing external SVG, I tried to convert to ODT a markdown containing **inline** SVG, such as the one below:
# Example document
This is an example of Markdown document with inline embedded SVG images.
Inline SVG image defined by plain text:
![SVG Image](data:image/svg+xml;charset=utf-8,<?xml version="1.0"?><svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="-150 -150 300 300"><rect x="-100" y="-100" rx="8" ry="8" width="200" height="200" style="fill:#CCCCFF;stroke:#000099"/></svg>)
Inline SVG image defined by BASE64 converted text:
![SVG Image](data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiB2aWV3Qm94PSItMTUwIC0xNTAgMzAwIDMwMCI+PHJlY3QgeD0iLTEwMCIgeT0iLTEwMCIgcng9IjgiIHJ5PSI4IiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgc3R5bGU9ImZpbGw6I0NDQ0NGRjtzdHJva2U6IzAwMDA5OSIvPjwvc3ZnPg==)
Some math to check if it works;
$$A_c = 23 r^2 - v$$
using command
pandoc example.md -o example.odt
with Pandoc 3.1.6.1. As you may confirm yourself, the BASE64 inline SVG is correctly converted, while the textual inline SVG is not displayed in the resulting ODT and the following warning appears at conversion:
[WARNING] Could not fetch resource data:image/svg+xml;charset=utf-8 ...
Given that a BASE64 inline SVG is enough to do the job, I would prefer to avoid the BASE64 conversion and go with
the plain text inline SVG.
I already tried html encoding of SVG text and uppercase "utf8" without success.
I choose ODT because it's open and because it seems to display SVG natively without needing PNG conversion (I hope it works with more complex SVG too), which is a great feature.
Thank in advance for your time.