Added the option to disable auto rendering via the mermaid namespace as described in issue #91
Added optional ; as statement separator equal to newline for sequence diagrams (help for tidy users)
This commit is contained in:
parent
222a6e0682
commit
c5c995c916
|
@ -13001,7 +13001,7 @@ process.chdir = function (dir) {
|
|||
},{}],102:[function(require,module,exports){
|
||||
module.exports={
|
||||
"name": "mermaid",
|
||||
"version": "0.3.0",
|
||||
"version": "0.3.1",
|
||||
"description": "Markdownish syntax for generating flowcharts",
|
||||
"main": "src/main.js",
|
||||
"bin": {
|
||||
|
@ -15826,26 +15826,28 @@ case 19:return 4;
|
|||
break;
|
||||
case 20:return 28;
|
||||
break;
|
||||
case 21:return 33;
|
||||
case 21:return 10;
|
||||
break;
|
||||
case 22:return 34;
|
||||
case 22:return 33;
|
||||
break;
|
||||
case 23:return 35;
|
||||
case 23:return 34;
|
||||
break;
|
||||
case 24:return 36;
|
||||
case 24:return 35;
|
||||
break;
|
||||
case 25:return 37;
|
||||
case 25:return 36;
|
||||
break;
|
||||
case 26:return 40;
|
||||
case 26:return 37;
|
||||
break;
|
||||
case 27:return 6;
|
||||
case 27:return 40;
|
||||
break;
|
||||
case 28:return 'INVALID';
|
||||
case 28:return 6;
|
||||
break;
|
||||
case 29:return 'INVALID';
|
||||
break;
|
||||
}
|
||||
},
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:[^\->:\n,]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28],"inclusive":true}}
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\->:\n,;]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n;]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"inclusive":true}}
|
||||
});
|
||||
return lexer;
|
||||
})();
|
||||
|
@ -16667,28 +16669,9 @@ var equals = function (val, variable){
|
|||
return (val === variable);
|
||||
}
|
||||
};
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
// Check presence of config object
|
||||
if(typeof mermaid_config !== 'undefined'){
|
||||
// Check if property startOnLoad is set
|
||||
if(equals(true, mermaid_config.startOnLoad)){
|
||||
init();
|
||||
}
|
||||
}
|
||||
else{
|
||||
// No config found, do autostart in this simple case
|
||||
init();
|
||||
}
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
global.mermaid = {
|
||||
startOnLoad:true,
|
||||
init:function(){
|
||||
init();
|
||||
},
|
||||
|
@ -16699,6 +16682,39 @@ global.mermaid = {
|
|||
return flow.parser;
|
||||
}
|
||||
};
|
||||
|
||||
exports.contentLoaded = function(){
|
||||
// Check state of start config mermaid namespece
|
||||
//console.log('global.mermaid.startOnLoad',global.mermaid.startOnLoad);
|
||||
//console.log('mermaid_config',mermaid_config);
|
||||
if(global.mermaid.startOnLoad) {
|
||||
|
||||
// For backwards compatability reasons also check mermaid_config variable
|
||||
if (typeof mermaid_config !== 'undefined') {
|
||||
// Check if property startOnLoad is set
|
||||
if (equals(true, mermaid_config.startOnLoad)) {
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// No config found, do autostart in this simple case
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
exports.contentLoaded();
|
||||
}, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||||
},{"../package.json":102,"./diagrams/flowchart/flowRenderer":103,"./diagrams/flowchart/graphDb":104,"./diagrams/flowchart/parser/flow":106,"./diagrams/sequenceDiagram/sequenceRenderer":109,"./utils":112,"he":100}],112:[function(require,module,exports){
|
||||
/**
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -12969,7 +12969,7 @@ process.chdir = function (dir) {
|
|||
},{}],102:[function(require,module,exports){
|
||||
module.exports={
|
||||
"name": "mermaid",
|
||||
"version": "0.3.0",
|
||||
"version": "0.3.1",
|
||||
"description": "Markdownish syntax for generating flowcharts",
|
||||
"main": "src/main.js",
|
||||
"bin": {
|
||||
|
@ -15794,26 +15794,28 @@ case 19:return 4;
|
|||
break;
|
||||
case 20:return 28;
|
||||
break;
|
||||
case 21:return 33;
|
||||
case 21:return 10;
|
||||
break;
|
||||
case 22:return 34;
|
||||
case 22:return 33;
|
||||
break;
|
||||
case 23:return 35;
|
||||
case 23:return 34;
|
||||
break;
|
||||
case 24:return 36;
|
||||
case 24:return 35;
|
||||
break;
|
||||
case 25:return 37;
|
||||
case 25:return 36;
|
||||
break;
|
||||
case 26:return 40;
|
||||
case 26:return 37;
|
||||
break;
|
||||
case 27:return 6;
|
||||
case 27:return 40;
|
||||
break;
|
||||
case 28:return 'INVALID';
|
||||
case 28:return 6;
|
||||
break;
|
||||
case 29:return 'INVALID';
|
||||
break;
|
||||
}
|
||||
},
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:[^\->:\n,]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28],"inclusive":true}}
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\->:\n,;]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n;]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"inclusive":true}}
|
||||
});
|
||||
return lexer;
|
||||
})();
|
||||
|
@ -16635,28 +16637,9 @@ var equals = function (val, variable){
|
|||
return (val === variable);
|
||||
}
|
||||
};
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
// Check presence of config object
|
||||
if(typeof mermaid_config !== 'undefined'){
|
||||
// Check if property startOnLoad is set
|
||||
if(equals(true, mermaid_config.startOnLoad)){
|
||||
init();
|
||||
}
|
||||
}
|
||||
else{
|
||||
// No config found, do autostart in this simple case
|
||||
init();
|
||||
}
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
global.mermaid = {
|
||||
startOnLoad:true,
|
||||
init:function(){
|
||||
init();
|
||||
},
|
||||
|
@ -16667,6 +16650,39 @@ global.mermaid = {
|
|||
return flow.parser;
|
||||
}
|
||||
};
|
||||
|
||||
exports.contentLoaded = function(){
|
||||
// Check state of start config mermaid namespece
|
||||
//console.log('global.mermaid.startOnLoad',global.mermaid.startOnLoad);
|
||||
//console.log('mermaid_config',mermaid_config);
|
||||
if(global.mermaid.startOnLoad) {
|
||||
|
||||
// For backwards compatability reasons also check mermaid_config variable
|
||||
if (typeof mermaid_config !== 'undefined') {
|
||||
// Check if property startOnLoad is set
|
||||
if (equals(true, mermaid_config.startOnLoad)) {
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// No config found, do autostart in this simple case
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
exports.contentLoaded();
|
||||
}, false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}).call(this,typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||||
},{"../package.json":102,"./diagrams/flowchart/flowRenderer":103,"./diagrams/flowchart/graphDb":104,"./diagrams/flowchart/parser/flow":106,"./diagrams/sequenceDiagram/sequenceRenderer":109,"./utils":112,"he":100}],112:[function(require,module,exports){
|
||||
/**
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -34,12 +34,13 @@
|
|||
"title" return 'title';
|
||||
"sequenceDiagram" return 'SD';
|
||||
"," return ',';
|
||||
[^\->:\n,]+ return 'ACTOR';
|
||||
";" return 'NL';
|
||||
[^\->:\n,;]+ return 'ACTOR';
|
||||
"->" return 'SOLID_OPEN_ARROW';
|
||||
"-->" return 'DOTTED_OPEN_ARROW';
|
||||
"->>" return 'SOLID_ARROW';
|
||||
"-->>" return 'DOTTED_ARROW';
|
||||
":"[^#\n]+ return 'TXT';
|
||||
":"[^#\n;]+ return 'TXT';
|
||||
<<EOF>> return 'EOF';
|
||||
. return 'INVALID';
|
||||
|
||||
|
|
|
@ -689,26 +689,28 @@ case 19:return 4;
|
|||
break;
|
||||
case 20:return 28;
|
||||
break;
|
||||
case 21:return 33;
|
||||
case 21:return 10;
|
||||
break;
|
||||
case 22:return 34;
|
||||
case 22:return 33;
|
||||
break;
|
||||
case 23:return 35;
|
||||
case 23:return 34;
|
||||
break;
|
||||
case 24:return 36;
|
||||
case 24:return 35;
|
||||
break;
|
||||
case 25:return 37;
|
||||
case 25:return 36;
|
||||
break;
|
||||
case 26:return 40;
|
||||
case 26:return 37;
|
||||
break;
|
||||
case 27:return 6;
|
||||
case 27:return 40;
|
||||
break;
|
||||
case 28:return 'INVALID';
|
||||
case 28:return 6;
|
||||
break;
|
||||
case 29:return 'INVALID';
|
||||
break;
|
||||
}
|
||||
},
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:[^\->:\n,]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28],"inclusive":true}}
|
||||
rules: [/^(?:[\n]+)/i,/^(?:[\-][x])/i,/^(?:[\-][\-][x])/i,/^(?:[\-][>][>])/i,/^(?:[\-][\-][>][>])/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:participant\b)/i,/^(?:opt\b)/i,/^(?:loop\b)/i,/^(?:alt\b)/i,/^(?:else\b)/i,/^(?:end\b)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:over\b)/i,/^(?:note\b)/i,/^(?:title\b)/i,/^(?:sequenceDiagram\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\->:\n,;]+)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?::[^#\n;]+)/i,/^(?:$)/i,/^(?:.)/i],
|
||||
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"inclusive":true}}
|
||||
});
|
||||
return lexer;
|
||||
})();
|
||||
|
|
|
@ -272,6 +272,25 @@ describe('when parsing a sequenceDiagram',function() {
|
|||
expect(messages[1].from).toBe('Bob');
|
||||
|
||||
|
||||
});
|
||||
it('it should handle opt statements a sequenceDiagram', function () {
|
||||
var str = 'sequenceDiagram;Alice->Bob: Hello Bob, how are you?;opt Perhaps a happy response;Bob-->Alice: I am good thanks!;end;';
|
||||
|
||||
sq.parse(str);
|
||||
var actors = sq.yy.getActors();
|
||||
//console.log(actors);
|
||||
expect(actors.Alice.description).toBe('Alice');
|
||||
actors.Bob.description = 'Bob';
|
||||
|
||||
var messages = sq.yy.getMessages();
|
||||
//console.log(messages);
|
||||
|
||||
expect(messages.length).toBe(4);
|
||||
expect(messages[0].from).toBe('Alice');
|
||||
expect(messages[1].type).toBe(sq.yy.LINETYPE.OPT_START);
|
||||
expect(messages[2].from).toBe('Bob');
|
||||
|
||||
|
||||
});
|
||||
|
||||
it('it should handle alt statements a sequenceDiagram', function () {
|
||||
|
|
55
src/main.js
55
src/main.js
|
@ -91,28 +91,9 @@ var equals = function (val, variable){
|
|||
return (val === variable);
|
||||
}
|
||||
};
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
// Check presence of config object
|
||||
if(typeof mermaid_config !== 'undefined'){
|
||||
// Check if property startOnLoad is set
|
||||
if(equals(true, mermaid_config.startOnLoad)){
|
||||
init();
|
||||
}
|
||||
}
|
||||
else{
|
||||
// No config found, do autostart in this simple case
|
||||
init();
|
||||
}
|
||||
}, false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
global.mermaid = {
|
||||
startOnLoad:true,
|
||||
init:function(){
|
||||
init();
|
||||
},
|
||||
|
@ -122,4 +103,36 @@ global.mermaid = {
|
|||
getParser:function(){
|
||||
return flow.parser;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
exports.contentLoaded = function(){
|
||||
// Check state of start config mermaid namespece
|
||||
//console.log('global.mermaid.startOnLoad',global.mermaid.startOnLoad);
|
||||
//console.log('mermaid_config',mermaid_config);
|
||||
if(global.mermaid.startOnLoad) {
|
||||
|
||||
// For backwards compatability reasons also check mermaid_config variable
|
||||
if (typeof mermaid_config !== 'undefined') {
|
||||
// Check if property startOnLoad is set
|
||||
if (equals(true, mermaid_config.startOnLoad)) {
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// No config found, do autostart in this simple case
|
||||
global.mermaid.init();
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
if(typeof document !== 'undefined'){
|
||||
/**
|
||||
* Wait for coument loaded before starting the execution
|
||||
*/
|
||||
document.addEventListener('DOMContentLoaded', function(){
|
||||
exports.contentLoaded();
|
||||
}, false);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -6,35 +6,71 @@
|
|||
*/
|
||||
var rewire = require("rewire");
|
||||
var utils = require("./utils");
|
||||
var main = require("./main");
|
||||
|
||||
describe('when using main and ',function() {
|
||||
describe('when detecting chart type ',function() {
|
||||
var main;
|
||||
//var main;
|
||||
//var document;
|
||||
//var window;
|
||||
beforeEach(function () {
|
||||
var MockBrowser = require('mock-browser').mocks.MockBrowser;
|
||||
var mock = new MockBrowser();
|
||||
|
||||
delete global.mermaid_config;
|
||||
|
||||
// and in the run-code inside some object
|
||||
document = mock.getDocument();
|
||||
|
||||
|
||||
window = mock.getWindow();
|
||||
});
|
||||
|
||||
it('should not call start anything with an empty document', function () {
|
||||
|
||||
mermaid_config ={startOnLoad : false};
|
||||
it('should not start rendering with mermaid_config.startOnLoad set to false', function () {
|
||||
main = rewire('./main');
|
||||
|
||||
spyOn(utils,'detectType');
|
||||
expect(utils.detectType).not.toHaveBeenCalled();
|
||||
});
|
||||
it('should start something with a mermaid document', function () {
|
||||
mermaid_config ={startOnLoad : false};
|
||||
|
||||
document.body.innerHTML = '<div class="mermaid">graph TD;\na;</div>';
|
||||
spyOn(global.mermaid,'init');
|
||||
//console.log(main);
|
||||
main.contentLoaded();
|
||||
expect(global.mermaid.init).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should not start rendering with mermaid.startOnLoad set to false', function () {
|
||||
main = rewire('./main');
|
||||
mermaid.startOnLoad = false;
|
||||
mermaid_config ={startOnLoad : true};
|
||||
|
||||
document.body.innerHTML = '<div class="mermaid">graph TD;\na;</div>';
|
||||
spyOn(global.mermaid,'init');
|
||||
main.contentLoaded();
|
||||
expect(global.mermaid.init).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should start rendering with both startOnLoad set', function () {
|
||||
main = rewire('./main');
|
||||
mermaid.startOnLoad = true;
|
||||
mermaid_config ={startOnLoad : true};
|
||||
document.body.innerHTML = '<div class="mermaid">graph TD;\na;</div>';
|
||||
spyOn(global.mermaid,'init');
|
||||
main.contentLoaded();
|
||||
expect(global.mermaid.init).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should start rendering with mermaid.startOnLoad set and no mermaid_config defined', function () {
|
||||
main = rewire('./main');
|
||||
mermaid.startOnLoad = true;
|
||||
document.body.innerHTML = '<div class="mermaid">graph TD;\na;</div>';
|
||||
spyOn(global.mermaid,'init');
|
||||
main.contentLoaded();
|
||||
expect(global.mermaid.init).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should start rendering as a default with no changes performed', function () {
|
||||
main = rewire('./main');
|
||||
document.body.innerHTML = '<div class="mermaid">graph TD;\na;</div>';
|
||||
spyOn(utils,'detectType');
|
||||
mermaid.init();
|
||||
expect(utils.detectType).toHaveBeenCalled();
|
||||
spyOn(global.mermaid,'init');
|
||||
main.contentLoaded();
|
||||
expect(global.mermaid.init).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
@ -18,7 +18,15 @@
|
|||
|
||||
</head>
|
||||
<body>
|
||||
<h1>No line breaks</h1>
|
||||
<div class="mermaid">
|
||||
sequenceDiagram;Alice->>Bob: Hello Bob, how are you?;Bob-->Bob: Hmmm?;Bob-->Alice: Ok;
|
||||
</div>
|
||||
<div class="mermaid">
|
||||
sequenceDiagram;loop Daily query;Alice->>Bob: Hello Bob, how are you?;alt is sick;Bob->>Alice: Not so good :(;else is well;Bob->>Alice: Feeling fresh like a daisy;end;opt Extra response;Bob->>Alice: Thanks for asking;end;end;
|
||||
</div>
|
||||
<h1>Message types</h1>
|
||||
|
||||
<div class="mermaid">
|
||||
sequenceDiagram
|
||||
Alice->>Bob: Hello Bob, how are you?
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
var mermaid_config = {
|
||||
startOnLoad:true
|
||||
}
|
||||
mermaid.startOnLoad=true;
|
||||
</script>
|
||||
<script>
|
||||
function apa(){
|
||||
|
|
Loading…
Reference in New Issue