diff --git a/astro.config.ts b/astro.config.ts index dda7ba0f8..71fc63f64 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -2,8 +2,8 @@ import { defineConfig } from "astro/config" import preact from "@astrojs/preact" import react from "@astrojs/react" import astroI18next from "astro-i18next" -import { astroCallouts } from "./integrations/astro-callouts" -import { solidityRemixCode } from "./integrations/solidity-remix" +import { astroCallouts, asideAutoImport } from "./integrations/astro-callouts" +import { solidityRemixCode, codeSampleAutoImport } from "./integrations/solidity-remix" import { youtubeEmbed } from "./integrations/youtube-embed" import mdx from "@astrojs/mdx" import rehypeSlug from "rehype-slug" @@ -12,6 +12,7 @@ import rehypeKatex from "rehype-katex" import remarkGfm from "remark-gfm" import remarkMath from "remark-math" import image from "@astrojs/image" +import AutoImport from "astro-auto-import" import sitemap from "@astrojs/sitemap" @@ -24,6 +25,9 @@ export default defineConfig({ astroFlavoredMarkdown: true, }, integrations: [ + AutoImport({ + imports: [asideAutoImport, codeSampleAutoImport], + }), preact({ compat: true, }), diff --git a/integrations/astro-callouts.ts b/integrations/astro-callouts.ts index b02f729dd..e39507891 100644 --- a/integrations/astro-callouts.ts +++ b/integrations/astro-callouts.ts @@ -1,18 +1,16 @@ -/** - * Astro's implementation of callouts - * https://github.com/withastro/docs/blob/main/integrations/astro-asides.ts - */ - import type { AstroIntegration } from "astro" import type * as mdast from "mdast" -import type * as unified from "unified" -import { h } from "hastscript" import remarkDirective from "remark-directive" -import { visit } from "unist-util-visit" +import type * as unified from "unified" import { remove } from "unist-util-remove" +import { visit } from "unist-util-visit" +import { makeComponentNode } from "./utils/makeComponentNode" const AsideTagname = "AutoImportedAside" +export const asideAutoImport: Record = { + "~/components/Aside.astro": [["default", AsideTagname]], +} /** * remark plugin that converts blocks delimited with `:::` into instances of * the `