/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import { Joi, validateFrontMatter, FrontMatterTOCHeadingLevels, ContentVisibilitySchema, URISchema, FrontMatterLastUpdateSchema, } from '@docusaurus/utils-validation'; import type {PageFrontMatter} from '@docusaurus/plugin-content-pages'; const PageFrontMatterSchema = Joi.object({ // See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 title: Joi.string().allow(''), // See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398 description: Joi.string().allow(''), keywords: Joi.array().items(Joi.string().required()), image: URISchema, slug: Joi.string(), wrapperClassName: Joi.string(), hide_table_of_contents: Joi.boolean(), ...FrontMatterTOCHeadingLevels, last_update: FrontMatterLastUpdateSchema, }).concat(ContentVisibilitySchema); export function validatePageFrontMatter(frontMatter: { [key: string]: unknown; }): PageFrontMatter { return validateFrontMatter(frontMatter, PageFrontMatterSchema); }