UNPKG

@mintlify/common

Version:

Commonly shared code within Mintlify

50 lines (49 loc) 2.51 kB
import { rehypeCodeBlocks, rehypeDynamicTailwindCss, rehypeKeyboardSymbols, rehypeListItemText, rehypeMdxExtractEndpoint, rehypeMdxExtractExamples, rehypeParamFieldIds, rehypeRawComponents, rehypeTable, rehypeUnicodeIds, rehypeZoomImages, remarkExtractChangelogFilters, remarkExtractTableOfContents, remarkFrames, remarkComponentIds, remarkMdxInjectSnippets, remarkMdxRemoveUnusedVariables, remarkRemoveImports, remarkMdxExtractPanel, remarkResolveRelativeLinks, remarkVideo, remarkMdxClientComponentBoundaries, remarkExtractMultiView, remarkPrompt, remarkUnwrapJsxHeadings, } from './plugins/index.js'; import { remarkMdxRemoveUnknownJsx } from './plugins/remark/remarkMdxRemoveUnknownJsx/index.js'; import { remarkMermaid } from './plugins/remark/remarkMermaid.js'; // avoid running extractors unnecessarily const rehypeExtractors = (mdxExtracts, data) => { if (!mdxExtracts) return []; return [ [rehypeMdxExtractExamples, mdxExtracts], [rehypeMdxExtractEndpoint, data.pageMetadata, data.config, mdxExtracts], ]; }; export const getMDXOptions = ({ data, remarkPlugins = [], rehypePlugins = [], mdxExtracts, allowedComponents = [], }) => { return { remarkPlugins: [ [remarkMdxInjectSnippets, data.snippetTreeMap], [remarkResolveRelativeLinks, { path: data.path }], remarkPrompt, [remarkComponentIds, data.pageMetadata], remarkUnwrapJsxHeadings, [remarkExtractTableOfContents, mdxExtracts, data.pageMetadata], // modifies tree so cannot be excluded [remarkExtractChangelogFilters, mdxExtracts], [remarkMdxExtractPanel, mdxExtracts], [remarkExtractMultiView, mdxExtracts], remarkMdxRemoveUnusedVariables, remarkFrames, remarkRemoveImports, remarkMermaid, remarkVideo, ...remarkPlugins, [remarkMdxRemoveUnknownJsx, { allowlist: allowedComponents }], remarkMdxClientComponentBoundaries, ], rehypePlugins: [ rehypeCodeBlocks, rehypeKeyboardSymbols, rehypeParamFieldIds, ...rehypeExtractors(mdxExtracts, data), rehypeTable, rehypeRawComponents, rehypeListItemText, rehypeZoomImages, rehypeUnicodeIds, [rehypeDynamicTailwindCss, data.tailwindSelectors], ...rehypePlugins, ], format: 'mdx', }; };