1
0
mirror of https://github.com/tabler/tabler.git synced 2026-08-13 14:52:22 +04:00
Files
tabler/site/mdx/remark.ts
T
2023-07-18 00:13:56 +02:00

129 lines
3.6 KiB
TypeScript

import { mdxAnnotations } from 'mdx-annotations'
import remarkGfm from 'remark-gfm'
import remarkMdx from 'remark-mdx'
import remarkFrontmatter from 'remark-frontmatter'
import remarkParseFrontmatter from 'remark-parse-frontmatter'
import remarkMdxFrontmatter from 'remark-mdx-frontmatter'
import remarkSmartypants from 'remark-smartypants'
import remarkUnwrapImages from 'remark-unwrap-images'
import remarkMdxCodeMeta from 'remark-mdx-code-meta';
import remarkToc from 'remark-toc'
import remarkGithub from 'remark-github'
import remarkMath from 'remark-math'
// import { toMarkdown } from 'mdast-util-to-markdown'
// import { frontmatterToMarkdown } from 'mdast-util-frontmatter'
// import { mdxjsEsmToMarkdown } from 'mdast-util-mdxjs-esm'
// import { mdxJsxToMarkdown } from 'mdast-util-mdx-jsx'
// import { gfmTableToMarkdown } from 'mdast-util-gfm-table'
// import * as acorn from 'acorn'
// import jsx from 'acorn-jsx'
// const remarkLayout = () => {
// const parser = acorn.Parser.extend(jsx())
// let layout = 'BasicLayout'
// return (tree, file) => {
// if(file.history[0].match(/pages\/docs\//)) {
// layout = 'DocsLayout'
// } else if(file.history[0].match(/pages\/guides\//)) {
// layout = 'GuideLayout'
// } else if(file.history[0].match(/pages\/changelog\//)) {
// layout = 'ChangelogLayout'
// }
// console.log(file.history[0], layout);
// let exportPropsStr = `export async function getStaticProps() { return { props: { meta }}}`
// tree.children.push({
// type: 'mdxjsEsm',
// value: exportPropsStr,
// data: {
// estree: parser.parse(exportPropsStr, {
// sourceType: 'module',
// ecmaVersion: 'latest',
// plugins: {
// 'jsx': true
// }
// })
// }
// })
// for (let node of tree.children) {
// if (node.type === 'mdxjsEsm' && new RegExp(`export\\s+default`).test(node.value)) {
// console.log('Found default export')
// return
// }
// }
// if(layout) {
// console.log('Adding layout')
// let importStr = `import ${layout} from '@/layouts/${layout}.js'`
// tree.children.push({
// type: 'mdxjsEsm',
// value: importStr,
// data: {
// estree: parser.parse(importStr, {
// sourceType: 'module',
// ecmaVersion: 'latest'
// })
// }
// })
// let exportStr = `MDXContent.Layout = ${layout}`
// tree.children.push({
// type: 'mdxjsEsm',
// value: exportStr,
// data: {
// estree: parser.parse(exportStr, {
// sourceType: 'module',
// ecmaVersion: 'latest',
// plugins: {
// 'jsx': true
// }
// })
// }
// })
// }
// }
// }
// const preview = () => {
// return (tree, file) => {
// console.log('--------------------------');
// console.log('tree', tree);
// console.log('--------------------------');
// console.log(toMarkdown(tree, {
// extensions: [
// frontmatterToMarkdown(['yaml', 'toml']),
// mdxjsEsmToMarkdown,
// mdxJsxToMarkdown(),
// gfmTableToMarkdown()
// ]
// }))
// console.log('--------------------------');
// }
// }
export const remarkPlugins = [
mdxAnnotations.remark,
remarkMdx,
remarkFrontmatter,
remarkMdxCodeMeta,
[remarkMdxFrontmatter, {
name: 'meta'
}],
remarkParseFrontmatter,
remarkGfm,
[remarkGithub, {
repository: 'https://github.com/tabler/tabler'
}],
remarkMath,
remarkSmartypants,
remarkUnwrapImages,
remarkToc,
// remarkLayout,
]