From 9feffda850fe452cb9509dc8b6dd2b87e77725c5 Mon Sep 17 00:00:00 2001 From: Drew Powers <1369770+drwpow@users.noreply.github.com> Date: Fri, 7 May 2021 15:48:45 -0600 Subject: [PATCH] Fix double
tag (#185) --- .changeset/olive-jars-grab.md | 5 +++++ packages/astro/package.json | 2 +- packages/astro/src/compiler/transform/prism.ts | 14 ++++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 .changeset/olive-jars-grab.md diff --git a/.changeset/olive-jars-grab.md b/.changeset/olive-jars-grab.md new file mode 100644 index 000000000..653953679 --- /dev/null +++ b/.changeset/olive-jars-grab.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Bugfix: fixes doubletags generated from markdown code blocks diff --git a/packages/astro/package.json b/packages/astro/package.json index 59505a3f9..2c793e714 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -8,7 +8,7 @@ "exports": { ".": "./astro.mjs", "./snowpack-plugin": "./snowpack-plugin.cjs", - "./components/*.astro": "./components/*.astro", + "./components/*": "./components/*", "./runtime/svelte": "./dist/frontend/runtime/svelte.js" }, "imports": { diff --git a/packages/astro/src/compiler/transform/prism.ts b/packages/astro/src/compiler/transform/prism.ts index 6f8eb5bba..3b2674618 100644 --- a/packages/astro/src/compiler/transform/prism.ts +++ b/packages/astro/src/compiler/transform/prism.ts @@ -19,8 +19,11 @@ export default function (module: Script): Transformer { html: { Element: { enter(node) { - if (node.name !== 'code') return; - const className = getAttrValue(node.attributes, 'class') || ''; + if (node.name !== 'pre') return; + const codeEl = node.children && node.children[0]; + if (!codeEl || codeEl.name !== 'code') return; + + const className = getAttrValue(codeEl.attributes, 'class') || ''; const classes = className.split(' '); let lang; @@ -33,10 +36,9 @@ export default function (module: Script): Transformer { if (!lang) return; - let code; - if (node.children?.length) { - code = node.children[0].data; - } + let codeData = codeEl.children && codeEl.children[0]; + if (!codeData) return; + let code = codeData.data as string; const repl = { start: 0,