diff --git a/src/diagrams/flowchart/flowRenderer-v2.js b/src/diagrams/flowchart/flowRenderer-v2.js index ffd8c48eb..332e9c484 100644 --- a/src/diagrams/flowchart/flowRenderer-v2.js +++ b/src/diagrams/flowchart/flowRenderer-v2.js @@ -268,8 +268,13 @@ export const getClasses = function(text) { const parser = flow.parser; parser.yy = flowDb; - // Parse the graph definition - parser.parse(text); + try { + // Parse the graph definition + parser.parse(text); + } catch (e) { + return; + } + return flowDb.getClasses(); }; @@ -278,6 +283,7 @@ export const getClasses = function(text) { * @param text * @param id */ + export const draw = function(text, id) { logger.info('Drawing flowchart'); flowDb.clear(); @@ -286,9 +292,9 @@ export const draw = function(text, id) { // Parse the graph definition // try { - parser.parse(text); + parser.parse(text); // } catch (err) { - // logger.debug('Parsing failed'); + // logger.debug('Parsing failed'); // } // Fetch the default direction, use TD if none was found diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index c26588047..4c06aa345 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -272,9 +272,9 @@ export const draw = function(text, id) { // Parse the graph definition // try { - parser.parse(text); + parser.parse(text); // } catch (err) { - // logger.debug('Parsing failed'); + // logger.debug('Parsing failed'); // } // Fetch the default direction, use TD if none was found diff --git a/src/errorRenderer.js b/src/errorRenderer.js index cf16bf2a9..2f5fcc3bb 100644 --- a/src/errorRenderer.js +++ b/src/errorRenderer.js @@ -18,7 +18,7 @@ export const setConf = function(cnf) { * @param text * @param id */ -export const draw = (id,ver) => { +export const draw = (id, ver) => { try { logger.debug('Renering svg for syntax error\n'); @@ -26,53 +26,62 @@ export const draw = (id,ver) => { const g = svg.append('g'); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z'); + .attr( + 'd', + 'm411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z' + ); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z'); + .attr( + 'd', + 'm459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z' + ); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z'); + .attr( + 'd', + 'm340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z' + ); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z'); + .attr( + 'd', + 'm400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z' + ); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z'); + .attr( + 'd', + 'm496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z' + ); - g - .append('path') + g.append('path') .attr('class', 'error-icon') - .attr('d', 'm436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z') - ; + .attr( + 'd', + 'm436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z' + ); - g - .append('text') // text label for the x axis + g.append('text') // text label for the x axis .attr('class', 'error-text') .attr('x', 1240) .attr('y', 250) .attr('font-size', '150px') .style('text-anchor', 'middle') - .text('Syntax error in graph') - g - .append('text') // text label for the x axis + .text('Syntax error in graph'); + g.append('text') // text label for the x axis .attr('class', 'error-text') .attr('x', 1050) .attr('y', 400) .attr('font-size', '100px') .style('text-anchor', 'middle') - .text('mermaid version '+ver); + .text('mermaid version ' + ver); svg.attr('height', 100); svg.attr('width', 400); diff --git a/src/mermaid.js b/src/mermaid.js index 079782ea1..616ff40e4 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -99,18 +99,18 @@ const init = function() { .replace(//gi, '
'); try { - mermaidAPI.render( - id, - txt, - (svgCode, bindFunctions) => { - element.innerHTML = svgCode; - if (typeof callback !== 'undefined') { - callback(id); - } - if (bindFunctions) bindFunctions(element); - }, - element - ); + mermaidAPI.render( + id, + txt, + (svgCode, bindFunctions) => { + element.innerHTML = svgCode; + if (typeof callback !== 'undefined') { + callback(id); + } + if (bindFunctions) bindFunctions(element); + }, + element + ); } catch (e) { logger.warn('Syntax Error rendering'); logger.warn(e); diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index 6b6b93ed6..cfeea285c 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -668,7 +668,7 @@ export const decodeEntities = function(text) { * provided a hidden div will be inserted in the body of the page instead. The element will be removed when rendering is * completed. */ -const render = function (id, _txt, cb, container) { +const render = function(id, _txt, cb, container) { // Check the maximum allowed text size let txt = _txt; if (_txt.length > config.maxTextSize) { @@ -835,7 +835,7 @@ const render = function (id, _txt, cb, container) { } catch (e) { errorRenderer.setConf(config.class); errorRenderer.draw(id, pkg.version); - throw (e) + throw e; } select(`[id="${id}"]`)