UNPKG

@mintlify/common

Version:

Commonly shared code within Mintlify

37 lines (36 loc) 1.59 kB
import { rehypeCodeBlocks, rehypeMdxExtractEndpoint, rehypeMdxExtractExamples, rehypeParamFieldIds, rehypeRawComponents, rehypeUnicodeIds, rehypeZoomImages, remarkExtractTableOfContents, remarkFrames, remarkMdxInjectSnippets, remarkMdxRemoveUnusedVariables, remarkRemoveImports, } 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, }) => { return { remarkPlugins: [ [remarkMdxInjectSnippets, data.snippetTreeMap], [remarkExtractTableOfContents, mdxExtracts], // modifies tree so cannot be excluded remarkMdxRemoveUnusedVariables, remarkFrames, remarkRemoveImports, remarkMermaid, ...remarkPlugins, [remarkMdxRemoveUnknownJsx, data.allowedComponents], ], rehypePlugins: [ rehypeCodeBlocks, rehypeParamFieldIds, ...rehypeExtractors(mdxExtracts, data), rehypeRawComponents, rehypeZoomImages, rehypeUnicodeIds, ...rehypePlugins, ], format: 'mdx', }; };