1.1.4 • Published 2 years ago

@trevorblades/remark-mdx-rakkas v1.1.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

remark-mdx-rakkas

This is a fork of remark-mdx-frontmatter that is made to work nicely with Rakkas

Installation

First, install this package, along with remark-frontmatter, which it relies on.

npm install remark-frontmatter @trevorblades/remark-mdx-rakkas

In your Rakkas config, you should have a standard-looking MDX configuration, using a Vite plugin and adding mdx to your array of pageExtensions. Pass this module and the remarkFrontmatter to your MDX plugin as the remarkPlugins option.

import mdx from '@cyco130/vite-plugin-mdx';
import {remarkMdxRakkas} from '@trevorblades/remark-mdx-rakkas';
import remarkFrontmatter from 'remark-frontmatter';

export default {
  pageExtensions: ['jsx', 'tsx', 'mdx'],
  vite: {
    plugins: [
      mdx({
        remarkPlugins: [remarkFrontmatter, remarkMdxRakkas]
      })
    ]
  }
}

Usage

This remark plugin takes frontmatter content, and makes it available to your layout components in Rakkas. Both YAML and TOML frontmatter data are supported.

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

---
title: Getting started
---

This is how you get started...

<InteractiveComponent />

The following component, layout.jsx can read its child pages' frontmatter by accessing the meta prop.

import {Helmet} from 'react-helmet-async';

export default function Layout({children, meta}) {
  <>
    <Helmet title={meta.title}>
      <meta content={meta.description} name="description" />
    </Helmet>
    <h1>{meta.title}</h1>
    {children}
  </>
}