diff --git a/.changeset/tall-cats-hope.md b/.changeset/tall-cats-hope.md new file mode 100644 index 000000000000..9a0dc29bfaed --- /dev/null +++ b/.changeset/tall-cats-hope.md @@ -0,0 +1,5 @@ +--- +'@astrojs/markdown-remark': patch +--- + +Prevents code blocks containing expression from being evaluated as such diff --git a/packages/markdown/remark/src/rehype-collect-headers.ts b/packages/markdown/remark/src/rehype-collect-headers.ts index 426b782a32ad..9f65eb53e2d2 100644 --- a/packages/markdown/remark/src/rehype-collect-headers.ts +++ b/packages/markdown/remark/src/rehype-collect-headers.ts @@ -19,9 +19,11 @@ export default function createCollectHeaders() { let raw = ''; let text = ''; + let elementTag: string | null = null; let isJSX = false; visit(node, (child) => { if (child.type === 'element') { + elementTag = child.tagName; return; } if (child.type === 'raw') { @@ -34,7 +36,9 @@ export default function createCollectHeaders() { if (child.type === 'text' || child.type === 'raw') { raw += child.value; text += child.value; - isJSX = isJSX || child.value.includes('{'); + if(elementTag !== 'code') { + isJSX = isJSX || child.value.includes('{'); + } } }); diff --git a/packages/markdown/remark/test/expressions.test.js b/packages/markdown/remark/test/expressions.test.js index c3c341acd1f5..8fb65e6364a4 100644 --- a/packages/markdown/remark/test/expressions.test.js +++ b/packages/markdown/remark/test/expressions.test.js @@ -22,6 +22,14 @@ describe('expressions', () => { .to.equal(`
{frontmatter.title}
and {another}