GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — [suggestion] allow mdx processing without mdx-bundler · Issue #247 · contentlayerdev/contentlayer Open Milestone Description
it would be cool if something like the following could work with import { compile } from '@mdx-js/mdx' import withToc from '@stefanprobst/rehype-extract-toc' import type { RawDocumentData } from 'contentlayer/source-files' import { defineDocumentType, makeSource } from 'contentlayer/source-files' import withSlug from 'rehype-slug' import withFrontmatter from 'remark-frontmatter' import withGfm from 'remark-gfm' import { VFile } from 'vfile' import { matter } from 'vfile-matter' import { getTranslations } from '@/app/i18n' const Post = defineDocumentType(() => { return { name: 'Post', description: 'Post', filePathPattern: `posts/**/*.mdx`, contentType: 'mdx', fields: { title: { description: 'Title', type: 'string', required: true }, locale: { description: 'Locale', type: 'enum', options: ['en', 'de'], required: true }, }, } }) export default makeSource({ contentDirPath: 'content', documentTypes: [Post], async mdx(raw: string, sourceFilePath?: string) { const input = new VFile({ value: raw, path: sourceFilePath }) matter(input) const { locale } = input.data['matter'] const t = await getTranslations(locale) const vfile = await compile(input, { remarkPlugins: [withFrontmatter, withGfm], remarkRehypeOptions: { footnoteBackLabel: t('footnote-back-label'), footnoteLabel: t('footnote-label'), }, rehypePlugins: [withSlug, withToc], }) return { code: String(vfile), data: vfile.data } }, }) Reacted by Slava Kurilyak, 幽山 and Hai Ha Activity
MetadataMetadataAssigneesTypeProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |