diff options
author | 2023-05-23 12:16:50 -0400 | |
---|---|---|
committer | 2023-05-23 12:16:50 -0400 | |
commit | 57e65d247f67de61bcc3a585c2254feb61ed2e74 (patch) | |
tree | c3919841a2814969e34c108239c2a55634256613 /packages/integrations/markdoc/src | |
parent | cbdb0fdbd6dd2d19237eccab40d9253f0909bf35 (diff) | |
download | astro-57e65d247f67de61bcc3a585c2254feb61ed2e74.tar.gz astro-57e65d247f67de61bcc3a585c2254feb61ed2e74.tar.zst astro-57e65d247f67de61bcc3a585c2254feb61ed2e74.zip |
revert: markdoc asset bleed (#7178)
* revert: markdoc asset bleed
* chore: changeset
Diffstat (limited to 'packages/integrations/markdoc/src')
-rw-r--r-- | packages/integrations/markdoc/src/index.ts | 59 | ||||
-rw-r--r-- | packages/integrations/markdoc/src/nodes/heading.ts | 7 |
2 files changed, 12 insertions, 54 deletions
diff --git a/packages/integrations/markdoc/src/index.ts b/packages/integrations/markdoc/src/index.ts index ba8a0af84..627f08c77 100644 --- a/packages/integrations/markdoc/src/index.ts +++ b/packages/integrations/markdoc/src/index.ts @@ -32,11 +32,7 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration name: '@astrojs/markdoc', hooks: { 'astro:config:setup': async (params) => { - const { - config: astroConfig, - updateConfig, - addContentEntryType, - } = params as SetupHookParams; + const { config: astroConfig, addContentEntryType } = params as SetupHookParams; markdocConfigResult = await loadMarkdocConfig(astroConfig); const userMarkdocConfig = markdocConfigResult?.config ?? {}; @@ -53,9 +49,6 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration addContentEntryType({ extensions: ['.mdoc'], getEntryInfo, - // Markdoc handles script / style propagation - // for Astro components internally - handlePropagation: false, async getRenderModule({ entry, viteId }) { const ast = Markdoc.parse(entry.body); const pluginContext = this; @@ -95,10 +88,7 @@ export default function markdocIntegration(legacyConfig?: any): AstroIntegration }); } - const res = `import { - createComponent, - renderComponent, - } from 'astro/runtime/server/index.js'; + const res = `import { jsx as h } from 'astro/jsx-runtime'; import { Renderer } from '@astrojs/markdoc/components'; import { collectHeadings, setupConfig, Markdoc } from '@astrojs/markdoc/runtime'; import * as entry from ${JSON.stringify(viteId + '?astroContentCollectionEntry')}; @@ -129,24 +119,14 @@ export function getHeadings() { const content = Markdoc.transform(ast, config); return collectHeadings(Array.isArray(content) ? content : content.children); } +export async function Content (props) { + const config = setupConfig({ + ...userConfig, + variables: { ...userConfig.variables, ...props }, + }, entry); -export const Content = createComponent({ - factory(result, props) { - const config = setupConfig({ - ...userConfig, - variables: { ...userConfig.variables, ...props }, - }, entry); - - return renderComponent( - result, - Renderer.name, - Renderer, - { stringifiedAst, config }, - {} - ); - }, - propagation: 'self', -});`; + return h(Renderer, { config, stringifiedAst }); +}`; return { code: res }; }, contentModuleTypes: await fs.promises.readFile( @@ -154,27 +134,6 @@ export const Content = createComponent({ 'utf-8' ), }); - - updateConfig({ - vite: { - plugins: [ - { - name: '@astrojs/markdoc:astro-propagated-assets', - enforce: 'pre', - // Astro component styles and scripts should only be injected - // When a given Markdoc file actually uses that component. - // Add the `astroPropagatedAssets` flag to inject only when rendered. - resolveId(this: rollup.TransformPluginContext, id: string, importer: string) { - if (importer === markdocConfigResult?.fileUrl.pathname && id.endsWith('.astro')) { - return this.resolve(id + '?astroPropagatedAssets', importer, { - skipSelf: true, - }); - } - }, - }, - ], - }, - }); }, 'astro:server:setup': async ({ server }) => { server.watcher.on('all', (event, entry) => { diff --git a/packages/integrations/markdoc/src/nodes/heading.ts b/packages/integrations/markdoc/src/nodes/heading.ts index cb50dd231..0210e9b90 100644 --- a/packages/integrations/markdoc/src/nodes/heading.ts +++ b/packages/integrations/markdoc/src/nodes/heading.ts @@ -37,14 +37,13 @@ export const heading: Schema = { const slug = getSlug(attributes, children, config.ctx.headingSlugger); const render = config.nodes?.heading?.render ?? `h${level}`; - const tagProps = // For components, pass down `level` as a prop, // alongside `__collectHeading` for our `headings` collector. // Avoid accidentally rendering `level` as an HTML attribute otherwise! - typeof render === 'string' - ? { ...attributes, id: slug } - : { ...attributes, id: slug, __collectHeading: true, level }; + typeof render === 'function' + ? { ...attributes, id: slug, __collectHeading: true, level } + : { ...attributes, id: slug }; return new Markdoc.Tag(render, tagProps, children); }, |