So, I know I can invoke parsing of a content nested in a directive via nested_parse, namely:
vl = docutils.statemachine.ViewList(inputLines, source=self.content.source, parent=self.content, parent_offset=0)
self.state.nested_parse(vl, 0, section)
However, this assumes the input I pass to it is in RST. I tried something like
parser = MystParser()
docu = docutils.utils.new_document(".")
parser.parse("**Some Markdown** `goes here`", docu)
...which I found in some documentation samples, but it fails on docu missing some attributes. Moreover, I do not really want to create a new document; just append content to an existing node.
Is there any way to nested parse Markdown explicitly from within a directive? I use the latest sphinx docker image sphinxdoc/sphinx:latest.
EDIT: I also tried
with tempfile.NamedTemporaryFile() as tmp:
tmp.write(schemaObject["description"].encode("utf-8"))
content = f"""
.. include:: "{tmp.name}"
:parser: myst_parser.sphinx_
"""
vl = docutils.statemachine.ViewList(content.splitlines(), source=self.content.source, parent=self.content, parent_offset=0)
self.state.nested_parse(vl, 0, section)
but for some reason, I get
expected str, bytes or os.PathLike object, not method
Okay, so I eventually found a working solution. Not proud of it.