From 60b6dbb38809677939e1052165f669cf9aa751f5 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Fri, 24 Jan 2025 13:52:49 -0600 Subject: [PATCH 1/3] Workaround for unclosed
 blocks before rendering.

Unsure if this is a fix you really need but it resolves the issue posted.
---
 shared/naturalcrit/markdown.js | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

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; From 55f333a9e5e6e194c814112d5c39757e3efadf41 Mon Sep 17 00:00:00 2001 From: David Bolack Date: Wed, 5 Mar 2025 10:52:43 -0600 Subject: [PATCH 2/3] Changed tactic per suggestion Unsure if the test is absolutely necessary. --- client/homebrew/brewRenderer/brewRenderer.jsx | 4 ++-- shared/naturalcrit/markdown.js | 14 +------------- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index a82ea8b34..48e95e8c4 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -196,8 +196,8 @@ const BrewRenderer = (props)=>{ pageText = pageText.includes('\n') ? pageText.substring(pageText.indexOf('\n') + 1) : ''; // Remove the \page line } - pageText += `\n\n \n\\column\n `; //Artificial column break at page end to emulate column-fill:auto (until `wide` is used, when column-fill:balance will reappear) - const html = Markdown.render(pageText, index); + let html = Markdown.render(pageText, index); + if(html.indexOf(`\n
\n`) == -1) html += `\n
\n`; return ; } diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 3d259443f..878519a4a 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -895,18 +895,6 @@ 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)=>{ @@ -917,7 +905,7 @@ const Markdown = { MarkedGFMResetHeadingIDs(); } - rawBrewText = closePre(rawBrewText).replace(/^\\column$/gm, `\n
\n`); + rawBrewText = rawBrewText.replace(/^\\column$/gm, `\n
\n`); const opts = Marked.defaults; From 51e79c2c5fe3b20a098222e8bbd5673faeca061a Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Wed, 5 Mar 2025 20:13:35 -0500 Subject: [PATCH 3/3] Remove extra column break entirely Not needed with change to column-fill auto See https://github.com/naturalcrit/homebrewery/pull/3013 --- client/homebrew/brewRenderer/brewRenderer.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/client/homebrew/brewRenderer/brewRenderer.jsx b/client/homebrew/brewRenderer/brewRenderer.jsx index 48e95e8c4..8f0f2f2ff 100644 --- a/client/homebrew/brewRenderer/brewRenderer.jsx +++ b/client/homebrew/brewRenderer/brewRenderer.jsx @@ -197,7 +197,6 @@ const BrewRenderer = (props)=>{ } let html = Markdown.render(pageText, index); - if(html.indexOf(`\n
\n`) == -1) html += `\n
\n`; return ; }