diff --git a/docs/_ext/drawio.py b/docs/_ext/drawio.py
index b5ff91d..765bf25 100644
--- a/docs/_ext/drawio.py
+++ b/docs/_ext/drawio.py
@@ -15,32 +15,44 @@ class DrawioDirective(SphinxDirective):
.. drawio::
example-diagram.drawio.html
example-diagram.drawio.png
+ :alt: Example of a Draw.io diagram
"""
has_content = False
required_arguments = 2 # html and png
+ optional_arguments = 1
+ final_argument_whitespace = True # indicating if the final argument may contain whitespace
+ option_spec = {
+ "alt": str,
+ }
def run(self) -> list[nodes.Node]:
- html_path = self.arguments[0]
- png_path = self.arguments[1]
-
env = self.state.document.settings.env
+ builder = env.app.builder
+ # Resolve paths relative to the document
docdir = Path(env.doc2path(env.docname)).parent
html_rel = Path(self.arguments[0])
png_rel = Path(self.arguments[1])
-
html_path = (docdir / html_rel).resolve()
png_path = (docdir / png_rel).resolve()
+ alt_text = self.options.get("alt", "")
+
container = nodes.container()
# HTML output -> raw HTML node
- if self.builder.format == "html":
+ if builder.format == "html":
# Embed the HTML file contents directly
+ try:
+ html_content = html_path.read_text(encoding="utf-8")
+ except OSError as e:
+ msg = self.state_machine.reporter.error(f"Cannot read HTML file: {e}")
+ return [msg]
+ aria_attribute = f' aria-label="{alt_text}"' if alt_text else ""
raw_html_node = nodes.raw(
"",
- f'
{open(html_path, encoding="utf-8").read()}
',
+ f'{html_content}
',
format="html",
)
container += raw_html_node
@@ -51,17 +63,12 @@ class DrawioDirective(SphinxDirective):
return [container]
- @property
- def builder(self):
- # Helper to access the builder from the directive context
- return self.state.document.settings.env.app.builder
-
def setup(app: Sphinx) -> ExtensionMetadata:
app.add_directive("drawio", DrawioDirective)
return {
- "version": "0.1",
+ "version": "0.2",
"parallel_read_safe": True,
"parallel_write_safe": True,
}
diff --git a/docs/user/Vermittlung-Lifecycle.drawio.png b/docs/user/Vermittlung-Lifecycle.drawio.png
new file mode 100644
index 0000000..ebe5279
Binary files /dev/null and b/docs/user/Vermittlung-Lifecycle.drawio.png differ
diff --git a/docs/user/Vermittlung_Lifecycle.drawio.html b/docs/user/Vermittlung_Lifecycle.drawio.html
new file mode 100644
index 0000000..33fc96d
--- /dev/null
+++ b/docs/user/Vermittlung_Lifecycle.drawio.html
@@ -0,0 +1,11 @@
+
+
+
+
+Vermittlung_Lifecycle
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/user/vermittlungen.rst b/docs/user/vermittlungen.rst
index a462b24..7c26e14 100644
--- a/docs/user/vermittlungen.rst
+++ b/docs/user/vermittlungen.rst
@@ -16,6 +16,12 @@ Ersteller*innen von Vermittlungen werden über neue Kommentare per Mail benachri
Kommentare können, wie Vermittlungen, gemeldet werden.
+.. drawio::
+ Vermittlung_Lifecycle.drawio.html
+ Vermittlung-Lifecycle.drawio.png
+ :alt: Diagramm das den Prozess der Vermittlungen zeigt.
+
+
Adoption Notice Status Choices
++++++++++++++++++++++++++++++