diff options
author | 2023-01-03 16:31:19 -0500 | |
---|---|---|
committer | 2023-01-03 16:31:19 -0500 | |
commit | e2019be6ffa46fa33d92cfd346f9ecbe51bb7144 (patch) | |
tree | 413c13945ae992c26111e78314a567f5c0136c67 /packages/integrations/mdx/test | |
parent | 16c7d0bfd49d2b9bfae45385f506bcd642f9444a (diff) | |
download | astro-e2019be6ffa46fa33d92cfd346f9ecbe51bb7144.tar.gz astro-e2019be6ffa46fa33d92cfd346f9ecbe51bb7144.tar.zst astro-e2019be6ffa46fa33d92cfd346f9ecbe51bb7144.zip |
Change frontmatter injection ordering (#5687)
* feat: make user frontmatter accessible in md
* test: new frontmatter injection
* refactor: move injection utils to remark pkg
* fix: add dist/internal to remark exports
* feat: update frontmater injection in mdx
* tests: new mdx injection
* chore: changeset
* chore: simplify frontmatter destructuring
* fix: remove old _internal references
* refactor: injectedFrontmatter -> remarkPluginFrontmatter
* docs: add content collections change
* chore: changeset heading levels
Diffstat (limited to 'packages/integrations/mdx/test')
6 files changed, 15 insertions, 16 deletions
diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/astro.config.mjs b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/astro.config.mjs index fc15686c2..5335fac87 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/astro.config.mjs +++ b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/astro.config.mjs @@ -1,12 +1,12 @@ import { defineConfig } from 'astro/config'; import mdx from '@astrojs/mdx'; -import { rehypeReadingTime, remarkTitle } from './src/markdown-plugins.mjs'; +import { rehypeReadingTime, remarkDescription, remarkTitle } from './src/markdown-plugins.mjs'; // https://astro.build/config export default defineConfig({ site: 'https://astro.build/', integrations: [mdx({ - remarkPlugins: [remarkTitle], + remarkPlugins: [remarkTitle, remarkDescription], rehypePlugins: [rehypeReadingTime], })], }); diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs index c0d5f7b2e..35b415787 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs +++ b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/markdown-plugins.mjs @@ -18,3 +18,10 @@ export function remarkTitle() { }); }; } + +export function remarkDescription() { + return function (tree, vfile) { + const { frontmatter } = vfile.data.astro; + frontmatter.description = `Processed by remarkDescription plugin: ${frontmatter.description}` + }; +} diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-1.mdx b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-1.mdx index 1092099f0..0d96d95b9 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-1.mdx +++ b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-1.mdx @@ -1,5 +1,6 @@ --- layout: '../layouts/Base.astro' +description: Page 1 description --- # Page 1 diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-2.mdx b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-2.mdx index c82eb97c2..fe6a8286b 100644 --- a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-2.mdx +++ b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/page-2.mdx @@ -1,5 +1,6 @@ --- layout: '../layouts/Base.astro' +description: Page 2 description --- # Page 2 diff --git a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/with-overrides.mdx b/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/with-overrides.mdx deleted file mode 100644 index 4e11c1c37..000000000 --- a/packages/integrations/mdx/test/fixtures/mdx-frontmatter-injection/src/pages/with-overrides.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: 'Overridden title' -injectedReadingTime: - text: '1000 min read' ---- - -# Working! diff --git a/packages/integrations/mdx/test/mdx-frontmatter-injection.test.js b/packages/integrations/mdx/test/mdx-frontmatter-injection.test.js index 780f7252c..8f598b78e 100644 --- a/packages/integrations/mdx/test/mdx-frontmatter-injection.test.js +++ b/packages/integrations/mdx/test/mdx-frontmatter-injection.test.js @@ -33,14 +33,11 @@ describe('MDX frontmatter injection', () => { } }); - it('overrides injected frontmatter with user frontmatter', async () => { + it('allow user frontmatter mutation', async () => { const frontmatterByPage = JSON.parse(await fixture.readFile('/glob.json')); - const readingTimes = frontmatterByPage.map( - (frontmatter = {}) => frontmatter.injectedReadingTime?.text - ); - const titles = frontmatterByPage.map((frontmatter = {}) => frontmatter.title); - expect(titles).to.contain('Overridden title'); - expect(readingTimes).to.contain('1000 min read'); + const descriptions = frontmatterByPage.map((frontmatter = {}) => frontmatter.description); + expect(descriptions).to.contain('Processed by remarkDescription plugin: Page 1 description'); + expect(descriptions).to.contain('Processed by remarkDescription plugin: Page 2 description'); }); it('passes injected frontmatter to layouts', async () => { |