diff --git a/shared/naturalcrit/markdown.js b/shared/naturalcrit/markdown.js index 518b48705..f7f1763e5 100644 --- a/shared/naturalcrit/markdown.js +++ b/shared/naturalcrit/markdown.js @@ -462,7 +462,7 @@ const replaceVar = function(input, hoist=false, allowUnresolved=false) { mathVars?.forEach((variable)=>{ const foundVar = lookupVar(variable, globalPageNumber, hoist); if(foundVar && foundVar.resolved && foundVar.content && !isNaN(foundVar.content)) // Only subsitute math values if fully resolved, not empty strings, and numbers - replacedLabel = replacedLabel.replaceAll(variable, foundVar.content); + replacedLabel = replacedLabel.replaceAll(new RegExp(`(?{ const rendered = renderAllPages([source0, source1]).join('\n\\page\n').trimReturns(); expect(rendered, `Input:\n${[source0, source1].join('\n\\page\n')}`, { showPrefix: false }).toBe('

two

one

\\page

two

'); }); +}); + +describe('Variable name as a subset of a function or other variable name', ()=>{ + it('Variable name as a subset of a function', function() { + const source = `[a]: -1\n\n$[abs(a)]`; + const rendered = Markdown.render(source).trimReturns(); + expect(rendered).toBe('

1

'); + }); + + it('Variable name as a subset of another variable name', function() { + const source = `[ab]: 2\n\n[aba]: 8\n\n[ba]: 4\n\n$[ab + aba + ba]`; + const rendered = Markdown.render(source).trimReturns(); + expect(rendered).toBe('

14

'); + }); }); \ No newline at end of file