From b613c7564e2da8eb22951e4575eed4fbfb5021a6 Mon Sep 17 00:00:00 2001 From: Matt Jennings Date: Fri, 4 Aug 2023 16:49:55 -0500 Subject: [PATCH 1/3] feat: add filename to meta --- src/lib/remark.js | 4 +++- .../{Wrapper.svelte => MetaWrapper.svelte} | 2 ++ src/routes/tests/meta/array/+page.svx | 2 +- src/routes/tests/meta/filename/+page.svx | 3 +++ src/routes/tests/meta/meta.spec.mjs | 22 +++++++++++++++---- src/routes/tests/meta/wrapper/+page.svx | 2 +- 6 files changed, 28 insertions(+), 7 deletions(-) rename src/routes/tests/meta/{Wrapper.svelte => MetaWrapper.svelte} (72%) create mode 100644 src/routes/tests/meta/filename/+page.svx diff --git a/src/lib/remark.js b/src/lib/remark.js index 9b14b4c..1c8517d 100644 --- a/src/lib/remark.js +++ b/src/lib/remark.js @@ -26,9 +26,10 @@ export default function (options = {}) { console.warn(`ExampleComponent is deprecated, use defaults.Wrapper instead`) } - return function transformer(tree) { + return function transformer(tree, file) { let examples = [] + const filename = file.filename.split(file.cwd).pop() visit(tree, 'code', (node) => { const languages = ['svelte', 'html'] /** @@ -36,6 +37,7 @@ export default function (options = {}) { */ const meta = { Wrapper: path.resolve(_dirname, 'Example.svelte'), + filename, ...defaults, ...parseMeta(node.meta || '') } diff --git a/src/routes/tests/meta/Wrapper.svelte b/src/routes/tests/meta/MetaWrapper.svelte similarity index 72% rename from src/routes/tests/meta/Wrapper.svelte rename to src/routes/tests/meta/MetaWrapper.svelte index 0384667..85cc2fe 100644 --- a/src/routes/tests/meta/Wrapper.svelte +++ b/src/routes/tests/meta/MetaWrapper.svelte @@ -2,4 +2,6 @@ export let meta +
 {JSON.stringify(meta)}
+
diff --git a/src/routes/tests/meta/array/+page.svx b/src/routes/tests/meta/array/+page.svx index 810c5bb..a1f41eb 100644 --- a/src/routes/tests/meta/array/+page.svx +++ b/src/routes/tests/meta/array/+page.svx @@ -1,3 +1,3 @@ -```svelte example custom=["hello/world"] Wrapper="../Wrapper.svelte" +```svelte example custom=["hello/world"] Wrapper="../MetaWrapper.svelte" ``` diff --git a/src/routes/tests/meta/filename/+page.svx b/src/routes/tests/meta/filename/+page.svx new file mode 100644 index 0000000..dad070f --- /dev/null +++ b/src/routes/tests/meta/filename/+page.svx @@ -0,0 +1,3 @@ +```svelte example Wrapper="../MetaWrapper.svelte" +
hello
+``` diff --git a/src/routes/tests/meta/meta.spec.mjs b/src/routes/tests/meta/meta.spec.mjs index 09ec793..2dd7e05 100644 --- a/src/routes/tests/meta/meta.spec.mjs +++ b/src/routes/tests/meta/meta.spec.mjs @@ -25,12 +25,26 @@ test('hideStyle', async ({ page }) => { test('wrapper and custom meta', async ({ page }) => { await page.goto('/tests/meta/wrapper') - await expect(page.locator(`text={"Wrapper":"../Wrapper.svelte","example":true}`)).toBeVisible() + const meta = await getMeta(page) + + expect(meta.Wrapper).toBe('../MetaWrapper.svelte') + expect(meta.example).toBe(true) }) test('array meta', async ({ page }) => { await page.goto('/tests/meta/array') - await expect( - page.locator('text={"Wrapper":"../Wrapper.svelte","example":true,"custom":["hello/world"]}') - ).toBeVisible() + const meta = await getMeta(page) + + expect(meta.custom).toEqual(['hello/world']) +}) + +test('filename meta', async ({ page }) => { + await page.goto('/tests/meta/filename') + const meta = await getMeta(page) + + expect(meta.filename).toBe('/src/routes/tests/meta/filename/+page.svx') }) + +async function getMeta(page) { + return JSON.parse(await page.locator('#meta').textContent()) +} diff --git a/src/routes/tests/meta/wrapper/+page.svx b/src/routes/tests/meta/wrapper/+page.svx index 352cecc..e29992a 100644 --- a/src/routes/tests/meta/wrapper/+page.svx +++ b/src/routes/tests/meta/wrapper/+page.svx @@ -1,3 +1,3 @@ -```svelte example Wrapper="../Wrapper.svelte" +```svelte example Wrapper="../MetaWrapper.svelte" ``` From fa0813214ebe7004a26fcfefeefa7ffb18b4db50 Mon Sep 17 00:00:00 2001 From: Matt Jennings Date: Fri, 4 Aug 2023 18:00:33 -0500 Subject: [PATCH 2/3] chore: maybe fix windows bug --- src/lib/remark.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/remark.js b/src/lib/remark.js index 1c8517d..04313f6 100644 --- a/src/lib/remark.js +++ b/src/lib/remark.js @@ -29,7 +29,11 @@ export default function (options = {}) { return function transformer(tree, file) { let examples = [] - const filename = file.filename.split(file.cwd).pop() + const filename = toPOSIX(file.filename).split(toPOSIX(file.cwd)).pop() + + // temp to debug windows bug in CI + console.log(file) + visit(tree, 'code', (node) => { const languages = ['svelte', 'html'] /** @@ -156,3 +160,7 @@ function createExampleComponent(value, meta, index) { {@html ${JSON.stringify(highlighted)}} ` } + +function toPOSIX(path) { + return path.replace(/\\/g, '/') +} From b175661cad7f730cfa8a6b81a0c7f0bfc31b1338 Mon Sep 17 00:00:00 2001 From: Matt Jennings Date: Fri, 4 Aug 2023 18:06:23 -0500 Subject: [PATCH 3/3] chore: remove console log --- src/lib/remark.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/lib/remark.js b/src/lib/remark.js index 04313f6..a1a107e 100644 --- a/src/lib/remark.js +++ b/src/lib/remark.js @@ -31,9 +31,6 @@ export default function (options = {}) { const filename = toPOSIX(file.filename).split(toPOSIX(file.cwd)).pop() - // temp to debug windows bug in CI - console.log(file) - visit(tree, 'code', (node) => { const languages = ['svelte', 'html'] /**