feat(content-docs): add custom props front matter (#6619)

Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
This commit is contained in:
TheCatLady 2022-02-09 11:04:07 -05:00 committed by GitHub
parent 59289ed4d5
commit 665d164351
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 69 additions and 8 deletions

View file

@ -210,6 +210,19 @@ describe('validateDocFrontMatter sidebar_position', () => {
});
});
describe('validateDocFrontMatter sidebar_custom_props', () => {
testField({
prefix: 'sidebar_custom_props',
validFrontMatters: [
{sidebar_custom_props: {}},
{sidebar_custom_props: {prop: 'custom', number: 1, boolean: true}},
],
invalidFrontMatters: [
[{sidebar_custom_props: ''}, 'must be of type object'],
],
});
});
describe('validateDocFrontMatter custom_edit_url', () => {
testField({
prefix: 'custom_edit_url',

View file

@ -30,6 +30,7 @@ const DocFrontMatterSchema = Joi.object<DocFrontMatter>({
sidebar_label: Joi.string(),
sidebar_position: Joi.number(),
sidebar_class_name: Joi.string(),
sidebar_custom_props: Joi.object().unknown(),
displayed_sidebar: Joi.string().allow(null),
tags: FrontMatterTagsSchema,
pagination_label: Joi.string(),

View file

@ -52,7 +52,8 @@ Available document ids are:
label: sidebarLabel || item.label || title,
href: permalink,
className: item.className,
customProps: item.customProps,
customProps:
item.customProps ?? docMetadata.frontMatter.sidebar_custom_props,
docId: docMetadata.unversionedId,
};
};

View file

@ -58,6 +58,7 @@ export type DocFrontMatter = {
sidebar_label?: string;
sidebar_position?: number;
sidebar_class_name?: string;
sidebar_custom_props?: Record<string, unknown>;
displayed_sidebar?: string | null;
pagination_label?: string;
custom_edit_url?: string | null;