sphinx-d2lang/sphinx_d2lang/d2lang.py
2023-12-10 21:39:08 +01:00

21 lines
613 B
Python

from docutils import nodes
from docutils.parsers.rst import Directive
from shutil import which
import shlex
import subprocess
class D2langDirective(Directive):
has_content = True
def run(self):
# TODO : add tempfile for diag_source
outdir = self.state.document.settings.env.app.builder.outdir
diag_source = self.content
d2_bin = which('d2')
cmd_line = "echo %s | %s - %s" % (diag_source, d2_bin, outdir + "/test.svg")
args = shlex.split(cmd_line)
subprocess.run(args)
image_node = nodes.image(uri="/test.svg")
return [image_node]