UNPKG

iles

Version:

Vite & Vue powered static site generator with partial hydration

25 lines (24 loc) 1.14 kB
import { inject, provide } from 'vue'; import { useAppConfig } from './appConfig'; export const mdxComponentsKey = Symbol('[iles-mdx-components]'); // Public: Allows to globally obtain replacements for built-ins, such as img. export function useMDXComponents() { return inject(mdxComponentsKey); } // Public: Allows to globally provide replacements for built-ins, such as img. export function provideMDXComponents(mdxComponents) { const overrideElements = useAppConfig()?.overrideElements; if (overrideElements) { for (const key in mdxComponents) { if (key === key.toLowerCase() && !overrideElements.includes(key)) console.warn(`Provided an MDX shortcode for '${key}', but it's being optimized. You must specify '${key}' in mdxComponents in app.ts`); } } provide(mdxComponentsKey, mdxComponents); } export async function installMDXComponents(context, { mdxComponents }) { const components = mdxComponents ? typeof mdxComponents === 'function' ? await mdxComponents(context) : mdxComponents : {}; context.app.provide(mdxComponentsKey, components); }