mirror of https://github.com/mingrammer/diagrams
* Try to make the custom doc page (#284) * [Fix] link syntax * [Fix] Generate the doc for custom outside the provider loop + Remove custom from providers list. * [Fix] Add custom menu in side bar * docs(Custom): Add more examples (#284)pull/434/head
parent
54a26048f7
commit
5ac2497b99
@ -0,0 +1,90 @@
|
||||
---
|
||||
id: custom
|
||||
title: Custom
|
||||
---
|
||||
|
||||
## Custom with local icons
|
||||
|
||||
For this example we use the following architecture:
|
||||
|
||||
```
|
||||
.
|
||||
├── custom_local.py
|
||||
├── my_resources
|
||||
│ ├── cc_heart.black.png
|
||||
│ ├── cc_attribution.png
|
||||
│ ├──...
|
||||
```
|
||||
|
||||
The content of custom_local.py file:
|
||||
|
||||
```python
|
||||
from diagrams import Diagram, Cluster
|
||||
from diagrams.custom import Custom
|
||||
|
||||
|
||||
with Diagram("Custom with local icons\n Can be downloaded here: \nhttps://creativecommons.org/about/downloads/", show=False, filename="custom_local", direction="LR"):
|
||||
cc_heart = Custom("Creative Commons", "./my_resources/cc_heart.black.png")
|
||||
cc_attribution = Custom("Credit must be given to the creator", "./my_resources/cc_attribution.png")
|
||||
|
||||
cc_sa = Custom("Adaptations must be shared\n under the same terms", "./my_resources/cc_sa.png")
|
||||
cc_nd = Custom("No derivatives or adaptations\n of the work are permitted", "./my_resources/cc_nd.png")
|
||||
cc_zero = Custom("Public Domain Dedication", "./my_resources/cc_zero.png")
|
||||
|
||||
with Cluster("Non Commercial"):
|
||||
non_commercial = [Custom("Y", "./my_resources/cc_nc-jp.png") - Custom("E", "./my_resources/cc_nc-eu.png") - Custom("S", "./my_resources/cc_nc.png")]
|
||||
|
||||
cc_heart >> cc_attribution
|
||||
cc_heart >> non_commercial
|
||||
cc_heart >> cc_sa
|
||||
cc_heart >> cc_nd
|
||||
cc_heart >> cc_zero
|
||||
```
|
||||
|
||||
It will generate the following diagram:
|
||||
|
||||
![custom local](/img/custom_local.png)
|
||||
|
||||
|
||||
## Custom with remote icons
|
||||
|
||||
If your icons are hosted and can be accessed when you generate the diagrams, you can
|
||||
|
||||
```python
|
||||
from diagrams import Diagram, Cluster
|
||||
from diagrams.custom import Custom
|
||||
from urllib.request import urlretrieve
|
||||
|
||||
with Diagram("Custom with remote icons", show=False, filename="custom_remote", direction="LR"):
|
||||
|
||||
# download the icon image file
|
||||
diagrams_url = "https://github.com/mingrammer/diagrams/raw/master/assets/img/diagrams.png"
|
||||
diagrams_icon = "diagrams.png"
|
||||
urlretrieve(diagrams_url, diagrams_icon)
|
||||
|
||||
diagrams = Custom("Diagrams", diagrams_icon)
|
||||
|
||||
with Cluster("Some Providers"):
|
||||
|
||||
openstack_url = "https://github.com/mingrammer/diagrams/raw/master/resources/openstack/openstack.png"
|
||||
openstack_icon = "openstack.png"
|
||||
urlretrieve(openstack_url, openstack_icon)
|
||||
|
||||
openstack = Custom("OpenStack", openstack_icon)
|
||||
|
||||
elastic_url = "https://github.com/mingrammer/diagrams/raw/master/resources/elastic/saas/elastic.png"
|
||||
elastic_icon = "elastic.png"
|
||||
urlretrieve(elastic_url, elastic_icon)
|
||||
|
||||
elastic = Custom("Elastic", elastic_icon)
|
||||
|
||||
diagrams >> openstack
|
||||
diagrams >> elastic
|
||||
```
|
||||
|
||||
It will generate the following diagram:
|
||||
|
||||
![custom local](/img/custom_remote.png)
|
||||
|
||||
|
||||
Another example can be found [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes).
|
@ -0,0 +1,6 @@
|
||||
---
|
||||
id: {{ pvd }}
|
||||
title: {{ pvd|up_or_title(pvd) }}
|
||||
---
|
||||
|
||||
For a full example check: [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes).
|
After Width: | Height: | Size: 115 KiB |
After Width: | Height: | Size: 34 KiB |
Loading…
Reference in new issue