feat(er): use square brackets to add aliases
This commit is contained in:
parent
cc8b4572d5
commit
a7ae1b6890
|
@ -112,12 +112,12 @@
|
|||
|
||||
<pre class="mermaid">
|
||||
erDiagram
|
||||
p as Person {
|
||||
string firstName
|
||||
string lastName
|
||||
p[Person] {
|
||||
string firstName
|
||||
string lastName
|
||||
}
|
||||
a as "Customer Account" {
|
||||
string email
|
||||
a["Customer Account"] {
|
||||
string email
|
||||
}
|
||||
p ||--o| a : has
|
||||
</pre>
|
||||
|
|
|
@ -200,15 +200,15 @@ The `type` values must begin with an alphabetic character and may contain digits
|
|||
|
||||
### Entity Name Aliases (v\<MERMAID_RELEASE_VERSION>+)
|
||||
|
||||
An alias can be added to an entity using `as` keyword. If provided, the alias will be showed in the diagram instead of the entity name.
|
||||
An alias can be added to an entity using square brackets. If provided, the alias will be showed in the diagram instead of the entity name.
|
||||
|
||||
```mermaid-example
|
||||
erDiagram
|
||||
p as Person {
|
||||
p[Person] {
|
||||
string firstName
|
||||
string lastName
|
||||
}
|
||||
a as "Customer Account" {
|
||||
a["Customer Account"] {
|
||||
string email
|
||||
}
|
||||
p ||--o| a : has
|
||||
|
@ -216,11 +216,11 @@ erDiagram
|
|||
|
||||
```mermaid
|
||||
erDiagram
|
||||
p as Person {
|
||||
p[Person] {
|
||||
string firstName
|
||||
string lastName
|
||||
}
|
||||
a as "Customer Account" {
|
||||
a["Customer Account"] {
|
||||
string email
|
||||
}
|
||||
p ||--o| a : has
|
||||
|
|
|
@ -35,6 +35,8 @@ accDescr\s*"{"\s* { this.begin("acc_descr_multili
|
|||
<block>[\n]+ /* nothing */
|
||||
<block>"}" { this.popState(); return 'BLOCK_STOP'; }
|
||||
<block>. return yytext[0];
|
||||
"[" return 'SQS';
|
||||
"]" return 'SQE';
|
||||
|
||||
"one or zero" return 'ZERO_OR_ONE';
|
||||
"one or more" return 'ONE_OR_MORE';
|
||||
|
@ -62,7 +64,6 @@ o\{ return 'ZERO_OR_MORE';
|
|||
\-\- return 'IDENTIFYING';
|
||||
"to" return 'IDENTIFYING';
|
||||
"optionally to" return 'NON_IDENTIFYING';
|
||||
"as" return 'ALIAS';
|
||||
\.\- return 'NON_IDENTIFYING';
|
||||
\-\. return 'NON_IDENTIFYING';
|
||||
[A-Za-z][A-Za-z0-9\-_]* return 'ALPHANUM';
|
||||
|
@ -114,15 +115,15 @@ statement
|
|||
}
|
||||
| entityName BLOCK_START BLOCK_STOP { yy.addEntity($1); }
|
||||
| entityName { yy.addEntity($1); }
|
||||
| entityName ALIAS entityName BLOCK_START attributes BLOCK_STOP
|
||||
| entityName SQS entityName SQE BLOCK_START attributes BLOCK_STOP
|
||||
{
|
||||
/* console.log('detected block'); */
|
||||
yy.addEntity($1, $3);
|
||||
yy.addAttributes($1, $5);
|
||||
yy.addAttributes($1, $6);
|
||||
/* console.log('handled block'); */
|
||||
}
|
||||
| entityName ALIAS entityName BLOCK_START BLOCK_STOP { yy.addEntity($1, $3); }
|
||||
| entityName ALIAS entityName { yy.addEntity($1, $3); }
|
||||
| entityName SQS entityName SQE BLOCK_START BLOCK_STOP { yy.addEntity($1, $3); }
|
||||
| entityName SQS entityName SQE { yy.addEntity($1, $3); }
|
||||
| title title_value { $$=$2.trim();yy.setAccTitle($$); }
|
||||
| acc_title acc_title_value { $$=$2.trim();yy.setAccTitle($$); }
|
||||
| acc_descr acc_descr_value { $$=$2.trim();yy.setAccDescription($$); }
|
||||
|
|
|
@ -137,7 +137,7 @@ describe('when parsing ER diagram it...', function () {
|
|||
it('can have an alias', function () {
|
||||
const entity = 'foo';
|
||||
const alias = 'bar';
|
||||
erDiagram.parser.parse(`erDiagram\n${entity} as "${alias}"\n`);
|
||||
erDiagram.parser.parse(`erDiagram\n${entity}["${alias}"]\n`);
|
||||
const entities = erDb.getEntities();
|
||||
expect(entities.hasOwnProperty(entity)).toBe(true);
|
||||
expect(entities[entity].alias).toBe(alias);
|
||||
|
|
|
@ -146,15 +146,15 @@ The `type` values must begin with an alphabetic character and may contain digits
|
|||
|
||||
### Entity Name Aliases (v<MERMAID_RELEASE_VERSION>+)
|
||||
|
||||
An alias can be added to an entity using `as` keyword. If provided, the alias will be showed in the diagram instead of the entity name.
|
||||
An alias can be added to an entity using square brackets. If provided, the alias will be showed in the diagram instead of the entity name.
|
||||
|
||||
```mermaid-example
|
||||
erDiagram
|
||||
p as Person {
|
||||
p[Person] {
|
||||
string firstName
|
||||
string lastName
|
||||
}
|
||||
a as "Customer Account" {
|
||||
a["Customer Account"] {
|
||||
string email
|
||||
}
|
||||
p ||--o| a : has
|
||||
|
|
Loading…
Reference in New Issue