fix: add docs tag validation to solve #5478 (#5479)

* fix: add docs tag validation to solve #5478

fix: add docs tag validation to solve #5478

* Update docFrontMatter.ts

* Update docs-create-doc.mdx

* improve tag validation error messages + tests

* improve tags doc

* fix test

Co-authored-by: slorber <lorber.sebastien@gmail.com>
This commit is contained in:
swyx 2021-09-03 20:43:24 +08:00 committed by GitHub
parent 812327155b
commit 194f429c1f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 5 deletions

View file

@ -242,3 +242,24 @@ describe('validateDocFrontMatter parse_number_prefixes', () => {
],
});
});
describe('validateDocFrontMatter tags', () => {
testField({
fieldName: 'tags',
validFrontMatters: [{}, {tags: undefined}, {tags: ['tag1', 'tag2']}],
convertibleFrontMatter: [[{tags: ['tag1', 42]}, {tags: ['tag1', '42']}]],
invalidFrontMatters: [
[{tags: 42}, '"tags" does not look like a valid FrontMatter Yaml array.'],
[
{tags: 'tag1, tag2'},
'"tags" does not look like a valid FrontMatter Yaml array.',
],
[{tags: [{}]}, '"tags[0]" does not look like a valid tag'],
[{tags: [true]}, '"tags[0]" does not look like a valid tag'],
[
{tags: ['tag1', {hey: 'test'}]},
'"tags[1]" does not look like a valid tag',
],
],
});
});

View file

@ -8,6 +8,7 @@
import {
JoiFrontMatter as Joi, // Custom instance for frontmatter
URISchema,
FrontMatterTagsSchema,
validateFrontMatter,
} from '@docusaurus/utils-validation';
import {DocFrontMatter} from './types';
@ -27,6 +28,7 @@ const DocFrontMatterSchema = Joi.object<DocFrontMatter>({
slug: Joi.string(),
sidebar_label: Joi.string(),
sidebar_position: Joi.number(),
tags: FrontMatterTagsSchema,
pagination_label: Joi.string(),
custom_edit_url: URISchema.allow('', null),
parse_number_prefixes: Joi.boolean(),