diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 99766b536..74f29cebf 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -922,6 +922,18 @@ const globalVarsList = {}; let varsQueue = []; let globalPageNumber = 0; +const closePre = (text)=>{ + const cols = text.split(/^\\column$/gm); + if((cols[0].match(/```/g)||[]).length % 2 != 0) { + // Catch inserted column pattern + if(cols[0].endsWith('\n\n \n')) { + cols[0] = cols[0].slice(0, cols[0].length-'\n\n \n'.length); + cols[0] += '\n```\n\n \n'; + } else cols[0] += '\n```\n'; + } + return cols.join(`\n\\column\n`); +}; + const Markdown = { marked : Marked, render : (rawBrewText, pageNumber=0)=>{ @@ -932,7 +944,7 @@ const Markdown = { MarkedGFMResetHeadingIDs(); } - rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n
\n`); + rawBrewText = closePre(rawBrewText).replace(/^\\column$/gm, `\n
\n`); const opts = Marked.defaults;