From 76021c66eaddc7ff3a1cc183277765135df37c02 Mon Sep 17 00:00:00 2001 From: Daniel Ferrari Date: Tue, 18 Feb 2020 11:00:24 +0000 Subject: [PATCH] docs: add example about custom node --- docs/getting-started/examples.md | 16 ++++++++++++++++ .../static/img/custom_node_example_diagram.png | Bin 0 -> 18448 bytes 2 files changed, 16 insertions(+) create mode 100644 website/static/img/custom_node_example_diagram.png diff --git a/docs/getting-started/examples.md b/docs/getting-started/examples.md index 0e7b3916..39f262a4 100644 --- a/docs/getting-started/examples.md +++ b/docs/getting-started/examples.md @@ -169,3 +169,19 @@ with Diagram("Stateful Architecture", show=False): ``` ![stateful architecture diagram](/img/stateful_architecture_diagram.png) + +## Using Custom Images + +```python +from diagrams import Diagram +from diagrams.custom import Custom +from diagrams.k8s.compute import Pod + +with Diagram("Custom Node Example", show=False): + pod = Pod("pod") + node = Custom("service", "/img/diagrams.png") + + node >> pod +```` + +![custom node diagram](/img/custom_node_example_diagram.png) diff --git a/website/static/img/custom_node_example_diagram.png b/website/static/img/custom_node_example_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..55bcf81f4d6a8a76ce67a193d34218b66219ff15 GIT binary patch literal 18448 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 HoD!M<_CJ3g literal 0 HcmV?d00001