Rendering Diagrams in Sphinx
Project description
sphinx-diagrams
This is a rough (incomplete, but working) Sphinx extension for Diagrams. Please refer to the open issue for Sphinx support for the latest up-to-date version when officially supported.
Usage
Install
$ pip3 install sphinx-diagrams
Adding the extension
conf.py
extensions = [
"sphinx_diagrams",
]
Adding the diagram (inline)
The simplest way is to use SphinxDiagram
and inline the code in your document.
Consider using an external diagram/python script (see below) as it has much
shorter iteration loop than running sphinx and most likely better supported by
your editor or IDE.
source/index.rst
Diagram - Deployment
====================
.. diagrams::
from diagrams import Cluster
from diagrams.k8s.compute import Deployment
from sphinx_diagrams import SphinxDiagram
with SphinxDiagram(title="GKE"):
with Cluster("GCP Project"):
KubernetesEngine("Primary Cluster")
Adding a diagram (external python code)
Write the code
source/diagrams_infrastructure.py
You can still use SphinxDiagram
in your own code. This class handles arguments
like :filename:
and visibility (showing the diagram via xdg-open/open
) for
you.
from diagrams import Cluster
from diagrams.k8s.compute import Deployment
from sphinx_diagrams import SphinxDiagram
with SphinxDiagram(title="GKE"):
with Cluster("GCP Project"):
KubernetesEngine("Primary Cluster")
Alternatively, you can use Diagram
(from diagrams
) directly. Note that the
extension will pass two arguments to your diagram script. The first one is the
filename
as sys.argv[1]
it expects (it needs to match the one outputted by
diagrams
) and the value false
as sys.argv[2]
. The later can be used to
tell your script not to show (open) the generate diagram.
import sys
from diagrams import Diagram, Cluster
from diagrams.gcp.compute import KubernetesEngine
with Diagram("GKE", filename=sys.argv[1], show=sys.argv[2].lower() == 'true'):
with Cluster("GCP Project"):
KubernetesEngine("Primary Cluster")
Referencing the diagram
source/index.rst
Diagram - Deployment
====================
.. diagrams:: diagrams_infrastructure.py
:filename: diagram-deployment.png
If using SphinxDiagram
(above) or if the filename of the diagram script is the
same as the output file (e.g.: diagrams_infrastructure.py => diagrams_infrastructure.png
) then the :filename:
is not necessary.
Diagram - Deployment
====================
.. diagrams:: diagrams_infrastructure.py
Credit
This code is based on sphinx.graphviz.
SPDX-License-Identifier: BSD-2-Clause
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file sphinx-diagrams-0.4.0.tar.gz
.
File metadata
- Download URL: sphinx-diagrams-0.4.0.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.3 CPython/2.7.17 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cf2e0179bdd9ccdb28164fcfcae9b167999a1abe40e159e0c26a225490074d1 |
|
MD5 | 2648d3510aa1c9c3c53299b9b1075c82 |
|
BLAKE2b-256 | 6841e5e874e12f09ea002eee1498cab5fccfd9c6a3348cd3bba82819310d8335 |
File details
Details for the file sphinx_diagrams-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: sphinx_diagrams-0.4.0-py3-none-any.whl
- Upload date:
- Size: 6.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.3 CPython/2.7.17 Darwin/20.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4860291cb04d6361f898d20ba28dca7345f757cdc240caf144c8bf20c73067a0 |
|
MD5 | d3cf1c7c9842a4723c891a443fcc0589 |
|
BLAKE2b-256 | 8ea322ae4cac618ed0b8d5447dcb67e833bd27a37c958be0540cce5fd34f42e2 |