@nuxtjs/mdx

MDX module for Nuxt.js
856
Install
npm install @nuxtjs/mdx
Latest Version:1.0.0
License:MIT
Last Updated:Aug 25, 2020
Links: npm

@nuxtjs/mdx

@nuxtjs/mdx

npm version npm downloads Github Actions CI Codecov License

MDX module for Nuxt

Features

  • Import .mdx files as Vue components
  • Import Vue components in your .mdx files
  • Replace markdown elements with Vue components with the MDX Provider.

📖 Release Notes

Setup

  1. Add @nuxtjs/mdx dependency to your project
yarn add --dev @nuxtjs/mdx # or npm install --dev @nuxtjs/mdx
  1. Add @nuxtjs/mdx to the buildModules section of nuxt.config.js
export default {
  buildModules: [
    '@nuxtjs/mdx'
  ]
}

Usage

After installing the @nuxtjs/mdx module, you're ready to start using MDX files in your Nuxt app. The @nuxtjs/mdx module picks up all .mdx files used in your Nuxt app and converts them into Vue components. This makes it possible to use MDX files as Nuxt routes and regular components.

Using .mdx files in ~/pages directory

Start by creating a hello.mdx file in your ~/pages directory.

pages/
  index.vue
  hello.mdx

Inside hello.mdx, add some markdown content:

# Hello Nuxt MDX

<section
  id="mdx-nuxt-section"
  style={{
    color: 'white',
    backgroundColor: 'tomato',
    padding: '3rem'
  }}
>
  This a Nuxt MDX tomato.
</section>

<nuxt-link to="/some/path">
  to some page &rarr;
</nuxt-link>

After starting your app server, you can now view your rendered hello.mdx page at localhost:3000/hello 🎉

Importing .mdx files in Vue components

You can also import .mdx files as inside other Vue components.

<template>
  <div>
    <!-- 👇🏽 MDX file is parsed as Vue component -->
    <MyMDXComponent />
  </div>
</template>

<script>
import MyMDXComponent from '~/components/MyMDXComponent.mdx'

export default {
  components: {
    MyMDXComponent
  }
}
</script>

Development

  1. Clone this repository
  2. Install dependencies using yarn
  3. Start development server using yarn dev

License

MIT License

Copyright (c) Jonathan Bakebwa codebender828@gmail.com

Contributors ✨

Thanks goes to these wonderful people (emoji key):


pooya parsa

💻

Sébastien Chopin

💻

Jonathan Bakebwa

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

Related Packages

@nuxtjs/i18n

Internationalization for Nuxt

23,877,608 2,085
@nuxtjs/color-mode

Dark and light mode for Nuxt with auto detection

20,659,199 1,228
@nuxtjs/tailwindcss

Tailwind CSS module for Nuxt

16,852,917 1,868
@nuxtjs/sitemap

Powerfully flexible XML Sitemaps that integrate seamlessly, for Nuxt.

10,334,110 441
@nuxtjs/robots

Tame the robots crawling and indexing your Nuxt site with ease.

8,776,519 529

Version History

Version Released License
1.0.0 MIT
0.0.1 MIT
0.0.0