From c541e2d83c0066e92dd13f018698081bf78b387c Mon Sep 17 00:00:00 2001 From: Swalah Amani Date: Wed, 10 Nov 2021 00:16:10 +0530 Subject: [PATCH] misc: replace all "Metadatas" with "Metadata" (#5871) Co-authored-by: Josh-Cena --- .../docs/tutorial-basics/create-a-document.md | 2 +- .../docs/tutorial-basics/create-a-document.md | 2 +- .../docs/tutorial-basics/create-a-document.md | 2 +- .../docs/tutorial-basics/create-a-document.md | 2 +- .../writeRedirectFiles.test.ts.snap | 10 +++--- .../src/__tests__/writeRedirectFiles.test.ts | 10 +++--- .../src/__tests__/index.test.ts | 6 ++-- .../src/docFrontMatter.ts | 2 +- .../src/docs.ts | 2 +- .../src/sidebars/__tests__/generator.test.ts | 7 ++-- .../src/sidebars/generator.ts | 26 +++++++-------- .../src/sidebars/types.ts | 4 +-- .../src/translations.ts | 2 +- .../src/__tests__/index.test.ts | 8 ++--- .../src/theme/BlogListPage/index.tsx | 2 +- .../src/theme/BlogTagsListPage/index.tsx | 2 +- .../src/theme/BlogTagsPostsPage/index.tsx | 2 +- .../src/theme/DocPage/index.tsx | 2 +- .../src/theme/DocTagDocListPage/index.tsx | 2 +- .../src/theme/DocTagsListPage/index.tsx | 2 +- .../src/theme/LayoutHead/index.tsx | 17 +++++----- .../index.tsx | 4 +-- .../docusaurus-theme-classic/src/types.d.ts | 8 ++--- .../src/validateThemeConfig.ts | 13 +++++--- .../utils/__tests__/codeBlockUtils.test.ts | 4 +-- .../src/utils/useThemeConfig.ts | 2 +- .../index.js | 4 +-- .../hooks/useAlgoliaContextualFacetFilters.js | 2 +- .../src/__tests__/markdownParser.test.ts | 4 +-- .../docs/api/plugins/plugin-content-docs.md | 2 +- .../docs/api/themes/theme-configuration.md | 8 ++--- website/docs/guides/docs/sidebar.md | 6 ++-- ...dx => markdown-features-head-metadata.mdx} | 32 +++++++++---------- website/docs/seo.md | 6 ++-- website/docusaurus.config.js | 2 +- website/sidebars.js | 2 +- 36 files changed, 107 insertions(+), 106 deletions(-) rename packages/docusaurus-theme-classic/src/theme/{SearchMetadatas => SearchMetadata}/index.tsx (88%) rename packages/docusaurus-theme-search-algolia/src/theme/{SearchMetadatas => SearchMetadata}/index.js (89%) rename website/docs/guides/markdown-features/{markdown-features-head-metadatas.mdx => markdown-features-head-metadata.mdx} (55%) diff --git a/examples/classic-typescript/docs/tutorial-basics/create-a-document.md b/examples/classic-typescript/docs/tutorial-basics/create-a-document.md index b4a072ecdd..feaced79d0 100644 --- a/examples/classic-typescript/docs/tutorial-basics/create-a-document.md +++ b/examples/classic-typescript/docs/tutorial-basics/create-a-document.md @@ -26,7 +26,7 @@ A new document is now available at `http://localhost:3000/docs/hello`. Docusaurus automatically **creates a sidebar** from the `docs` folder. -Add metadatas to customize the sidebar label and position: +Add metadata to customize the sidebar label and position: ```md title="docs/hello.md" {1-4} --- diff --git a/examples/classic/docs/tutorial-basics/create-a-document.md b/examples/classic/docs/tutorial-basics/create-a-document.md index b4a072ecdd..feaced79d0 100644 --- a/examples/classic/docs/tutorial-basics/create-a-document.md +++ b/examples/classic/docs/tutorial-basics/create-a-document.md @@ -26,7 +26,7 @@ A new document is now available at `http://localhost:3000/docs/hello`. Docusaurus automatically **creates a sidebar** from the `docs` folder. -Add metadatas to customize the sidebar label and position: +Add metadata to customize the sidebar label and position: ```md title="docs/hello.md" {1-4} --- diff --git a/examples/facebook/docs/tutorial-basics/create-a-document.md b/examples/facebook/docs/tutorial-basics/create-a-document.md index b4a072ecdd..feaced79d0 100644 --- a/examples/facebook/docs/tutorial-basics/create-a-document.md +++ b/examples/facebook/docs/tutorial-basics/create-a-document.md @@ -26,7 +26,7 @@ A new document is now available at `http://localhost:3000/docs/hello`. Docusaurus automatically **creates a sidebar** from the `docs` folder. -Add metadatas to customize the sidebar label and position: +Add metadata to customize the sidebar label and position: ```md title="docs/hello.md" {1-4} --- diff --git a/packages/create-docusaurus/templates/shared/docs/tutorial-basics/create-a-document.md b/packages/create-docusaurus/templates/shared/docs/tutorial-basics/create-a-document.md index b4a072ecdd..feaced79d0 100644 --- a/packages/create-docusaurus/templates/shared/docs/tutorial-basics/create-a-document.md +++ b/packages/create-docusaurus/templates/shared/docs/tutorial-basics/create-a-document.md @@ -26,7 +26,7 @@ A new document is now available at `http://localhost:3000/docs/hello`. Docusaurus automatically **creates a sidebar** from the `docs` folder. -Add metadatas to customize the sidebar label and position: +Add metadata to customize the sidebar label and position: ```md title="docs/hello.md" {1-4} --- diff --git a/packages/docusaurus-plugin-client-redirects/src/__tests__/__snapshots__/writeRedirectFiles.test.ts.snap b/packages/docusaurus-plugin-client-redirects/src/__tests__/__snapshots__/writeRedirectFiles.test.ts.snap index 8357420615..a57e33c0c2 100644 --- a/packages/docusaurus-plugin-client-redirects/src/__tests__/__snapshots__/writeRedirectFiles.test.ts.snap +++ b/packages/docusaurus-plugin-client-redirects/src/__tests__/__snapshots__/writeRedirectFiles.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`toRedirectFilesMetadata should create appropriate metadatas for empty baseUrl: fileContent baseUrl=empty 1`] = ` +exports[`toRedirectFilesMetadata should create appropriate metadata for empty baseUrl: fileContent baseUrl=empty 1`] = ` Array [ " @@ -16,7 +16,7 @@ Array [ ] `; -exports[`toRedirectFilesMetadata should create appropriate metadatas for root baseUrl: fileContent baseUrl=/ 1`] = ` +exports[`toRedirectFilesMetadata should create appropriate metadata for root baseUrl: fileContent baseUrl=/ 1`] = ` Array [ " @@ -32,7 +32,7 @@ Array [ ] `; -exports[`toRedirectFilesMetadata should create appropriate metadatas trailingSlash=false: fileContent 1`] = ` +exports[`toRedirectFilesMetadata should create appropriate metadata trailingSlash=false: fileContent 1`] = ` Array [ " @@ -70,7 +70,7 @@ Array [ ] `; -exports[`toRedirectFilesMetadata should create appropriate metadatas trailingSlash=true: fileContent 1`] = ` +exports[`toRedirectFilesMetadata should create appropriate metadata trailingSlash=true: fileContent 1`] = ` Array [ " @@ -108,7 +108,7 @@ Array [ ] `; -exports[`toRedirectFilesMetadata should create appropriate metadatas trailingSlash=undefined: fileContent 1`] = ` +exports[`toRedirectFilesMetadata should create appropriate metadata trailingSlash=undefined: fileContent 1`] = ` Array [ " diff --git a/packages/docusaurus-plugin-client-redirects/src/__tests__/writeRedirectFiles.test.ts b/packages/docusaurus-plugin-client-redirects/src/__tests__/writeRedirectFiles.test.ts index b715250baf..1fafba797b 100644 --- a/packages/docusaurus-plugin-client-redirects/src/__tests__/writeRedirectFiles.test.ts +++ b/packages/docusaurus-plugin-client-redirects/src/__tests__/writeRedirectFiles.test.ts @@ -42,7 +42,7 @@ describe('createToUrl', () => { }); describe('toRedirectFilesMetadata', () => { - test('should create appropriate metadatas trailingSlash=undefined', async () => { + test('should create appropriate metadata trailingSlash=undefined', async () => { const pluginContext = { outDir: '/tmp/someFixedOutDir', baseUrl: 'https://docusaurus.io', @@ -69,7 +69,7 @@ describe('toRedirectFilesMetadata', () => { ); }); - test('should create appropriate metadatas trailingSlash=true', async () => { + test('should create appropriate metadata trailingSlash=true', async () => { const pluginContext = { outDir: '/tmp/someFixedOutDir', baseUrl: 'https://docusaurus.io', @@ -96,7 +96,7 @@ describe('toRedirectFilesMetadata', () => { ); }); - test('should create appropriate metadatas trailingSlash=false', async () => { + test('should create appropriate metadata trailingSlash=false', async () => { const pluginContext = { outDir: '/tmp/someFixedOutDir', baseUrl: 'https://docusaurus.io', @@ -124,7 +124,7 @@ describe('toRedirectFilesMetadata', () => { ); }); - test('should create appropriate metadatas for root baseUrl', async () => { + test('should create appropriate metadata for root baseUrl', async () => { const pluginContext = { outDir: '/tmp/someFixedOutDir', baseUrl: '/', @@ -139,7 +139,7 @@ describe('toRedirectFilesMetadata', () => { ); }); - test('should create appropriate metadatas for empty baseUrl', async () => { + test('should create appropriate metadata for empty baseUrl', async () => { const pluginContext = { outDir: '/tmp/someFixedOutDir', baseUrl: '', diff --git a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts index a17d351bcd..cdc1402b45 100644 --- a/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/__tests__/index.test.ts @@ -1021,7 +1021,7 @@ describe('site with full autogenerated sidebar', () => { }); }); - test('docs in fully generated sidebar have correct metadatas', async () => { + test('docs in fully generated sidebar have correct metadata', async () => { const {content, siteDir} = await loadSite(); const version = content.loadedVersions[0]; @@ -1518,11 +1518,11 @@ describe('site with partial autogenerated sidebars', () => { }); }); - test('docs in partially generated sidebar have correct metadatas', async () => { + test('docs in partially generated sidebar have correct metadata', async () => { const {content, siteDir} = await loadSite(); const version = content.loadedVersions[0]; - // Only looking at the docs of the autogen sidebar, others metadatas should not be affected + // Only looking at the docs of the autogen sidebar, others metadata should not be affected expect(getDocById(version, 'API/api-end')).toEqual({ ...defaultDocMetadata, diff --git a/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts b/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts index 1a20d1485a..c03a76afbf 100644 --- a/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts +++ b/packages/docusaurus-plugin-content-docs/src/docFrontMatter.ts @@ -15,7 +15,7 @@ import { import {DocFrontMatter} from './types'; // NOTE: we don't add any default value on purpose here -// We don't want default values to magically appear in doc metadatas and props +// We don't want default values to magically appear in doc metadata and props // While the user did not provide those values explicitly // We use default values in code instead const DocFrontMatterSchema = Joi.object({ diff --git a/packages/docusaurus-plugin-content-docs/src/docs.ts b/packages/docusaurus-plugin-content-docs/src/docs.ts index c2532d12cc..385cec7310 100644 --- a/packages/docusaurus-plugin-content-docs/src/docs.ts +++ b/packages/docusaurus-plugin-content-docs/src/docs.ts @@ -284,7 +284,7 @@ export function processDocMetadata(args: { } catch (e) { console.error( chalk.red( - `Can't process doc metadatas for doc at path "${args.docFile.filePath}" in version "${args.versionMetadata.versionName}"`, + `Can't process doc metadata for doc at path "${args.docFile.filePath}" in version "${args.versionMetadata.versionName}"`, ), ); throw e; diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/generator.test.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/generator.test.ts index 5e75012a92..cd1089fba8 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/generator.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/generator.test.ts @@ -5,10 +5,7 @@ * LICENSE file in the root directory of this source tree. */ -import { - CategoryMetadatasFile, - DefaultSidebarItemsGenerator, -} from '../generator'; +import {CategoryMetadataFile, DefaultSidebarItemsGenerator} from '../generator'; import {Sidebar, SidebarItemsGenerator} from '../types'; import fs from 'fs-extra'; import {DefaultNumberPrefixParser} from '../../numberPrefix'; @@ -37,7 +34,7 @@ describe('DefaultSidebarItemsGenerator', () => { } function mockCategoryMetadataFiles( - categoryMetadataFiles: Record>, + categoryMetadataFiles: Record>, ) { jest.spyOn(fs, 'pathExists').mockImplementation((metadataFilePath) => { return typeof categoryMetadataFiles[metadataFilePath] !== 'undefined'; diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts index d5dde0d7f1..a936980a83 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/generator.ts @@ -27,7 +27,7 @@ const docIdPrefix = '$doc$/'; export const CategoryMetadataFilenameBase = '_category_'; export const CategoryMetadataFilenamePattern = '_category_.{json,yml,yaml}'; -export type CategoryMetadatasFile = { +export type CategoryMetadataFile = { label?: string; position?: number; collapsed?: boolean; @@ -50,7 +50,7 @@ type Dir = { [item: string]: Dir | null; }; -const CategoryMetadatasFileSchema = Joi.object({ +const CategoryMetadataFileSchema = Joi.object({ label: Joi.string(), position: Joi.number(), collapsed: Joi.boolean(), @@ -62,14 +62,14 @@ const CategoryMetadatasFileSchema = Joi.object({ // Example use-case being able to disable number prefix parsing at the folder level, or customize the default route path segment for an intermediate directory... // TODO later if there is `CategoryFolder/index.md`, we may want to read the metadata as yaml on it // see https://github.com/facebook/docusaurus/issues/3464#issuecomment-818670449 -async function readCategoryMetadatasFile( +async function readCategoryMetadataFile( categoryDirPath: string, -): Promise { - async function tryReadFile(filePath: string): Promise { +): Promise { + async function tryReadFile(filePath: string): Promise { const contentString = await fs.readFile(filePath, {encoding: 'utf8'}); const unsafeContent = Yaml.load(contentString); try { - return Joi.attempt(unsafeContent, CategoryMetadatasFileSchema); + return Joi.attempt(unsafeContent, CategoryMetadataFileSchema); } catch (e) { console.error( chalk.red( @@ -81,7 +81,7 @@ async function readCategoryMetadatasFile( } // eslint-disable-next-line no-restricted-syntax for (const ext of ['.json', '.yml', '.yaml']) { - // Simpler to use only posix paths for mocking file metadatas in tests + // Simpler to use only posix paths for mocking file metadata in tests const filePath = posixPath( path.join(categoryDirPath, `${CategoryMetadataFilenameBase}${ext}`), ); @@ -184,16 +184,16 @@ export const DefaultSidebarItemsGenerator: SidebarItemsGenerator = async ({ folderName: string, ): Promise> { const categoryPath = path.join(version.contentPath, autogenDir, fullPath); - const categoryMetadatas = await readCategoryMetadatasFile(categoryPath); - const className = categoryMetadatas?.className; + const categoryMetadata = await readCategoryMetadataFile(categoryPath); + const className = categoryMetadata?.className; const {filename, numberPrefix} = numberPrefixParser(folderName); return { type: 'category', - label: categoryMetadatas?.label ?? filename, + label: categoryMetadata?.label ?? filename, collapsible: - categoryMetadatas?.collapsible ?? options.sidebarCollapsible, - collapsed: categoryMetadatas?.collapsed ?? options.sidebarCollapsed, - position: categoryMetadatas?.position ?? numberPrefix, + categoryMetadata?.collapsible ?? options.sidebarCollapsible, + collapsed: categoryMetadata?.collapsed ?? options.sidebarCollapsed, + position: categoryMetadata?.position ?? numberPrefix, ...(className !== undefined && {className}), items: await Promise.all( Object.entries(dir).map(([key, content]) => diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts index 59e4c73b3a..ea7866ac5a 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/types.ts @@ -124,8 +124,8 @@ export type PropSidebars = { }; // Reduce API surface for options.sidebarItemsGenerator -// The user-provided generator fn should receive only a subset of metadatas -// A change to any of these metadatas can be considered as a breaking change +// The user-provided generator fn should receive only a subset of metadata +// A change to any of these metadata can be considered as a breaking change export type SidebarItemsGeneratorDoc = Pick< DocMetadataBase, 'id' | 'frontMatter' | 'source' | 'sourceDirName' | 'sidebarPosition' diff --git a/packages/docusaurus-plugin-content-docs/src/translations.ts b/packages/docusaurus-plugin-content-docs/src/translations.ts index 138deca2c2..2e54490f42 100644 --- a/packages/docusaurus-plugin-content-docs/src/translations.ts +++ b/packages/docusaurus-plugin-content-docs/src/translations.ts @@ -50,7 +50,7 @@ function getNormalizedSidebarName({ } /* -// Do we need to translate doc metadatas? +// Do we need to translate doc metadata? // It seems translating frontmatter labels is good enough function getDocTranslations(doc: DocMetadata): TranslationFileContent { return { diff --git a/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.ts b/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.ts index 717a82e38b..920dc6cf6f 100644 --- a/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.ts +++ b/packages/docusaurus-plugin-content-pages/src/__tests__/index.test.ts @@ -22,9 +22,9 @@ describe('docusaurus-plugin-content-pages', () => { path: pluginPath, }), ); - const pagesMetadatas = await plugin.loadContent?.(); + const pagesMetadata = await plugin.loadContent?.(); - expect(pagesMetadatas).toEqual([ + expect(pagesMetadata).toEqual([ { type: 'jsx', permalink: '/', @@ -89,7 +89,7 @@ describe('docusaurus-plugin-content-pages', () => { path: pluginPath, }), ); - const pagesMetadatas = await plugin.loadContent?.(); + const pagesMetadata = await plugin.loadContent?.(); const frTranslationsPath = path.posix.join( '@site', @@ -98,7 +98,7 @@ describe('docusaurus-plugin-content-pages', () => { 'docusaurus-plugin-content-pages', ); - expect(pagesMetadatas).toEqual([ + expect(pagesMetadata).toEqual([ { type: 'jsx', permalink: '/', diff --git a/packages/docusaurus-theme-classic/src/theme/BlogListPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogListPage/index.tsx index 2179aeaca3..93202f3876 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogListPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogListPage/index.tsx @@ -29,7 +29,7 @@ function BlogListPage(props: Props): JSX.Element { description={blogDescription} wrapperClassName={ThemeClassNames.wrapper.blogPages} pageClassName={ThemeClassNames.page.blogListPage} - searchMetadatas={{ + searchMetadata={{ // assign unique search tag to exclude this page from search results! tag: 'blog_posts_list', }} diff --git a/packages/docusaurus-theme-classic/src/theme/BlogTagsListPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogTagsListPage/index.tsx index 44ab055e06..eb8f3d940c 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogTagsListPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogTagsListPage/index.tsx @@ -23,7 +23,7 @@ function BlogTagsListPage(props: Props): JSX.Element { title={title} wrapperClassName={ThemeClassNames.wrapper.blogPages} pageClassName={ThemeClassNames.page.blogTagsListPage} - searchMetadatas={{ + searchMetadata={{ // assign unique search tag to exclude this page from search results! tag: 'blog_tags_list', }} diff --git a/packages/docusaurus-theme-classic/src/theme/BlogTagsPostsPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/BlogTagsPostsPage/index.tsx index 0d33d755db..2c8e46a491 100644 --- a/packages/docusaurus-theme-classic/src/theme/BlogTagsPostsPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BlogTagsPostsPage/index.tsx @@ -50,7 +50,7 @@ export default function BlogTagsPostsPage(props: Props): JSX.Element { title={title} wrapperClassName={ThemeClassNames.wrapper.blogPages} pageClassName={ThemeClassNames.page.blogTagPostListPage} - searchMetadatas={{ + searchMetadata={{ // assign unique search tag to exclude this page from search results! tag: 'blog_tags_posts', }} diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx index df3a2a29d2..6c66c5f651 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx @@ -58,7 +58,7 @@ function DocPageContent({ diff --git a/packages/docusaurus-theme-classic/src/theme/DocTagDocListPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocTagDocListPage/index.tsx index 5a5dbe24f4..1021a19805 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocTagDocListPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocTagDocListPage/index.tsx @@ -59,7 +59,7 @@ export default function DocTagDocListPage({tag}: Props): JSX.Element { title={title} wrapperClassName={ThemeClassNames.wrapper.docsPages} pageClassName={ThemeClassNames.page.docsTagDocListPage} - searchMetadatas={{ + searchMetadata={{ // assign unique search tag to exclude this page from search results! tag: 'doc_tag_doc_list', }}> diff --git a/packages/docusaurus-theme-classic/src/theme/DocTagsListPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocTagsListPage/index.tsx index 7c5348f12a..eec9e8afc9 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocTagsListPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocTagsListPage/index.tsx @@ -22,7 +22,7 @@ function DocTagsListPage({tags}: Props): JSX.Element { title={title} wrapperClassName={ThemeClassNames.wrapper.docsPages} pageClassName={ThemeClassNames.page.docsTagsListPage} - searchMetadatas={{ + searchMetadata={{ // assign unique search tag to exclude this page from search results! tag: 'doc_tags_list', }}> diff --git a/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx b/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx index 59206c00d1..6f06ccea7e 100644 --- a/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/LayoutHead/index.tsx @@ -10,7 +10,7 @@ import Head from '@docusaurus/Head'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; import type {Props} from '@theme/Layout'; -import SearchMetadatas from '@theme/SearchMetadatas'; +import SearchMetadata from '@theme/SearchMetadata'; import Seo from '@theme/Seo'; import { DEFAULT_SEARCH_TAG, @@ -87,8 +87,8 @@ export default function LayoutHead(props: Props): JSX.Element { siteConfig: {favicon}, i18n: {currentLocale, localeConfigs}, } = useDocusaurusContext(); - const {metadatas, image: defaultImage} = useThemeConfig(); - const {title, description, image, keywords, searchMetadatas} = props; + const {metadata, image: defaultImage} = useThemeConfig(); + const {title, description, image, keywords, searchMetadata} = props; const faviconUrl = useBaseUrl(favicon); const pageTitle = useTitleFormatter(title); @@ -117,21 +117,22 @@ export default function LayoutHead(props: Props): JSX.Element { - element here, // as it allows react-helmet to override values set in previous - // ie we can override default metadatas such as "twitter:card" + // ie we can override default metadata such as "twitter:card" // In same Head, the same meta would appear twice instead of overriding // See react-helmet doc > - {metadatas.map((metadata, i) => ( - + {/* Yes, "metadatum" is the grammatically correct term */} + {metadata.map((metadatum, i) => ( + ))} diff --git a/packages/docusaurus-theme-classic/src/theme/SearchMetadatas/index.tsx b/packages/docusaurus-theme-classic/src/theme/SearchMetadata/index.tsx similarity index 88% rename from packages/docusaurus-theme-classic/src/theme/SearchMetadatas/index.tsx rename to packages/docusaurus-theme-classic/src/theme/SearchMetadata/index.tsx index 5ad846997d..00ab2092c5 100644 --- a/packages/docusaurus-theme-classic/src/theme/SearchMetadatas/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/SearchMetadata/index.tsx @@ -8,12 +8,12 @@ import React from 'react'; import Head from '@docusaurus/Head'; -import type {Props} from '@theme/SearchMetadatas'; +import type {Props} from '@theme/SearchMetadata'; // Note: we don't couple this to Algolia/DocSearch on purpose // We may want to support other search engine plugins too // Search plugins should swizzle/override this comp to add their behavior -export default function SearchMetadatas({ +export default function SearchMetadata({ locale, version, tag, diff --git a/packages/docusaurus-theme-classic/src/types.d.ts b/packages/docusaurus-theme-classic/src/types.d.ts index ccde4567c1..e009a75d28 100644 --- a/packages/docusaurus-theme-classic/src/types.d.ts +++ b/packages/docusaurus-theme-classic/src/types.d.ts @@ -301,7 +301,7 @@ declare module '@theme/Layout' { readonly permalink?: string; readonly wrapperClassName?: string; readonly pageClassName?: string; - readonly searchMetadatas?: { + readonly searchMetadata?: { readonly version?: string; readonly tag?: string; }; @@ -320,15 +320,15 @@ declare module '@theme/LayoutHead' { export default LayoutHead; } -declare module '@theme/SearchMetadatas' { +declare module '@theme/SearchMetadata' { export interface Props { readonly locale?: string; readonly version?: string; readonly tag?: string; } - const SearchMetadatas: (props: Props) => JSX.Element; - export default SearchMetadatas; + const SearchMetadata: (props: Props) => JSX.Element; + export default SearchMetadata; } declare module '@theme/LastUpdated' { diff --git a/packages/docusaurus-theme-classic/src/validateThemeConfig.ts b/packages/docusaurus-theme-classic/src/validateThemeConfig.ts index 18e2146dde..6acbedc523 100644 --- a/packages/docusaurus-theme-classic/src/validateThemeConfig.ts +++ b/packages/docusaurus-theme-classic/src/validateThemeConfig.ts @@ -32,7 +32,7 @@ const DEFAULT_COLOR_MODE_CONFIG = { const DEFAULT_CONFIG = { colorMode: DEFAULT_COLOR_MODE_CONFIG, docs: DEFAULT_DOCS_CONFIG, - metadatas: [], + metadata: [], prism: { additionalLanguages: [], }, @@ -46,7 +46,6 @@ const DEFAULT_CONFIG = { maxHeadingLevel: 3, }, }; -exports.DEFAULT_CONFIG = DEFAULT_CONFIG; const NavbarItemPosition = Joi.string().equal('left', 'right').default('left'); @@ -264,9 +263,13 @@ const ThemeConfigSchema = Joi.object({ colorMode: ColorModeSchema, image: Joi.string(), docs: DocsSchema, - metadatas: Joi.array() + metadata: Joi.array() .items(HtmlMetadataSchema) - .default(DEFAULT_CONFIG.metadatas), + .default(DEFAULT_CONFIG.metadata), + metadatas: Joi.any().forbidden().messages({ + 'any.unknown': + 'themeConfig.metadatas has been renamed as themeConfig.metadata. See https://github.com/facebook/docusaurus/pull/5871', + }), announcementBar: Joi.object({ id: Joi.string().default('announcement-bar'), content: Joi.string().required(), @@ -358,7 +361,7 @@ const ThemeConfigSchema = Joi.object({ }).default(DEFAULT_CONFIG.tableOfContents), }); -export {ThemeConfigSchema}; +export {DEFAULT_CONFIG, ThemeConfigSchema}; export function validateThemeConfig({ validate, diff --git a/packages/docusaurus-theme-common/src/utils/__tests__/codeBlockUtils.test.ts b/packages/docusaurus-theme-common/src/utils/__tests__/codeBlockUtils.test.ts index 80e0f49fe5..b5d3ade1c8 100644 --- a/packages/docusaurus-theme-common/src/utils/__tests__/codeBlockUtils.test.ts +++ b/packages/docusaurus-theme-common/src/utils/__tests__/codeBlockUtils.test.ts @@ -28,13 +28,13 @@ describe('parseCodeBlockTitle', () => { expect(parseCodeBlockTitle(`{1,2-3}`)).toEqual(``); }); - test('should parse with multiple metadatas title first', () => { + test('should parse with multiple metadata title first', () => { expect(parseCodeBlockTitle(`title="index.js" label="JavaScript"`)).toEqual( `index.js`, ); }); - test('should parse with multiple metadatas title last', () => { + test('should parse with multiple metadata title last', () => { expect(parseCodeBlockTitle(`label="JavaScript" title="index.js"`)).toEqual( `index.js`, ); diff --git a/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts b/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts index e2cdbe28f7..97bdefc531 100644 --- a/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts +++ b/packages/docusaurus-theme-common/src/utils/useThemeConfig.ts @@ -113,7 +113,7 @@ export type ThemeConfig = { footer?: Footer; hideableSidebar: boolean; image?: string; - metadatas: Array>; + metadata: Array>; sidebarCollapsible: boolean; tableOfContents: TableOfContents; }; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchMetadatas/index.js b/packages/docusaurus-theme-search-algolia/src/theme/SearchMetadata/index.js similarity index 89% rename from packages/docusaurus-theme-search-algolia/src/theme/SearchMetadatas/index.js rename to packages/docusaurus-theme-search-algolia/src/theme/SearchMetadata/index.js index f83b7ba1cd..584ce2a9c3 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchMetadatas/index.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchMetadata/index.js @@ -9,8 +9,8 @@ import React from 'react'; import Head from '@docusaurus/Head'; -// Override default/agnostic SearchMetas to use Algolia-specific metadatas -export default function AlgoliaSearchMetadatas({locale, version, tag}) { +// Override default/agnostic SearchMetas to use Algolia-specific metadata +export default function AlgoliaSearchMetadata({locale, version, tag}) { // Seems safe to consider here the locale is the language, // as the existing docsearch:language filter is afaik a regular string-based filter const language = locale; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/hooks/useAlgoliaContextualFacetFilters.js b/packages/docusaurus-theme-search-algolia/src/theme/hooks/useAlgoliaContextualFacetFilters.js index c09ef21963..3ee15f665d 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/hooks/useAlgoliaContextualFacetFilters.js +++ b/packages/docusaurus-theme-search-algolia/src/theme/hooks/useAlgoliaContextualFacetFilters.js @@ -11,7 +11,7 @@ import useContextualSearchFilters from '@theme/hooks/useContextualSearchFilters' export default function useAlgoliaContextualFacetFilters() { const {locale, tags} = useContextualSearchFilters(); - // seems safe to convert locale->language, see AlgoliaSearchMetadatas comment + // seems safe to convert locale->language, see AlgoliaSearchMetadata comment const languageFilter = `language:${locale}`; const tagsFilter = tags.map((tag) => `docusaurus_tag:${tag}`); diff --git a/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts b/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts index c79d50b4d4..e2ed56f1d5 100644 --- a/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts +++ b/packages/docusaurus-utils/src/__tests__/markdownParser.test.ts @@ -36,7 +36,7 @@ describe('createExcerpt', () => { Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis. `), ).toEqual( - // h1 title is skipped on purpose, because we don't want the page to have SEO metadatas title === description + // h1 title is skipped on purpose, because we don't want the page to have SEO metadata title === description 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', ); }); @@ -53,7 +53,7 @@ describe('createExcerpt', () => { Nunc porttitor libero nec vulputate venenatis. Nam nec rhoncus mauris. Morbi tempus est et nibh maximus, tempus venenatis arcu lobortis. `), ).toEqual( - // h1 title is skipped on purpose, because we don't want the page to have SEO metadatas title === description + // h1 title is skipped on purpose, because we don't want the page to have SEO metadata title === description 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum ex urna, molestie et sagittis ut, varius ac justo.', ); }); diff --git a/website/docs/api/plugins/plugin-content-docs.md b/website/docs/api/plugins/plugin-content-docs.md index ab324d4a09..eec6458b37 100644 --- a/website/docs/api/plugins/plugin-content-docs.md +++ b/website/docs/api/plugins/plugin-content-docs.md @@ -246,7 +246,7 @@ Accepted fields: | `title` | `string` | Markdown title or `id` | The text title of your document. Used for the page metadata and as a fallback value in multiple places (sidebar, next/previous buttons...). Automatically added at the top of your doc if it does not contain any Markdown title. | | `pagination_label` | `string` | `sidebar_label` or `title` | The text used in the document next/previous buttons for this document. | | `sidebar_label` | `string` | `title` | The text shown in the document sidebar for this document. | -| `sidebar_position` | `number` | Default ordering | Controls the position of a doc inside the generated sidebar slice when using `autogenerated` sidebar items. See also [Autogenerated sidebar metadatas](/docs/sidebar#autogenerated-sidebar-metadatas). | +| `sidebar_position` | `number` | Default ordering | Controls the position of a doc inside the generated sidebar slice when using `autogenerated` sidebar items. See also [Autogenerated sidebar metadata](/docs/sidebar#autogenerated-sidebar-metadata). | | `sidebar_class_name` | `string` | `undefined` | Gives the corresponding sidebar label a special class name when using autogenerated sidebars. | | `hide_title` | `boolean` | `false` | Whether to hide the title at the top of the doc. It only hides a title declared through the frontmatter, and have no effect on a Markdown title at the top of your document. | | `hide_table_of_contents` | `boolean` | `false` | Whether to hide the table of contents to the right. | diff --git a/website/docs/api/themes/theme-configuration.md b/website/docs/api/themes/theme-configuration.md index 4b91fad475..637b4a6cd5 100644 --- a/website/docs/api/themes/theme-configuration.md +++ b/website/docs/api/themes/theme-configuration.md @@ -93,9 +93,9 @@ module.exports = { }; ``` -### Metadatas {#metadatas} +### Metadata {#metadata} -You can configure additional html metadatas (and override existing ones). +You can configure additional html metadata (and override existing ones). Accepted fields: @@ -103,7 +103,7 @@ Accepted fields: | Name | Type | Default | Description | | --- | --- | --- | --- | -| `metadatas` | `Metadata[]` | `[]` | Any field will be directly passed to the `` tag. Possible fields include `id`, `name`, `property`, `content`, `itemprop`, etc. | +| `metadata` | `Metadata[]` | `[]` | Any field will be directly passed to the `` tag. Possible fields include `id`, `name`, `property`, `content`, `itemprop`, etc. | @@ -113,7 +113,7 @@ Example configuration: module.exports = { themeConfig: { // highlight-next-line - metadatas: [{name: 'twitter:card', content: 'summary'}], + metadata: [{name: 'twitter:card', content: 'summary'}], }, }; ``` diff --git a/website/docs/guides/docs/sidebar.md b/website/docs/guides/docs/sidebar.md index dfc8c4175b..bf5de846ed 100644 --- a/website/docs/guides/docs/sidebar.md +++ b/website/docs/guides/docs/sidebar.md @@ -499,11 +499,11 @@ module.exports = { }; ``` -#### Autogenerated sidebar metadatas {#autogenerated-sidebar-metadatas} +#### Autogenerated sidebar metadata {#autogenerated-sidebar-metadata} By default, the sidebar slice will be generated in **alphabetical order** (using files and folders names). -If the generated sidebar does not look good, you can assign additional metadatas to docs and categories. +If the generated sidebar does not look good, you can assign additional metadata to docs and categories. **For docs**: use additional frontmatter: @@ -566,7 +566,7 @@ By default, Docusaurus will **remove the number prefix** from the doc id, title, :::caution -**Prefer using [additional metadatas](#autogenerated-sidebar-metadatas)**. +**Prefer using [additional metadata](#autogenerated-sidebar-metadata)**. Updating a number prefix can be annoying, as it can require **updating multiple existing markdown links**: diff --git a/website/docs/guides/markdown-features/markdown-features-head-metadatas.mdx b/website/docs/guides/markdown-features/markdown-features-head-metadata.mdx similarity index 55% rename from website/docs/guides/markdown-features/markdown-features-head-metadatas.mdx rename to website/docs/guides/markdown-features/markdown-features-head-metadata.mdx index 4d4c0e6fad..c48caf9fcc 100644 --- a/website/docs/guides/markdown-features/markdown-features-head-metadatas.mdx +++ b/website/docs/guides/markdown-features/markdown-features-head-metadata.mdx @@ -1,34 +1,34 @@ --- -id: head-metadatas -title: Head Metadatas -description: Declaring page-specific head metadatas through MDX -slug: /markdown-features/head-metadatas +id: head-metadata +title: Head Metadata +description: Declaring page-specific head metadata through MDX +slug: /markdown-features/head-metadata --- -# Head Metadatas +# Head Metadata -Docusaurus automatically sets useful page metadatas in ``, `` and `` for you. +Docusaurus automatically sets useful page metadata in ``, `` and `` for you. -It is possible to add extra metadatas (or override existing ones) by using the `` tag in Markdown files: +It is possible to add extra metadata (or override existing ones) by using the `` tag in Markdown files: -```md title="markdown-features-head-metadatas.mdx" +```md title="markdown-features-head-metadata.mdx" --- -id: head-metadatas -title: Head Metadatas +id: head-metadata +title: Head Metadata --- - Head Metadatas customized title! + Head Metadata customized title! - + -# Head Metadatas +# Head Metadata My text ``` @@ -37,10 +37,10 @@ My text - Head Metadatas customized title! + Head Metadata customized title! - + ``` @@ -48,7 +48,7 @@ My text This `` declaration has been added to the current Markdown doc, as a demo. -Open your browser DevTools and check how this page's metadatas have been affected. +Open your browser DevTools and check how this page's metadata have been affected. ::: diff --git a/website/docs/seo.md b/website/docs/seo.md index 15cbd88a99..6fe946bb91 100644 --- a/website/docs/seo.md +++ b/website/docs/seo.md @@ -11,12 +11,12 @@ Docusaurus supports search engine optimization in a variety of ways. ## Global metadata {#global-metadata} -Provide global meta attributes for the entire site through the [site configuration](./configuration.md#site-metadata). The metadatas will all be rendered in the HTML `` using the key-value pairs as the prop name and value. +Provide global meta attributes for the entire site through the [site configuration](./configuration.md#site-metadata). The metadata will all be rendered in the HTML `` using the key-value pairs as the prop name and value. ```js title="docusaurus.config.js" module.exports = { themeConfig: { - metadatas: [{name: 'keywords', content: 'cooking, blog'}], + metadata: [{name: 'keywords', content: 'cooking, blog'}], // This would become in the generated HTML }, }; @@ -28,7 +28,7 @@ To read more about types of meta tags, visit [the MDN docs](https://developer.mo ## Single page metadata {#single-page-metadata} -Similar to [global metadata](#global-metadata), Docusaurus also allows for the addition of meta-information to individual pages. Follow [this guide](./guides/markdown-features/markdown-features-head-metadatas.mdx) for configuring the `` tag. In short: +Similar to [global metadata](#global-metadata), Docusaurus also allows for the addition of meta-information to individual pages. Follow [this guide](./guides/markdown-features/markdown-features-head-metadata.mdx) for configuring the `` tag. In short: ```md title="my-markdown-page.md" # A cooking guide diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 033433424b..573d499051 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -327,7 +327,7 @@ const config = { additionalLanguages: ['java'], }, image: 'img/docusaurus-soc.png', - // metadatas: [{name: 'twitter:card', content: 'summary'}], + // metadata: [{name: 'twitter:card', content: 'summary'}], gtag: !isDeployPreview ? { trackingID: 'UA-141789564-1', diff --git a/website/sidebars.js b/website/sidebars.js index 56fc549a5f..549aeace2f 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -52,7 +52,7 @@ const sidebars = { 'guides/markdown-features/assets', 'guides/markdown-features/plugins', 'guides/markdown-features/math-equations', - 'guides/markdown-features/head-metadatas', + 'guides/markdown-features/head-metadata', ], }, 'styling-layout',