diff --git a/.changeset/sharp-ducks-walk.md b/.changeset/sharp-ducks-walk.md new file mode 100644 index 000000000..b65a34e53 --- /dev/null +++ b/.changeset/sharp-ducks-walk.md @@ -0,0 +1,5 @@ +--- +'@astrojs/markdoc': patch +--- + +Add a documentation link to the configuration error hint for those migration pre-v0.4.0 config to the latest version. diff --git a/packages/integrations/markdoc/README.md b/packages/integrations/markdoc/README.md index 4250813d3..15bf24467 100644 --- a/packages/integrations/markdoc/README.md +++ b/packages/integrations/markdoc/README.md @@ -136,6 +136,31 @@ Use tags like this fancy "aside" to add some _flair_ to your docs. {% /aside %} ``` +### Use Astro components from npm packages and TypeScript files + +You may need to use Astro components exposed as named exports from TypeScript or JavaScript files. This is common when using npm packages and design systems. + +You can pass the import name as the second argument to the `component()` function: + +```js +// markdoc.config.mjs +import { defineMarkdocConfig, component } from '@astrojs/markdoc/config'; + +export default defineMarkdocConfig({ + tags: { + tabs: { + render: component('@astrojs/starlight/components', 'Tabs'), + }, + }, +}); +``` + +This generates the following import statement internally: + +```ts +import { Tabs } from '@astrojs/starlight/components'; +``` + ### Custom headings `@astrojs/markdoc` automatically adds anchor links to your headings, and [generates a list of `headings` via the content collections API](https://docs.astro.build/en/guides/content-collections/#rendering-content-to-html). To further customize how headings are rendered, you can apply an Astro component [as a Markdoc node][markdoc-nodes]. diff --git a/packages/integrations/markdoc/src/load-config.ts b/packages/integrations/markdoc/src/load-config.ts index 23a397e47..723516ce7 100644 --- a/packages/integrations/markdoc/src/load-config.ts +++ b/packages/integrations/markdoc/src/load-config.ts @@ -77,7 +77,7 @@ async function bundleConfigFile({ // This swallows the `hint` and blows up the stacktrace. markdocError = new MarkdocError({ message: '`.astro` files are no longer supported in the Markdoc config.', - hint: 'Use the `component()` utility to specify a component path instead.', + hint: 'Use the `component()` utility to specify a component path instead. See https://docs.astro.build/en/guides/integrations-guide/markdoc/', }); return { // Stub with an unused default export.