From 2ff2533c9ee6da02a1a4a46d418140fcd0d626e2 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Mon, 24 May 2021 16:00:34 -0400 Subject: [PATCH] Fix markdown syntax issues (#234) This fixes #233 among other things --- examples/snowpack/src/layouts/content-with-cover.astro | 2 +- examples/snowpack/src/layouts/content.astro | 2 +- packages/astro/src/compiler/index.ts | 4 ++-- packages/astro/src/compiler/markdown/codeblock.ts | 4 +++- packages/astro/src/frontend/h.ts | 3 +-- .../astro/test/fixtures/plain-markdown/src/pages/post.md | 6 ++++++ packages/astro/test/snowpack-integration.test.js | 8 +++++--- 7 files changed, 19 insertions(+), 10 deletions(-) diff --git a/examples/snowpack/src/layouts/content-with-cover.astro b/examples/snowpack/src/layouts/content-with-cover.astro index 0e91b406b..91cf9df39 100644 --- a/examples/snowpack/src/layouts/content-with-cover.astro +++ b/examples/snowpack/src/layouts/content-with-cover.astro @@ -80,7 +80,7 @@ export let content: any; - + diff --git a/examples/snowpack/src/layouts/content.astro b/examples/snowpack/src/layouts/content.astro index 56832d551..8ab619ba5 100644 --- a/examples/snowpack/src/layouts/content.astro +++ b/examples/snowpack/src/layouts/content.astro @@ -98,7 +98,7 @@ export let content: any;
- +
diff --git a/packages/astro/src/compiler/index.ts b/packages/astro/src/compiler/index.ts index fb1ca71af..a03e9c2ae 100644 --- a/packages/astro/src/compiler/index.ts +++ b/packages/astro/src/compiler/index.ts @@ -112,7 +112,7 @@ export async function compileComponent( const site = compileOptions.astroConfig.buildOptions.site || `http://localhost:${compileOptions.astroConfig.devOptions.port}`; // return template - let modJsx = ` + let moduleJavaScript = ` import fetch from 'node-fetch'; // @@ -160,7 +160,7 @@ export async function __renderPage({request, children, props}) { return { result, - contents: modJsx, + contents: moduleJavaScript, css: result.css, }; } diff --git a/packages/astro/src/compiler/markdown/codeblock.ts b/packages/astro/src/compiler/markdown/codeblock.ts index d784d335c..2f48c6631 100644 --- a/packages/astro/src/compiler/markdown/codeblock.ts +++ b/packages/astro/src/compiler/markdown/codeblock.ts @@ -3,7 +3,9 @@ import { visit } from 'unist-util-visit'; /** */ export function remarkCodeBlock() { const visitor = (node: any) => { - const { data, lang, meta } = node; + const { data, meta } = node; + let lang = node.lang || 'html'; // default to html matches GFM behavior. + let currentClassName = data?.hProperties?.class ?? ''; node.data = node.data || {}; node.data.hProperties = node.data.hProperties || {}; diff --git a/packages/astro/src/frontend/h.ts b/packages/astro/src/frontend/h.ts index c1e21dc95..ae54072a8 100644 --- a/packages/astro/src/frontend/h.ts +++ b/packages/astro/src/frontend/h.ts @@ -18,9 +18,8 @@ function* _h(tag: string, attrs: HProps, children: Array) { yield `<${tag}`; if (attrs) { - yield ' '; for (let [key, value] of Object.entries(attrs)) { - yield `${key}="${value}"`; + yield ` ${key}="${value}"`; } } yield '>'; diff --git a/packages/astro/test/fixtures/plain-markdown/src/pages/post.md b/packages/astro/test/fixtures/plain-markdown/src/pages/post.md index 5b2f32348..8dbf3e47e 100644 --- a/packages/astro/test/fixtures/plain-markdown/src/pages/post.md +++ b/packages/astro/test/fixtures/plain-markdown/src/pages/post.md @@ -8,4 +8,10 @@ description: This is a post about some stuff. Hello world! +```json +{ + "key": "value" +} +``` +
Some content
diff --git a/packages/astro/test/snowpack-integration.test.js b/packages/astro/test/snowpack-integration.test.js index cdccff14a..abb06517f 100644 --- a/packages/astro/test/snowpack-integration.test.js +++ b/packages/astro/test/snowpack-integration.test.js @@ -10,14 +10,16 @@ const { readdir, stat } = fsPromises; const SnowpackDev = suite('snowpack.dev'); +const snowpackDir = new URL('../../../examples/snowpack/', import.meta.url); + let runtime, cwd, setupError; SnowpackDev.before(async () => { // Bug: Snowpack config is still loaded relative to the current working directory. cwd = process.cwd(); - process.chdir(fileURLToPath(new URL('../examples/snowpack/', import.meta.url))); + process.chdir(fileURLToPath(snowpackDir)); - const astroConfig = await loadConfig(fileURLToPath(new URL('../examples/snowpack', import.meta.url))); + const astroConfig = await loadConfig(fileURLToPath(snowpackDir)); const logging = { level: 'error', @@ -67,7 +69,7 @@ SnowpackDev('No error creating the runtime', () => { SnowpackDev('Can load every page', async () => { const failed = []; - const pageRoot = new URL('../examples/snowpack/src/pages/', import.meta.url); + const pageRoot = new URL('./src/pages/', snowpackDir); for await (let pathname of allPages(pageRoot)) { if (pathname.includes('proof-of-concept-dynamic')) { continue;