Socket
Book a DemoInstallSign in
Socket

gatsby-plugin-mdx-code-demo-oah

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gatsby-plugin-mdx-code-demo-oah

Gatsby plugin to generate code demos from JavaScript files

1.0.0
latest
Source
npmnpm
Version published
Maintainers
1
Created
Source

gatsby-plugin-mdx-code-demo

Create inline code demos with MDX. This plugin is heavily inspired by material-ui's wonderful documentation. It allows you to write demos like theirs.

Example

First you need to have a demoComponent setup (see further installation instructions below). i.e.:

// DemoComponent.js
import React from 'react';

// This is a container component to render our demos and their code
function DemoComponent({ code, children }) {
  return (
    <div>
      <pre>{code}</pre> {/* syntax highlighted code block*/}
      <div>
        {children} {/* the react rendered demo */}
      </div>
    </div>
  );
}

export default DemoComponent

Create a Markdown file with a link markup to the JS file, using protocol demo for the url. The paths are relative to your Markdown file's path.

## Default

[Buttons](demo://outlinedButtons.js)

Write a React component (default exported) to be rendered in place of the markup.

// outlinedButtons.js
import React from 'react';
import Button from '@material-ui/core/Button';

function OutlinedButtons() {
  return (
    <>
      <Button variant="outlined">
        Default
      </Button>
      <Button variant="outlined" color="primary">
        Primary
      </Button>
      <Button variant="outlined" color="secondary">
        Secondary
      </Button>
      <Button variant="outlined" disabled>
        Disabled
      </Button>
      <Button variant="outlined" href="#outlined-buttons">
        Link
      </Button>
    </>
  );
}

// Demos must be default exported
export default OutlinedButtons;

Install

npm install --save gatsby-mdx gatsby-plugin-mdx-code-demo

How to use

// In your gatsby-config.js
plugins: [
  {
    resolve: 'gatsby-mdx',
    options: {
      extensions: ['.mdx', '.md'],
      gatsbyRemarkPlugins: [
        {
          resolve: `gatsby-plugin-mdx-code-demo`,
          options: {
            demoComponent: './src/components/DemoComponent', // a container component to render your demos 
          },
        },
        { resolve: 'gatsby-remark-prismjs' }, // needed for generating syntax highlighted code
      ]
    }
  }
]

Keywords

babel

FAQs

Package last updated on 04 Feb 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.