diff --git a/sphinx_d2lang/d2lang.py b/sphinx_d2lang/d2lang.py index cb343aa..1588eed 100644 --- a/sphinx_d2lang/d2lang.py +++ b/sphinx_d2lang/d2lang.py @@ -4,6 +4,7 @@ from docutils.parsers.rst import Directive, directives from sphinx.util.docutils import SphinxDirective from shutil import which +from pathlib import Path import shlex import subprocess import tempfile @@ -24,12 +25,16 @@ class D2langDirective(SphinxDirective): output_fname = self.options.get('filename') else: output_fname = 'test.svg' - if 'layout': + if 'layout' in self.options: layout = self.options.get('layout') else: layout = 'dagre' if self.arguments: - build_svg(self.arguments[0], srcdir, output_fname, layout) + path = Path(srcdir + self.arguments[0]) + if path.is_file(): + build_svg(self.arguments[0], srcdir, output_fname, layout) + else: + raise else: with tempfile.NamedTemporaryFile() as fp: for line in self.content.data: