Bibliothèque standard de PlantUML
Bienvenue au guide sur la bibliothèque standard officielle de PlantUML (stdlib). Ici, nous nous plongeons dans cette ressource intégrale qui est maintenant incluse dans toutes les versions officielles de PlantUML, facilitant une expérience de création de diagramme plus riche. La bibliothèque emprunte sa convention d'inclusion de fichiers à la "bibliothèque standard C", un protocole bien établi dans le monde de la programmation.
Vue d'ensemble de la bibliothèque standard
La bibliothèque standard est un dépôt de fichiers et de ressources, constamment mis à jour pour améliorer votre expérience de PlantUML. Elle forme l'épine dorsale de PlantUML, offrant une gamme de fonctionnalités et de caractéristiques à explorer.Contribution de la communauté
Une partie importante du contenu de la bibliothèque est généreusement fournie par des contributeurs tiers. Nous leur exprimons notre sincère gratitude pour leurs contributions inestimables qui ont joué un rôle essentiel dans l'enrichissement de la bibliothèque. Nous encourageons les utilisateurs à se plonger dans les abondantes ressources offertes par la bibliothèque standard, non seulement pour améliorer leur expérience de création de diagrammes, mais aussi pour contribuer et faire partie de cet effort de collaboration.
Contenu de la bibliothèque standard
Vous pouvez obtenir le contenu la bibliothèque standard à l'aide du diagramme spécial suivant:
|
🎉 Copied!
|
|
Il est également possible d'utiliser la ligne de commande
java -jar plantuml.jar -stdlib pour afficher cette même liste.
Enfin, vous pouvez extraire les sources complètes de la bibliothèque standard en utilisant java -jar plantuml.jar -extractstdlib. Tous les fichiers seront extraits dans le dossier stdlib.
Les sources utilisées pour construire les versions officielles de PlantUML sont hébergées ici https://github.com/plantuml/plantuml-stdlib. Vous pouvez créer une demande pour mettre à jour ou ajouter une bibliothèque si vous la trouvez pertinente.
ArchiMate [archimate]
| Type | Lien |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/archimate |
src
|
https://github.com/ebbypeter/Archimate-PlantUML |
orig
|
https://en.wikipedia.org/wiki/ArchiMate |
|
🎉 Copied!
|
|
Liste des sprites possibles
Vous pouvez lister tous les sprites possibles pour Archimate en utilisant le diagramme suivant
|
🎉 Copied!
|
|
Amazon Labs AWS Library [awslib]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/awslib |
src
|
https://github.com/awslabs/aws-icons-for-plantuml |
orig
|
https://aws.amazon.com/en/architecture/icons/ |
@startuml
!include <awslib/AWSCommon>
!include <awslib/InternetOfThings/IoTRule>
!include <awslib/Analytics/KinesisDataStreams>
!include <awslib/ApplicationIntegration/SimpleQueueService>
left to right direction
agent "Published Event" as event #fff
IoTRule(iotRule, "Action Error Rule", "error if Kinesis fails")
KinesisDataStreams(eventStream, "IoT Events", "2 shards")
SimpleQueueService(errorQueue, "Rule Error Queue", "failed Rule actions")
event --> iotRule : JSON message
iotRule --> eventStream : messages
iotRule --> errorQueue : Failed action message
@enduml
Azure library [azure]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/azure |
src
|
https://github.com/RicardoNiepel/Azure-PlantUML/ |
orig
|
Microsoft Azure |
!include <azure/Analytics/AzureEventHub>.
When imported, you can use the sprite as normally you would, using <$sprite_name>.
You may also include the AzureCommon.puml file, eg: !include <azure/AzureCommon>, which contains helper macros defined.
With the AzureCommon.puml imported, you can use the NAME_OF_SPRITE(parameters...) macro.
Example of usage:
|
🎉 Copied!
|
|
C4 Library [C4]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/C4 |
src
|
https://github.com/plantuml-stdlib/C4-PlantUML |
orig
|
https://en.wikipedia.org/wiki/C4_model https://c4model.com |
|
🎉 Copied!
|
|
Cloud Insight [cloudinsight]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/cloudinsight |
src
|
https://github.com/rabelenda/cicon-plantuml-sprites |
orig
|
Cloudinsight icons |
|
🎉 Copied!
|
|
Cloudogu [cloudogu]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/cloudogu |
src
|
https://github.com/cloudogu/plantuml-cloudogu-sprites |
orig
|
https://cloudogu.com |
|
🎉 Copied!
|
|
All cloudogu sprites See all possible cloudogu sprites on plantuml-cloudogu-sprites.
EDGY: An Open Source tool for collaborative Enterprise Design [edgy]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/edgy |
src
|
https://github.com/boessu/plantuml-stdlib/tree/master/edgy |
orig
|
https://enterprise.design/ |
“To become whole, enterprises must embrace a holistic, collaborative way of design: transcending silos, combining perspectives, looking for connections instead of divisions. An enterprise designed together works better together.” – Bard Papegaaij, Wolfgang Goebl and Milan Guenther, curators of EDGY 23EDGY helps to visualize, communicate, and co-design enterprises across different disciplines. EDGY is a design language that provides guidelines for enterprises to create effective and efficient digital products, services, and experiences. It was developed by the EDGY team with input from industry experts, researchers, and practitioners in order to address common challenges faced when developing complex systems. The foundation of Edgy is based on four key principles: simplicity, modularity, scalability, and adaptability. These principles are designed to help enterprises create products that can be easily maintained over time while also being able to scale up or down as needed. Additionally, the language provides a set of guidelines for designing user interfaces, data models, business processes, and more, making it an essential toolkit for any organization looking to improve their offerings.
Basic Elements and Interconnections
EDGY is an open-source language for enterprise design that uses only four base elements: people, activity, object, and outcome. These elements can be specialized into facet and intersection elements, which describe the enterprise from different perspectives: identity, architecture, and experience.Elements
The basic syntax of an element or a facet is:$element/facet("label", [identifier], [lightColor])
| Parameter | Description |
| label | Mandatory: label of the element. |
| identifier | Dependant: Identifies the element (for creating relations). Optional if you don't link them to other elemets/facets. |
| lightColor | Optional: 0 sets the standared color. 1 sets a lighter color. As default, facets do have lighter colors than elements. |
|
🎉 Copied!
|
|
Relationships
The elements (or facets) can be connected with three types of relationships: link, flow and tree.$link/flow/tree(fromIdentifier, toIdentifier, ["Description"])
| Parameter | Description |
| fromIdentifier | Mandatory: Identifies the starting element of a relation. |
| toIdentifier | Mandatory: Identifies the ending element of a relation. |
| label | Optional: label of the element. |
|
🎉 Copied!
|
|
There are quite some hierarchical linking in edgy. Or maps. So it is also possible to group/nesting elements:
|
🎉 Copied!
|
|
Facets
A facet is a perspective that relates to any enterprise, featuring a set of questions that an enterprise needs to answer in order to achieve a coherent design. There are three facets in EDGY: Identity, Architecture, and Experience. Each facet references five enterprise elements: three facet elements, and two intersection elements at the overlap with the neighbouring facets.Identity
The Identity Facet describes why the enterprise exists and what it stands for.
|
🎉 Copied!
|
|
Architecture
The Architecture facet is about the structures and processes that enable the enterprise to operate and deliver.
|
🎉 Copied!
|
|
Experience
The Experience Facet is about the impact that the enterprise has on people and their lives through its interactions.
|
🎉 Copied!
|
|
Intersections
Intersections are lenses that connect facets and disciplines, such as organisation, product, and brand.
|
🎉 Copied!
|
|
Alternative visual styling
Finally, there is also an alternative representation that focuses on rectangles with stereotypes. The approach described above is 100% compatible. It can therefore be activated with a simple swap from!include <edgy/edgy> to !include <edgy/edgy2>.
This can sometimes be useful if the people involved do not immediately know the color codes and concrete meanings of the EDGY elements by heart. Also color-blind people can benefit from this ;-)
|
🎉 Copied!
|
|
Elastic library [elastic]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/elastic |
src
|
https://github.com/Crashedmind/PlantUML-Elastic-icons |
orig
|
Elastic |
!include elastic/elastic_search/elastic_search>.
When imported, you can use the sprite as normally you would, using <$sprite_name>.
You may also include the common.puml file, eg: !include <elastic/common>, which contains helper macros defined.
With the common.puml imported, you can use the NAME//OF//SPRITE(parameters...) macro.
Example of usage:
|
🎉 Copied!
|
|
All Elastic Sprite Set
|
🎉 Copied!
|
|
Google Material Icons [material]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/material |
src
|
https://github.com/Templarian/MaterialDesign |
orig
|
Material Design Icons |
!include <material/ma_folder_move>.
When imported, you can use the sprite as normally you would, using <$ma_sprite_name>.
Notice that this library requires an ma_ prefix on sprites names, this is to avoid clash of names if multiple sprites have the same name on different libraries.
You may also include the common.puml file, eg: !include <material/common>, which contains helper macros defined.
With the common.puml imported, you can use the MA_NAME_OF_SPRITE(parameters...) macro, note again the use of the prefix MA_.
Example of usage:
|
🎉 Copied!
|
|
Notes: When mixing sprites macros with other elements you may get a syntax error if, for example, trying to add a rectangle along with classes. In those cases, add
{ and } after the macro to create the empty rectangle.
Example of usage:
|
🎉 Copied!
|
|
Kubernetes [kubernetes]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/kubernetes |
src
|
https://github.com/michiel/plantuml-kubernetes-sprites |
orig
|
Kubernetes |
|
🎉 Copied!
|
|
Logos [logos]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/logos |
src
|
https://github.com/plantuml-stdlib/gilbarbara-plantuml-sprites |
orig
|
Gil Barbara's logos |
|
🎉 Copied!
|
|
|
🎉 Copied!
|
|
Office [office]
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/office |
src
|
https://github.com/Roemer/plantuml-office |
orig
|
|
🎉 Copied!
|
|
|
🎉 Copied!
|
|
Open Security Architecture (OSA) [osa]
|
🎉 Copied!
|
|
|
🎉 Copied!
|
|
Tupadr3 library [tupadr3]
!include <font-awesome/align_center>.
When imported, you can use the sprite as normally you would, using <$sprite_name>.
You may also include the common.puml file, eg: !include <font-awesome/common>, which contains helper macros defined.
With the common.puml imported, you can use the NAME_OF_SPRITE(parameters...) macro.
Example of usage:
|
🎉 Copied!
|
|
|
🎉 Copied!
|
|
Bibliothèque AWS
| Type | Link |
stdlib
|
https://github.com/plantuml/plantuml-stdlib/tree/master/aws |
src
|
https://github.com/milo-minderbinder/AWS-PlantUML |
orig
|
https://aws.amazon.com/en/architecture/icons/ |
<awslib> instead (see above).
La bibliothèque AWS est composée des icônes AWS en deux tailles différentes. Pour l'utiliser, il vous vaut inclure le ficheier qui contient le sprite (ex:
!include <aws/Storage/AmazonS3/AmazonS3>).
Une fois importé, vous pouvez utiliser le sprite normallement en l'appelant de la manière suivante <$nom_du_sprite>.
Vous pouvez aussi inclure le fichier common.puml qui contient plusieurs macros utiles avec la commande !include <aws/common>. Avec ce fichier importé, vous pouvez par exmeple appeler la macro "NOM_DU_SPRITE(parametres...).
Exemple d'utilisation :
|
🎉 Copied!
|
|