Skip to content

A remark plugin for converting frontmatter metadata into MDX exports

License

Notifications You must be signed in to change notification settings

cjones26/remark-mdx-frontmatter

This branch is 22 commits behind remcohaszing/remark-mdx-frontmatter:main.

Folders and files

NameName
Last commit message
Last commit date
Oct 26, 2023
Oct 26, 2023
Jul 9, 2022
Mar 7, 2021
Mar 7, 2021
Oct 26, 2023
Oct 26, 2023
Jul 8, 2022
Oct 26, 2023
Apr 23, 2023
Apr 23, 2023
Apr 23, 2023
Jan 29, 2024
Apr 23, 2023
Oct 26, 2023
Oct 26, 2023
Oct 26, 2023
Oct 26, 2023

Repository files navigation

remark-mdx-frontmatter

github actions codecov npm version npm downloads

A remark plugin for converting frontmatter metadata into MDX exports

Table of Contents

Installation

This package depends on the AST output by remark-frontmatter

npm install remark-frontmatter remark-mdx-frontmatter

Usage

This remark plugin takes frontmatter content, and outputs it as JavaScript exports. Both YAML and TOML frontmatter data are supported.

For example, given a file named example.mdx with the following contents:

---
hello: frontmatter
---

Rest of document

The following script:

import { readFile } from 'node:fs/promises'

import { compile } from '@mdx-js/mdx'
import remarkFrontmatter from 'remark-frontmatter'
import remarkMdxFrontmatter from 'remark-mdx-frontmatter'

const { value } = await compile(await readFile('example.mdx'), {
  jsx: true,
  remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter]
})
console.log(value)

Roughly yields:

export const frontmatter = {
  hello: 'frontmatter'
}

export default function MDXContent() {
  return <p>Rest of document</p>
}

API

The default export is a remark plugin.

Options

  • name: The identifier name of the variable the frontmatter data is assigned to. (Default: frontmatter).
  • parsers: A mapping A mapping of node types to parsers. Each key represents a frontmatter node type. The value is a function that accepts the frontmatter data as a string, and returns the parsed data. By default yaml nodes will be parsed using yaml and toml nodes using toml.

Compatibility

This project is compatible with Node.js 16 or greater.

License

MIT © Remco Haszing

About

A remark plugin for converting frontmatter metadata into MDX exports

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 60.7%
  • JavaScript 39.3%