From 5d014f50df9a04c6bd8f5433e4d82b99666a862d Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Fri, 5 Dec 2025 17:24:40 +0000 Subject: [PATCH] fix: Remove single dollar sign math rendering due to false positives Co-authored-by: aider (gemini/gemini-2.5-pro) --- webclient/src/Article.js | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/webclient/src/Article.js b/webclient/src/Article.js index 9af3567..dde7fb3 100644 --- a/webclient/src/Article.js +++ b/webclient/src/Article.js @@ -12,7 +12,6 @@ const DANGEROUS_TAGS = ['svg', 'math']; const latexDelimiters = [ { left: '$$', right: '$$', display: true }, { left: '\\[', right: '\\]', display: true }, - { left: '$', right: '$', display: false }, { left: '\\(', right: '\\)', display: false } ]; @@ -106,7 +105,7 @@ function Article({ cache }) { if (v.nodeName === '#text') { const text = v.data; - if (text.includes('\\[') || text.includes('\\(') || text.includes('$$') || text.includes('$')) { + if (text.includes('\\[') || text.includes('\\(') || text.includes('$$')) { return {text}; } @@ -138,8 +137,7 @@ function Article({ cache }) { const textContent = v.textContent.trim(); const isMath = (textContent.startsWith('\\(') && textContent.endsWith('\\)')) || (textContent.startsWith('\\[') && textContent.endsWith('\\]')) || - (textContent.startsWith('$$') && textContent.endsWith('$$')) || - (textContent.startsWith('$') && textContent.endsWith('$') && textContent.indexOf('$') !== textContent.lastIndexOf('$')); + (textContent.startsWith('$$') && textContent.endsWith('$$')); const props = { key: key }; if (v.hasAttributes()) { @@ -159,13 +157,6 @@ function Article({ cache }) { const firstParen = mathContent.indexOf('\\('); const lastParen = mathContent.lastIndexOf('\\)'); mathContent = mathContent.substring(0, firstParen) + '\\[' + mathContent.substring(firstParen + 2, lastParen) + '\\]' + mathContent.substring(lastParen + 2); - } else if (trimmed.startsWith('$') && !trimmed.startsWith('$$')) { - // Replace $ with $$ - const firstDollar = mathContent.indexOf('$'); - const lastDollar = mathContent.lastIndexOf('$'); - if (firstDollar !== lastDollar) { - mathContent = mathContent.substring(0, firstDollar) + '$$' + mathContent.substring(firstDollar + 1, lastDollar) + '$$' + mathContent.substring(lastDollar + 1); - } } } return {mathContent};