mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-09-09 10:36:43 +02:00
1473 Using setConfig instead of initialize from mermaid in some cases
This commit is contained in:
@@ -88,7 +88,7 @@ describe('Configuration', () => {
|
|||||||
C -->|Three| F[fa:fa-car Car]
|
C -->|Three| F[fa:fa-car Car]
|
||||||
`,
|
`,
|
||||||
{
|
{
|
||||||
arrowMarkerAbsolute: true
|
logLevel:0, arrowMarkerAbsolute: true
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@@ -1,3 +1,4 @@
|
|||||||
|
// import { logger } from './logger';
|
||||||
let config = {};
|
let config = {};
|
||||||
|
|
||||||
const setConf = function(cnf) {
|
const setConf = function(cnf) {
|
||||||
@@ -9,7 +10,7 @@ const setConf = function(cnf) {
|
|||||||
const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
|
const lvl2Keys = Object.keys(cnf[lvl1Keys[i]]);
|
||||||
|
|
||||||
for (let j = 0; j < lvl2Keys.length; j++) {
|
for (let j = 0; j < lvl2Keys.length; j++) {
|
||||||
// logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j])
|
// logger.debug('Setting conf ', lvl1Keys[i], '-', lvl2Keys[j]);
|
||||||
if (typeof config[lvl1Keys[i]] === 'undefined') {
|
if (typeof config[lvl1Keys[i]] === 'undefined') {
|
||||||
config[lvl1Keys[i]] = {};
|
config[lvl1Keys[i]] = {};
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,7 @@ import { logger } from './logger';
|
|||||||
*/
|
*/
|
||||||
const init = function() {
|
const init = function() {
|
||||||
const conf = mermaidAPI.getConfig();
|
const conf = mermaidAPI.getConfig();
|
||||||
logger.debug('Starting rendering diagrams');
|
// console.log('Starting rendering diagrams (init) - mermaid.init');
|
||||||
let nodes;
|
let nodes;
|
||||||
if (arguments.length >= 2) {
|
if (arguments.length >= 2) {
|
||||||
/*! sequence config was passed as #1 */
|
/*! sequence config was passed as #1 */
|
||||||
@@ -69,11 +69,11 @@ const init = function() {
|
|||||||
logger.debug('Start On Load before: ' + mermaid.startOnLoad);
|
logger.debug('Start On Load before: ' + mermaid.startOnLoad);
|
||||||
if (typeof mermaid.startOnLoad !== 'undefined') {
|
if (typeof mermaid.startOnLoad !== 'undefined') {
|
||||||
logger.debug('Start On Load inner: ' + mermaid.startOnLoad);
|
logger.debug('Start On Load inner: ' + mermaid.startOnLoad);
|
||||||
mermaidAPI.initialize({ startOnLoad: mermaid.startOnLoad });
|
mermaidAPI.setConfig({ startOnLoad: mermaid.startOnLoad });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof mermaid.ganttConfig !== 'undefined') {
|
if (typeof mermaid.ganttConfig !== 'undefined') {
|
||||||
mermaidAPI.initialize({ gantt: mermaid.ganttConfig });
|
mermaidAPI.setConfig({ gantt: mermaid.ganttConfig });
|
||||||
}
|
}
|
||||||
|
|
||||||
let txt;
|
let txt;
|
||||||
@@ -124,7 +124,7 @@ const init = function() {
|
|||||||
const initialize = function(config) {
|
const initialize = function(config) {
|
||||||
mermaidAPI.reset();
|
mermaidAPI.reset();
|
||||||
|
|
||||||
// logger.debug('Initializing mermaid 1', config);
|
// console.log('Initializing mermaid 1', config);
|
||||||
if (typeof config.mermaid !== 'undefined') {
|
if (typeof config.mermaid !== 'undefined') {
|
||||||
if (typeof config.mermaid.startOnLoad !== 'undefined') {
|
if (typeof config.mermaid.startOnLoad !== 'undefined') {
|
||||||
mermaid.startOnLoad = config.mermaid.startOnLoad;
|
mermaid.startOnLoad = config.mermaid.startOnLoad;
|
||||||
@@ -133,8 +133,9 @@ const initialize = function(config) {
|
|||||||
mermaid.htmlLabels = config.mermaid.htmlLabels;
|
mermaid.htmlLabels = config.mermaid.htmlLabels;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// console.log('Initializing mermaid 2', config);
|
||||||
mermaidAPI.initialize(config);
|
mermaidAPI.initialize(config);
|
||||||
logger.debug('Initializing mermaid ', config);
|
// logger.debug('Initializing mermaid 3', config);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -803,75 +803,74 @@ const render = function(id, _txt, cb, container) {
|
|||||||
try {
|
try {
|
||||||
switch (graphType) {
|
switch (graphType) {
|
||||||
case 'git':
|
case 'git':
|
||||||
cnf.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
gitGraphRenderer.setConf(config.git);
|
gitGraphRenderer.setConf(cnf.git);
|
||||||
gitGraphRenderer.draw(txt, id, false);
|
gitGraphRenderer.draw(txt, id, false);
|
||||||
break;
|
break;
|
||||||
case 'flowchart':
|
case 'flowchart':
|
||||||
config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
flowRenderer.setConf(config.flowchart);
|
flowRenderer.setConf(cnf.flowchart);
|
||||||
flowRenderer.draw(txt, id, false);
|
flowRenderer.draw(txt, id, false);
|
||||||
break;
|
break;
|
||||||
case 'flowchart-v2':
|
case 'flowchart-v2':
|
||||||
config.flowchart.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
flowRendererV2.setConf(config.flowchart);
|
flowRendererV2.setConf(cnf.flowchart);
|
||||||
flowRendererV2.draw(txt, id, false);
|
flowRendererV2.draw(txt, id, false);
|
||||||
break;
|
break;
|
||||||
case 'sequence':
|
case 'sequence':
|
||||||
config.sequence.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.sequence.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
if (config.sequenceDiagram) {
|
if (cnf.sequenceDiagram) {
|
||||||
// backwards compatibility
|
// backwards compatibility
|
||||||
sequenceRenderer.setConf(Object.assign(config.sequence, config.sequenceDiagram));
|
sequenceRenderer.setConf(Object.assign(cnf.sequence, cnf.sequenceDiagram));
|
||||||
console.error(
|
console.error(
|
||||||
'`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'
|
'`mermaid config.sequenceDiagram` has been renamed to `config.sequence`. Please update your mermaid config.'
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
sequenceRenderer.setConf(config.sequence);
|
sequenceRenderer.setConf(cnf.sequence);
|
||||||
}
|
}
|
||||||
sequenceRenderer.draw(txt, id);
|
sequenceRenderer.draw(txt, id);
|
||||||
break;
|
break;
|
||||||
case 'gantt':
|
case 'gantt':
|
||||||
config.gantt.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.gantt.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
ganttRenderer.setConf(config.gantt);
|
ganttRenderer.setConf(cnf.gantt);
|
||||||
ganttRenderer.draw(txt, id);
|
ganttRenderer.draw(txt, id);
|
||||||
break;
|
break;
|
||||||
case 'class':
|
case 'class':
|
||||||
console.log(cnf, config);
|
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
cnf.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
|
||||||
classRenderer.setConf(cnf.class);
|
classRenderer.setConf(cnf.class);
|
||||||
classRenderer.draw(txt, id);
|
classRenderer.draw(txt, id);
|
||||||
break;
|
break;
|
||||||
case 'state':
|
case 'state':
|
||||||
// config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
stateRenderer.setConf(config.state);
|
stateRenderer.setConf(cnf.state);
|
||||||
stateRenderer.draw(txt, id);
|
stateRenderer.draw(txt, id);
|
||||||
break;
|
break;
|
||||||
case 'stateDiagram':
|
case 'stateDiagram':
|
||||||
// config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
stateRendererV2.setConf(config.state);
|
stateRendererV2.setConf(cnf.state);
|
||||||
stateRendererV2.draw(txt, id);
|
stateRendererV2.draw(txt, id);
|
||||||
break;
|
break;
|
||||||
case 'info':
|
case 'info':
|
||||||
config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
infoRenderer.setConf(config.class);
|
infoRenderer.setConf(cnf.class);
|
||||||
infoRenderer.draw(txt, id, pkg.version);
|
infoRenderer.draw(txt, id, pkg.version);
|
||||||
break;
|
break;
|
||||||
case 'pie':
|
case 'pie':
|
||||||
config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute;
|
cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
|
||||||
pieRenderer.setConf(config.class);
|
pieRenderer.setConf(cnf.class);
|
||||||
pieRenderer.draw(txt, id, pkg.version);
|
pieRenderer.draw(txt, id, pkg.version);
|
||||||
break;
|
break;
|
||||||
case 'er':
|
case 'er':
|
||||||
erRenderer.setConf(config.er);
|
erRenderer.setConf(cnf.er);
|
||||||
erRenderer.draw(txt, id, pkg.version);
|
erRenderer.draw(txt, id, pkg.version);
|
||||||
break;
|
break;
|
||||||
case 'journey':
|
case 'journey':
|
||||||
journeyRenderer.setConf(config.journey);
|
journeyRenderer.setConf(cnf.journey);
|
||||||
journeyRenderer.draw(txt, id, pkg.version);
|
journeyRenderer.draw(txt, id, pkg.version);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// errorRenderer.setConf(config.class);
|
// errorRenderer.setConf(cnf.class);
|
||||||
errorRenderer.draw(id, pkg.version);
|
errorRenderer.draw(id, pkg.version);
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
@@ -880,7 +879,7 @@ const render = function(id, _txt, cb, container) {
|
|||||||
.selectAll('foreignobject > *')
|
.selectAll('foreignobject > *')
|
||||||
.attr('xmlns', 'http://www.w3.org/1999/xhtml');
|
.attr('xmlns', 'http://www.w3.org/1999/xhtml');
|
||||||
|
|
||||||
// if (config.arrowMarkerAbsolute) {
|
// if (cnf.arrowMarkerAbsolute) {
|
||||||
// url =
|
// url =
|
||||||
// window.location.protocol +
|
// window.location.protocol +
|
||||||
// '//' +
|
// '//' +
|
||||||
@@ -893,8 +892,8 @@ const render = function(id, _txt, cb, container) {
|
|||||||
|
|
||||||
// Fix for when the base tag is used
|
// Fix for when the base tag is used
|
||||||
let svgCode = select('#d' + id).node().innerHTML;
|
let svgCode = select('#d' + id).node().innerHTML;
|
||||||
|
logger.debug('cnf.arrowMarkerAbsolute', cnf.arrowMarkerAbsolute);
|
||||||
if (!config.arrowMarkerAbsolute || config.arrowMarkerAbsolute === 'false') {
|
if (!cnf.arrowMarkerAbsolute || cnf.arrowMarkerAbsolute === 'false') {
|
||||||
svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g');
|
svgCode = svgCode.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#', 'g');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -930,7 +929,7 @@ const render = function(id, _txt, cb, container) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function reinitialize(options) {
|
function reinitialize(options) {
|
||||||
// console.log('re-initialize ', options.logLevel, config.logLevel, getConfig().logLevel);
|
// console.log('re-initialize ', options.logLevel, cnf.logLevel, getConfig().logLevel);
|
||||||
if (typeof options === 'object') {
|
if (typeof options === 'object') {
|
||||||
// setConf(options);
|
// setConf(options);
|
||||||
setConfig(options);
|
setConfig(options);
|
||||||
@@ -942,6 +941,7 @@ function reinitialize(options) {
|
|||||||
|
|
||||||
let firstInit = true;
|
let firstInit = true;
|
||||||
function initialize(options) {
|
function initialize(options) {
|
||||||
|
// console.log('mermaidAPI.initialize');
|
||||||
// Set default options
|
// Set default options
|
||||||
if (typeof options === 'object') {
|
if (typeof options === 'object') {
|
||||||
if (firstInit) {
|
if (firstInit) {
|
||||||
@@ -971,7 +971,9 @@ const mermaidAPI = {
|
|||||||
initialize,
|
initialize,
|
||||||
reinitialize,
|
reinitialize,
|
||||||
getConfig,
|
getConfig,
|
||||||
|
setConfig,
|
||||||
reset: () => {
|
reset: () => {
|
||||||
|
// console.warn('reset');
|
||||||
firstInit = true;
|
firstInit = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user