diff options
Diffstat (limited to 'packages/markdown')
-rw-r--r-- | packages/markdown/remark/src/index.ts | 5 | ||||
-rw-r--r-- | packages/markdown/remark/src/remark-content-rel-image-error.ts | 2 | ||||
-rw-r--r-- | packages/markdown/remark/src/types.ts | 2 | ||||
-rw-r--r-- | packages/markdown/remark/test/autolinking.test.js | 13 | ||||
-rw-r--r-- | packages/markdown/remark/test/entities.test.js | 6 | ||||
-rw-r--r-- | packages/markdown/remark/test/plugins.test.js | 2 | ||||
-rw-r--r-- | packages/markdown/remark/test/test-utils.js | 3 |
7 files changed, 23 insertions, 10 deletions
diff --git a/packages/markdown/remark/src/index.ts b/packages/markdown/remark/src/index.ts index 91680f3fd..fdd669280 100644 --- a/packages/markdown/remark/src/index.ts +++ b/packages/markdown/remark/src/index.ts @@ -53,7 +53,6 @@ export async function renderMarkdown( remarkRehype = markdownConfigDefaults.remarkRehype, gfm = markdownConfigDefaults.gfm, smartypants = markdownConfigDefaults.smartypants, - isExperimentalContentCollections = false, contentDir, frontmatter: userFrontmatter = {}, } = opts; @@ -91,9 +90,7 @@ export async function renderMarkdown( } // Apply later in case user plugins resolve relative image paths - if (isExperimentalContentCollections) { - parser.use([toRemarkContentRelImageError({ contentDir })]); - } + parser.use([toRemarkContentRelImageError({ contentDir })]); parser.use([ [ diff --git a/packages/markdown/remark/src/remark-content-rel-image-error.ts b/packages/markdown/remark/src/remark-content-rel-image-error.ts index 1a0870c22..3e3664b20 100644 --- a/packages/markdown/remark/src/remark-content-rel-image-error.ts +++ b/packages/markdown/remark/src/remark-content-rel-image-error.ts @@ -10,6 +10,8 @@ import type { VFile } from 'vfile'; export default function toRemarkContentRelImageError({ contentDir }: { contentDir: URL }) { return function remarkContentRelImageError() { return (tree: any, vfile: VFile) => { + if (typeof vfile?.path !== 'string') return; + const isContentFile = pathToFileURL(vfile.path).href.startsWith(contentDir.href); if (!isContentFile) return; diff --git a/packages/markdown/remark/src/types.ts b/packages/markdown/remark/src/types.ts index 40b2ac841..ff3060704 100644 --- a/packages/markdown/remark/src/types.ts +++ b/packages/markdown/remark/src/types.ts @@ -59,8 +59,6 @@ export interface MarkdownRenderingOptions extends AstroMarkdownOptions { scopedClassName: string | null; }; /** Used to prevent relative image imports from `src/content/` */ - isExperimentalContentCollections?: boolean; - /** Used to prevent relative image imports from `src/content/` */ contentDir: URL; /** Used for frontmatter injection plugins */ frontmatter?: Record<string, any>; diff --git a/packages/markdown/remark/test/autolinking.test.js b/packages/markdown/remark/test/autolinking.test.js index 48bf894be..b1e567bb4 100644 --- a/packages/markdown/remark/test/autolinking.test.js +++ b/packages/markdown/remark/test/autolinking.test.js @@ -1,10 +1,14 @@ import { renderMarkdown } from '../dist/index.js'; import chai from 'chai'; +import { mockRenderMarkdownParams } from './test-utils.js'; describe('autolinking', () => { describe('plain md', () => { it('autolinks URLs starting with a protocol in plain text', async () => { - const { code } = await renderMarkdown(`See https://example.com for more.`, {}); + const { code } = await renderMarkdown( + `See https://example.com for more.`, + mockRenderMarkdownParams + ); chai .expect(code.replace(/\n/g, '')) @@ -12,7 +16,10 @@ describe('autolinking', () => { }); it('autolinks URLs starting with "www." in plain text', async () => { - const { code } = await renderMarkdown(`See www.example.com for more.`, {}); + const { code } = await renderMarkdown( + `See www.example.com for more.`, + mockRenderMarkdownParams + ); chai .expect(code.trim()) @@ -22,7 +29,7 @@ describe('autolinking', () => { it('does not autolink URLs in code blocks', async () => { const { code } = await renderMarkdown( 'See `https://example.com` or `www.example.com` for more.', - {} + mockRenderMarkdownParams ); chai diff --git a/packages/markdown/remark/test/entities.test.js b/packages/markdown/remark/test/entities.test.js index d35ed3a89..acaf71be1 100644 --- a/packages/markdown/remark/test/entities.test.js +++ b/packages/markdown/remark/test/entities.test.js @@ -1,9 +1,13 @@ import { renderMarkdown } from '../dist/index.js'; import { expect } from 'chai'; +import { mockRenderMarkdownParams } from './test-utils.js'; describe('entities', () => { it('should not unescape entities in regular Markdown', async () => { - const { code } = await renderMarkdown(`<i>This should NOT be italic</i>`, {}); + const { code } = await renderMarkdown( + `<i>This should NOT be italic</i>`, + mockRenderMarkdownParams + ); expect(code).to.equal(`<p><i>This should NOT be italic</i></p>`); }); diff --git a/packages/markdown/remark/test/plugins.test.js b/packages/markdown/remark/test/plugins.test.js index a1abeb2ed..35e5dcaf8 100644 --- a/packages/markdown/remark/test/plugins.test.js +++ b/packages/markdown/remark/test/plugins.test.js @@ -1,4 +1,5 @@ import { renderMarkdown } from '../dist/index.js'; +import { mockRenderMarkdownParams } from './test-utils.js'; import chai from 'chai'; import { fileURLToPath } from 'node:url'; @@ -8,6 +9,7 @@ describe('plugins', () => { it('should be able to get file path when passing fileURL', async () => { let context; await renderMarkdown(`test`, { + ...mockRenderMarkdownParams, fileURL: new URL('virtual.md', import.meta.url), remarkPlugins: [ function () { diff --git a/packages/markdown/remark/test/test-utils.js b/packages/markdown/remark/test/test-utils.js new file mode 100644 index 000000000..10b779a7d --- /dev/null +++ b/packages/markdown/remark/test/test-utils.js @@ -0,0 +1,3 @@ +export const mockRenderMarkdownParams = { + contentDir: new URL('file:///src/content/'), +}; |