nextra-theme-mui-docs
nextra-theme-mui-docs is a theme for Nextra that's built with the Material UI library.
Installation
yarn create next-app --example https://github.com/Janpot/mui-plus/tree/master/examples/nextra-basic
The quickest way to get set up and running is to use create-next-app with the example from the nextra-theme-mui-docs Github repository.
Run:
yarn create next-app --example https://github.com/Janpot/mui-plus/tree/master/examples/nextra-basic
Then follow the instructions to create and run the application.
Site Structure
The pages hierarchy follows the way they are laid out but can be influenced in several ways. To change the order of pages in a folder, you can use frontmatter in the index.mdx of that folder. You can eitehr just specify the page name, or an object with name/title properties.
---
title: Introduction
order:
- index
- name: components
title: Components
- name: component-api
title: Component Api
- name: more
title: More
---
Built-in components
CodeExample
Add Example code blocks with the CodeExample component.
You'll need to add webpack configuration to next.config.js.
module.exports = withNextra({
webpack: (config) => {
config.module.rules = [
{
oneOf: [
{
resourceQuery: /raw/,
type: 'asset/source',
},
{
rules: config.module.rules,
},
],
},
];
return config;
},
});
Create some example code:
// ./Example.tsx
import * as React from 'react';
export default function MyComponent() {
/// preview-start
return <div>Hello World!</div>;
/// preview-end
}
Then you can import it in your mdx files:
// ./pages/myExamplePage.ndx
import CodeExample from 'nextra-theme-mui-docs/CodeExample';
import Example from './Example';
import srcExample from './Example?raw';
<CodeExample src={srcExample}>
<Example />
</CodeExample>;
That will render:
return <div>Hello World!</div>;You can use doc comments to create source code previews. Use /// preview-start to start and /// preview-end to end a preview block. Inside jsx {/** preview-start */} and {/** preview-end */} will also work.