@mintlify/common
Version:
Commonly shared code within Mintlify
37 lines (36 loc) • 1.59 kB
JavaScript
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',
};
};