From f9944cb2fcf74d9baecaad660c5e3725e97f2014 Mon Sep 17 00:00:00 2001 From: Bartosz Kaszubowski Date: Wed, 23 Sep 2020 14:38:17 +0200 Subject: [PATCH] feat(v2): add optional custom wrapper class name for pages based on theme classic Layout (#3457) * feat(v2): add optional custom wrapper class name for pages based on theme classic Layout * feat(v2): add optional custom wrapper class name for markdown pages * fix TS types --- .../src/plugin-content-pages.d.ts | 1 + .../docusaurus-theme-classic/src/theme/Layout/index.tsx | 4 +++- .../docusaurus-theme-classic/src/theme/MDXPage/index.tsx | 8 ++++++-- packages/docusaurus-theme-classic/src/types.d.ts | 1 + website/src/pages/examples/markdownPageExample.md | 1 + 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-plugin-content-pages/src/plugin-content-pages.d.ts b/packages/docusaurus-plugin-content-pages/src/plugin-content-pages.d.ts index 9eed9f0c36..7f5dc3fd57 100644 --- a/packages/docusaurus-plugin-content-pages/src/plugin-content-pages.d.ts +++ b/packages/docusaurus-plugin-content-pages/src/plugin-content-pages.d.ts @@ -13,6 +13,7 @@ declare module '@theme/MDXPage' { readonly frontMatter: { readonly title: string; readonly description: string; + readonly wrapperClassName?: string; }; readonly metadata: {readonly permalink: string}; readonly rightToc: readonly MarkdownRightTableOfContents[]; diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx index 48b3086ec4..b41ad334ab 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx @@ -6,6 +6,7 @@ */ import React from 'react'; +import clsx from 'clsx'; import Head from '@docusaurus/Head'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; @@ -43,6 +44,7 @@ function Layout(props: Props): JSX.Element { image, keywords, permalink, + wrapperClassName, } = props; const metaTitle = title ? `${title} | ${siteTitle}` : siteTitle; const metaImage = image || defaultImage; @@ -87,7 +89,7 @@ function Layout(props: Props): JSX.Element { -
{children}
+
{children}
{!noFooter &&