diff --git a/.changeset/fluffy-pants-thank.md b/.changeset/fluffy-pants-thank.md new file mode 100644 index 0000000000..60b0b7c4ac --- /dev/null +++ b/.changeset/fluffy-pants-thank.md @@ -0,0 +1,7 @@ +--- +'nextra': patch +--- + +fixed creating `pageMap` items for folders with dots + +remove requirement of passing `filePaths` with `.md`/`.mdx` extensions for `createCatchAllMeta` function diff --git a/.changeset/slow-kings-double.md b/.changeset/slow-kings-double.md new file mode 100644 index 0000000000..b9ace60fbe --- /dev/null +++ b/.changeset/slow-kings-double.md @@ -0,0 +1,5 @@ +--- +'nextra-theme-docs': patch +--- + +fixed react warning `Warning: React has detected a change in the order of Hooks called by Body` when `themeConfig.main` options is used diff --git a/packages/nextra-theme-docs/src/mdx-components.tsx b/packages/nextra-theme-docs/src/mdx-components.tsx index 0a3822ee88..94eb1b39d3 100644 --- a/packages/nextra-theme-docs/src/mdx-components.tsx +++ b/packages/nextra-theme-docs/src/mdx-components.tsx @@ -260,7 +260,11 @@ function Body({ children }: { children: ReactNode }): ReactElement { ) - const body = themeConfig.main?.({ children: content }) || content + const body = themeConfig.main ? ( + {content} + ) : ( + content + ) if (themeContext.layout === 'full') { return ( diff --git a/packages/nextra/src/client/catch-all.ts b/packages/nextra/src/client/catch-all.ts index 7f0f5ffb25..0c197f4cc0 100644 --- a/packages/nextra/src/client/catch-all.ts +++ b/packages/nextra/src/client/catch-all.ts @@ -17,9 +17,9 @@ export function createCatchAllMeta( ): DynamicMeta { const metaMap: DynamicMeta = appendSlashForFolders(customMeta) - const paths = filePaths - .filter(filePath => MARKDOWN_EXTENSION_REGEX.test(filePath)) - .map(filePath => filePath.replace(MARKDOWN_EXTENSION_REGEX, '').split('/')) + const paths = filePaths.map(filePath => + filePath.replace(MARKDOWN_EXTENSION_REGEX, '').split('/') + ) for (const path of paths) { addToMap(metaMap, path) diff --git a/packages/nextra/src/client/normalize-pages.ts b/packages/nextra/src/client/normalize-pages.ts index 7fe88173ac..e9e7d26d2f 100644 --- a/packages/nextra/src/client/normalize-pages.ts +++ b/packages/nextra/src/client/normalize-pages.ts @@ -410,8 +410,7 @@ export function normalizePages({ docsDirectories.push(item) } } - - return { + const result = { activeType, activeIndex, activeThemeContext, @@ -422,4 +421,6 @@ export function normalizePages({ flatDocsDirectories, topLevelNavbarItems } + + return result } diff --git a/packages/nextra/src/server/page-map.ts b/packages/nextra/src/server/page-map.ts index f100c8a069..49905ccfeb 100644 --- a/packages/nextra/src/server/page-map.ts +++ b/packages/nextra/src/server/page-map.ts @@ -92,7 +92,11 @@ async function collectFiles({ return } - const fileRoute = normalizePageRoute(route, name) + const fileRoute = normalizePageRoute( + route, + // Directory could have dot, e.g. graphql-eslint-3.14 + isDirectory ? name + ext : name + ) if (isDirectory) { if (fileRoute === '/api') return diff --git a/packages/nextra/src/server/remote.ts b/packages/nextra/src/server/remote.ts index 0b2bd545c5..4e026182dd 100644 --- a/packages/nextra/src/server/remote.ts +++ b/packages/nextra/src/server/remote.ts @@ -20,7 +20,9 @@ export async function buildDynamicMDX( } export async function buildDynamicMeta(locale = '') { + const pageMap = await globalThis.__nextra_resolvePageMap[locale]() + return { - __nextra_pageMap: await globalThis.__nextra_resolvePageMap[locale]() + __nextra_pageMap: pageMap } }