& {
- getLayout?: (page: ReactElement) => ReactNode;
-};
+import { AppProps } from "next/app";
-type AppPropsWithLayout = AppProps & {
- Component: NextPageWithLayout;
-};
-
-export default function MyApp({ Component, pageProps }: AppPropsWithLayout) {
- // Use the layout defined at the page level, if available
- const getLayout = Component.getLayout ?? ((page) => page);
+import "../styles/global.css";
- return getLayout();
+export default function MyApp({ Component, pageProps }: AppProps) {
+ return ;
}
diff --git a/pages/_meta.json b/pages/_meta.json
new file mode 100644
index 0000000..1114c8a
--- /dev/null
+++ b/pages/_meta.json
@@ -0,0 +1,5 @@
+{
+ "index": "Introduction",
+ "contributing": "Contributing",
+ "tools": "Tools"
+}
diff --git a/pages/advanced/code-highlighting.mdx b/pages/advanced/code-highlighting.mdx
deleted file mode 100644
index e37f81e..0000000
--- a/pages/advanced/code-highlighting.mdx
+++ /dev/null
@@ -1,26 +0,0 @@
-# Code Highlighting
-
-`nextra-theme-docs` uses [Prism](https://prismjs.com) and [prism-react-renderer](https://github.com/FormidableLabs/prism-react-renderer)
-to highlight the code blocks. This section covers how you can customize it.
-
-## More Languages
-
-To keep the bundle small, only a [subset of languages](https://github.com/FormidableLabs/prism-react-renderer/blob/master/src/vendor/prism/includeLangs.js)
-are included in the syntax highlighter. If you want to add more languages, you can do the following:
-
-1. Run `yarn add prismjs prism-react-renderer` to add dependencies to your Nextra project.
-2. Add the following code to your `pages/_app.js`:
-
-```jsx
-import Prism from 'prism-react-renderer/prism'
-
-(typeof global !== "undefined" ? global : window).Prism = Prism
-
-require("prismjs/components/prism-kotlin")
-require("prismjs/components/prism-csharp")
-```
-
-Restart your app and you will have Kotlin and C# code highlighting supported.
-You can find the full list of available languages [here](https://github.com/PrismJS/prism/tree/master/components).
-
-{/*## Custom Themes*/}
diff --git a/pages/advanced/meta.json b/pages/advanced/meta.json
deleted file mode 100644
index b3382bd..0000000
--- a/pages/advanced/meta.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "code-highlighting": "Code Highlighting"
-}
\ No newline at end of file
diff --git a/pages/contributing/meta.json b/pages/contributing/_meta.json
similarity index 100%
rename from pages/contributing/meta.json
rename to pages/contributing/_meta.json
diff --git a/pages/features/i18n.mdx b/pages/features/i18n.mdx
deleted file mode 100644
index 1a11f38..0000000
--- a/pages/features/i18n.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
-import Callout from 'nextra-theme-docs/callout'
-
-# Next.js I18n
-
-This feature is only available in the docs theme.
-
-Nextra supports [Next.js Internationalized Routing](https://nextjs.org/docs/advanced-features/i18n-routing) out of the box.
-
-To add multi-language pages to your Nextra application, just need to config `i18n` in `next.config.js`:
-
-```js
-// next.config.js
-const withNextra = require('nextra')('nextra-theme-docs', './theme.config.js')
-module.exports = withNextra({
- i18n: {
- locales: ['en', 'zh', 'de'],
- defaultLocale: 'en',
- },
-})
-```
-
-Then, add the locale codes to your file extensions (required for the default locale too):
-
-```plaintext
-/pages
- index.en.md
- index.zh.md
- index.de.md
- meta.en.json
- meta.zh.json
- meta.de.json
- ...
-```
-
-Finally, add the `i18n` option to your `theme.config.js` to configure the language dropdown:
-
-```jsx
-i18n: [
- { locale: 'en', text: 'English' },
- { locale: 'zh', text: '中文' },
- { locale: 'de', text: 'Deutsch' },
- { locale: 'ar', text: 'العربية', direction: 'rtl' },
-]
-```
diff --git a/pages/features/image.mdx b/pages/features/image.mdx
deleted file mode 100644
index e6ca2f3..0000000
--- a/pages/features/image.mdx
+++ /dev/null
@@ -1,33 +0,0 @@
-# Next.js Image
-
-You can use [Next.js Image](https://nextjs.org/docs/basic-features/image-optimization) directly in MDX.
-
-If the `demo.png` file is located at `/public/demo.png`, you can use the code below to display it:
-
-```markdown
-import Image from 'next/image'
-
-
-```
-
-## Static Image
-
-import Callout from 'nextra-theme-docs/callout'
-
-
- You need to opt-in to this feature by enabling [`unstable_staticImage:
- true`](/get-started#create-manually).
-
-
-Nextra also supports automatic static image imports, you no longer need to specify the width and height of the image manually,
-and you can directly use the Markdown syntax to display the same image:
-
-```markdown
-
-```
-
-With Next.js Image, there will be no layout shift, and a beautiful blury placeholder will be shown by default when loading the images:
-
-
-
-
diff --git a/pages/features/mdx.mdx b/pages/features/mdx.mdx
deleted file mode 100644
index 04567b7..0000000
--- a/pages/features/mdx.mdx
+++ /dev/null
@@ -1,162 +0,0 @@
-# MDX
-
-With Nextra, all your `.md` and `.mdx` files under the pages directory will be rendered with [MDX](https://mdxjs.com/about), it's an
-advanced Markdown format with React component support.
-
-You can use import and use React components inside your Markdown files like this:
-
-```markdown
-import Callout from 'nextra-theme-docs/callout'
-
-**Markdown With React Components**
-
-
- **MDX** (the library), at its core, transforms MDX (the syntax) to JSX.
- It receives an MDX string and outputs a _JSX string_. It does this by parsing
- the MDX document to a syntax tree and then generates a JSX document from that tree.
-
-```
-
-Generates:
-
-import Callout from 'nextra-theme-docs/callout'
-
-
-**Markdown With React Components**
-
-
- **MDX** (the library), at its core, transforms MDX (the syntax) to JSX. It
- receives an MDX string and outputs a _JSX string_. It does this by parsing the
- MDX document to a syntax tree and then generates a JSX document from that
- tree.
-
-
-
-## Heading
-
-
-
-# **Hello**, This Is a _Title_ Inside `h1`
-
-
**Hello**, This Is a _Title_ Inside `h2`
-{/* using html tag to avoid being rendered in the sidebar */}
-
-### **Hello**, This Is a _Title_ Inside `h3`
-
-#### **Hello**, This Is a _Title_ Inside `h4`
-
-##### **Hello**, This Is a _Title_ Inside `h5`
-
-###### **Hello**, This Is a _Title_ Inside `h6`
-
-## List
-
-1. one
-2. two
-3. three
-
-- one
-- two
-- three
-
-## Task List
-
-```markdown
-- [x] Write the press release
-- [ ] Update the website
-- [ ] Contact the media
-```
-
-Renders
-
-- [x] Write the press release
-- [ ] Update the website
-- [ ] Contact the media
-
-## Syntax Highlighting
-
-Automatic syntax highlighting:
-
-````markdown
-```js
-console.log('hello, world')
-```
-````
-
-Renders:
-
-```js
-console.log('hello, world')
-```
-
-You can also add the `highlight=` modifier to highlight specific lines:
-
-````markdown
-```jsx highlight=4,6-8
-import useSWR from 'swr'
-
-function Profile() {
- const { data, error } = useSWR('/api/user', fetcher)
-
- if (error) return
-}
-```
-
-## Inline Code
-
-You can use \`content\` to wrap inline code content like: `let x = 1`.
-
-## Blockquote
-
-> Where some people measure progress in answers-right per test or tests-passed per year, we are more interested in Sistine-Chapel-Ceilings per Lifetime.
->
-> — Alan Kay, A Personal Computer for Children of All Ages
-
-Nested quotes:
-
-> > Where some people measure progress in answers-right per test or tests-passed per year, we are more interested in Sistine-Chapel-Ceilings per Lifetime.
-> >
-> > — Alan Kay, A Personal Computer for Children of All Ages
->
-> This is **great**.
->
-> — Shu Ding.
-
-## Table
-
-| Syntax | Description | Test Text |
-| :------------ | :---------: | ----------: |
-| Header | Title | Here's this |
-| Paragraph | Text | And more |
-| Strikethrough | | ~~Text~~ |
-
-## React Components
-
-React components and Markdown can be **mixed together**, for instance:
-
-```markdown
->
-> Give [**Nextra**](https://github.com/shuding/nextra) a star!
->
-```
-
-Renders:
-
->
-> Give [**Nextra**](https://github.com/shuding/nextra) a star!
->
diff --git a/pages/features/meta.json b/pages/features/meta.json
deleted file mode 100644
index 369452f..0000000
--- a/pages/features/meta.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "mdx": "MDX",
- "ssg": "Next.js SSG",
- "i18n": "Next.js i18n",
- "image": "Next.js Image",
- "themes": "Themes"
-}
diff --git a/pages/features/ssg.mdx b/pages/features/ssg.mdx
deleted file mode 100644
index 736b975..0000000
--- a/pages/features/ssg.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
-# Next.js SSG
-
-With Next.js, you can pre-render your page using [Static Generation (SSG)](https://nextjs.org/docs/basic-features/pages#static-generation-recommended). Your pages will be generated at build time and statically served to visitors. It can also be cached by a CDN to maximize the performance.
-
-This is supported by Nextra too. Here's an example:
-
-import { useSSG } from 'nextra/ssg'
-
-export const getStaticProps = ({ params }) => {
- return fetch(`https://api.github.com/repos/shuding/nextra`)
- .then((res) => res.json())
- .then((repo) => ({
- props: {
- // We add an `ssg` field to the page props,
- // which will be provided to the Nextra `useSSG` hook.
- ssg: {
- stars: repo.stargazers_count,
- },
- },
- // The page will be considered as stale and regenerated every 60 seconds.
- revalidate: 60,
- }))
-}
-
-export const Stars = () => {
- // Get the data from SSG, and render it as a component.
- const { stars } = useSSG()
- return {stars}
-}
-
-