[suggestion] allow mdx processing without mdx-bundler
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- markdown, typescript
- Domaine
- tooling
Piste de recherche
Commencez par la configuration de makeSource et son callback mdx, puis comparez l’intégration actuelle de mdx-bundler avec le guide officiel MDX on demand lié dans l’issue. C’est terminé lorsque contentlayer peut accepter la configuration basée sur compile présentée, y compris les plugins remark et rehype, tout en renvoyant le code compilé et les données du fichier.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
mdx-bundler is pretty opinionated and i would like to be able to use a simpler setup closer to the official MDX on demand guide.
it would be cool if something like the following could work with contentlayer:
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 }
},
})
- Langage dominant
- TypeScript
- Étoiles
- 3.5k
- Forks
- 192
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de contentlayerdev/contentlayer
-
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
contentlayerdev/contentlayer#506 · 84 commentaires · 47 réactions ·
-
Poor/broken monorepo DX: can't specify .contentlayer/ output path, no docs for custom config pathOuvertehelp wanted meta: never-stale needs-research
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
contentlayerdev/contentlayer#464 · 4 commentaires · 9 réactions ·
-
State of the projectOuvertemeta: never-stale
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 10/100
contentlayerdev/contentlayer#429 · 49 commentaires · 83 réactions ·
-
meta: never-stale topic: markdown/mdx
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
contentlayerdev/contentlayer#421 · 4 réactions ·
-
meta: never-stale needs-research topic: schema
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
contentlayerdev/contentlayer#420 ·
Toutes les issues de contentlayerdev/contentlayer
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
solana-foundation/solana-com#2245 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
`document.cookie` with `max-age=0` does not delete the cookiePeut-être pris @BartInTheField l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
capricorn86/happy-dom#2460 ·
Les mainteneurs répondent en général sous 2 jours