non nom
Bonjour, voici nomnoml , un outil de dessin de diagrammes UML basé sur une syntaxe simple. Il essaie de garder sa syntaxe visuellement aussi proche que possible du diagramme UML généré sans recourir aux dessins ASCII.
Créé par Daniel Kallin . Contributions d' Alexander Moosbrugger et Korroz .
Nomnoml was made possible by these cool projects
Bibliothèque
La bibliothèque javascript autonome nomnoml peut être utilisée pour afficher des diagrammes sur votre propre page Web. Les seules dépendances sont lodash et dagre . Installez-la en utilisant npm ou une bonne vieille inclusion de script.
Utilisation de NodeJS avec sortie SVG :
1
2
3
4
5npm install nomnoml
var nomnoml = require('nomnoml');
var src = '[nomnoml] is -> [awesome]';
console.log(nomnoml.renderSvg(src));
Utilisation du HTML avec une cible de rendu Canvas :
1
2
3
4
5
6
7
8
9
10<script src="lodash.js"></script>
<script src="dagre.js"></script>
<script src="nomnoml.js"></script>
<canvas id="target-canvas"></canvas>
<script>
var canvas = document.getElementById('target-canvas');
var source = '[nomnoml] is -> [awesome]';
nomnoml.draw(canvas, source);
</script>
Prise en charge SVG
Un mode de rendu SVG expérimental (et non complet) est disponible en tant que nomnoml.renderSvg
fonction.
Interface de ligne de commande
dist/nomnoml-cli.js
expose le moteur de rendu SVG avec une interface de ligne de commande. Ce mode prend également en charge la #import: <filename>
directive qui vous permet de séparer des diagrammes complexes en plusieurs fichiers.
application Web
L' application Web nomnoml est un éditeur simple avec un aperçu en direct. Il est purement côté client et les modifications sont enregistrées dans le localStorage du navigateur , votre diagramme devrait donc être ici la prochaine fois (mais sans garantie).
Interaction
Le canevas peut être panoramique et zoomé en faisant glisser et en faisant défiler le tiers droit du canevas. Les fichiers image téléchargés recevront le nom de fichier dans la #title
directive.
Example
Voici à quoi ressemble le modèle Decorator dans la syntaxe nomnoml :
1
2
3
4
5
6
7
8[<frame>Decorator pattern|
[<abstract>Component||+ operation()]
[Client] depends --> [Component]
[Decorator|- next: Component]
[Decorator] decorates -- [ConcreteComponent]
[Component] <:- [Decorator]
[Component] <:- [ConcreteComponent]
]
Association types
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15- association
-> association
<-> association
--> dependency
<--> dependency
-:> generalization
<:- generalization
--:> implementation
<:-- implementation
+- composition
+-> composition
o- aggregation
o-> aggregation
-- note
-/- hidden
Classifier types
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[name]
[<abstract> name]
[<instance> name]
[<reference> name]
[<note> name]
[<package> name]
[<frame> name]
[<database> name]
[<start> name]
[<end> name]
[<state> name]
[<choice> name]
[<input> name]
[<sender> name]
[<receiver> name]
[<transceiver> name]
[<actor> name]
[<usecase> name]
[<label> name]
[<hidden> name]
Directives
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17#arrowSize: 1
#bendSize: 0.3
#direction: down | right
#gutter: 5
#edgeMargin: 0
#edges: hard | rounded
#fill: #eee8d5; #fdf6e3
#fillArrows: false
#font: Calibri
#fontSize: 12
#leading: 1.25
#lineWidth: 3
#padding: 8
#spacing: 40
#stroke: #33322E
#title: filename
#zoom: 1
Directives disponibles uniquement lors de l'utilisation de l'interface de ligne de commande
1#import: my-common-styles.nomnoml
Custom classifier styles
Une directive qui commence par "." définit un style de classificateur.
1
2
3
4#.box: fill=#88ff88
#.blob: fill=pink visual=ellipse italic bold dashed
[<box> GreenBox]
[<blob> HideousBlob]
Les visuels disponibles sont
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17visual=actor
visual=class
visual=database
visual=ellipse
visual=end
visual=frame
visual=hidden
visual=input
visual=none
visual=note
visual=package
visual=receiver
visual=rhomb
visual=roundrect
visual=sender
visual=start
visual=transceiver
Les modificateurs disponibles sont
1
2
3
4
5
6center
bold
underline
italic
dashed
empty
Contribuant
Si vous souhaitez contribuer au projet, plus d'informations sont disponibles dansCONTRIBUTING.md.