Skip to content

Commit

Permalink
fix(v2): make config validation less strict (#3120)
Browse files Browse the repository at this point in the history
* fix(v2): make navbar title validation less strict

* fix(v2): fix validation for rehype plugin

* fix(v2): allow empty string for routeBasePath

* fix(v2): fix validation for stylesheets and scripts field

* fix(v2): rerun CI

* fix(v2): relax check for stylesheet href
  • Loading branch information
teikjun authored Jul 27, 2020
1 parent 41d5ac6 commit 2159c4f
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 16 deletions.
19 changes: 11 additions & 8 deletions packages/docusaurus-plugin-content-blog/src/pluginOptionSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const DEFAULT_OPTIONS = {

export const PluginOptionSchema = Joi.object({
path: Joi.string().default(DEFAULT_OPTIONS.path),
routeBasePath: Joi.string().default(DEFAULT_OPTIONS.routeBasePath),
routeBasePath: Joi.string().allow('').default(DEFAULT_OPTIONS.routeBasePath),
include: Joi.array().items(Joi.string()).default(DEFAULT_OPTIONS.include),
postsPerPage: Joi.number()
.integer()
Expand All @@ -45,16 +45,19 @@ export const PluginOptionSchema = Joi.object({
showReadingTime: Joi.bool().default(DEFAULT_OPTIONS.showReadingTime),
remarkPlugins: Joi.array()
.items(
Joi.alternatives().try(
Joi.function(),
Joi.array()
.items(Joi.function().required(), Joi.object().required())
.length(2),
),
Joi.array()
.items(Joi.function().required(), Joi.object().required())
.length(2),
Joi.function(),
)
.default(DEFAULT_OPTIONS.remarkPlugins),
rehypePlugins: Joi.array()
.items(Joi.string())
.items(
Joi.array()
.items(Joi.function().required(), Joi.object().required())
.length(2),
Joi.function(),
)
.default(DEFAULT_OPTIONS.rehypePlugins),
editUrl: Joi.string().uri(),
truncateMarker: Joi.object().default(DEFAULT_OPTIONS.truncateMarker),
Expand Down
13 changes: 10 additions & 3 deletions packages/docusaurus-plugin-content-docs/src/pluginOptionSchema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,27 @@ export const DEFAULT_OPTIONS: PluginOptions = {
export const PluginOptionSchema = Joi.object({
path: Joi.string().default(DEFAULT_OPTIONS.path),
editUrl: Joi.string().uri(),
routeBasePath: Joi.string().default(DEFAULT_OPTIONS.routeBasePath),
routeBasePath: Joi.string().allow('').default(DEFAULT_OPTIONS.routeBasePath),
homePageId: Joi.string().default(DEFAULT_OPTIONS.homePageId),
include: Joi.array().items(Joi.string()).default(DEFAULT_OPTIONS.include),
sidebarPath: Joi.string().default(DEFAULT_OPTIONS.sidebarPath),
docLayoutComponent: Joi.string().default(DEFAULT_OPTIONS.docLayoutComponent),
docItemComponent: Joi.string().default(DEFAULT_OPTIONS.docItemComponent),
remarkPlugins: Joi.array()
.items(
Joi.array().items(Joi.function(), Joi.object()).length(2),
Joi.array()
.items(Joi.function().required(), Joi.object().required())
.length(2),
Joi.function(),
)
.default(DEFAULT_OPTIONS.remarkPlugins),
rehypePlugins: Joi.array()
.items(Joi.string())
.items(
Joi.array()
.items(Joi.function().required(), Joi.object().required())
.length(2),
Joi.function(),
)
.default(DEFAULT_OPTIONS.rehypePlugins),
showLastUpdateTime: Joi.bool().default(DEFAULT_OPTIONS.showLastUpdateTime),
showLastUpdateAuthor: Joi.bool().default(
Expand Down
2 changes: 1 addition & 1 deletion packages/docusaurus-theme-classic/src/themeConfigSchema.js
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ const ThemeConfigSchema = Joi.object({
'themeConfig.navbar.links has been renamed as themeConfig.navbar.items',
}),
items: Joi.array().items(NavbarItemSchema),
title: Joi.string().required(),
title: Joi.string().allow('', null),
logo: Joi.object({
alt: Joi.string(),
src: Joi.string().required(),
Expand Down
8 changes: 4 additions & 4 deletions packages/docusaurus/src/server/configValidation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
*/

import {DocusaurusConfig} from '@docusaurus/types';
import Joi from '@hapi/joi';
import {CONFIG_FILE_NAME} from '../constants';
import Joi from '@hapi/joi';

export const DEFAULT_CONFIG: Pick<
DocusaurusConfig,
Expand Down Expand Up @@ -66,14 +66,14 @@ const ConfigSchema = Joi.object({
src: Joi.string().required(),
async: Joi.bool(),
defer: Joi.bool(),
}).oxor('async', 'defer'),
}),
),
stylesheets: Joi.array().items(
Joi.string(),
Joi.object({
href: Joi.string().uri().required(),
href: Joi.string().required(),
type: Joi.string().required(),
}),
}).unknown(),
),
tagline: Joi.string(),
});
Expand Down

0 comments on commit 2159c4f

Please sign in to comment.