feat(v2): enable feeds by default in blog plugin (#3842)

* feat: enables feeds by default in blog

* feat(v2): enable feeds by default

committing a failed attempt for review

* feat(v2): enable feeds by default in blog plugin

- allow validation to work with arrays syntax
- using DEFAULT_OPTIONS.feedOptions.type instead

* feat(v2): enable feeds by default in blog plugin

- added documentation for feedOptions

* feat(v2): enable feeds by default in blog plugin

- modified implementation to allow feeds to be disable without error
- added unit test to ensure type: null leads to type: null after
  validation
- added documentation to explain how to disable feed generation
This commit is contained in:
Cindy Gu 2020-12-10 12:35:19 -05:00 committed by GitHub
parent dd8f3257a8
commit 0b05806593
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 46 additions and 10 deletions

View file

@ -14,7 +14,7 @@ import {
} from '@docusaurus/utils-validation';
export const DEFAULT_OPTIONS = {
feedOptions: {},
feedOptions: {type: ['rss', 'atom']},
beforeDefaultRehypePlugins: [],
beforeDefaultRemarkPlugins: [],
admonitions: {},
@ -76,12 +76,20 @@ export const PluginOptionSchema = Joi.object({
DEFAULT_OPTIONS.beforeDefaultRehypePlugins,
),
feedOptions: Joi.object({
type: Joi.alternatives().conditional(
Joi.string().equal('all', 'rss', 'atom'),
{
then: Joi.custom((val) => (val === 'all' ? ['rss', 'atom'] : [val])),
},
),
type: Joi.alternatives()
.try(
Joi.array().items(Joi.string()),
Joi.alternatives().conditional(
Joi.string().equal('all', 'rss', 'atom'),
{
then: Joi.custom((val) =>
val === 'all' ? ['rss', 'atom'] : [val],
),
},
),
)
.allow(null)
.default(DEFAULT_OPTIONS.feedOptions.type),
title: Joi.string().allow(''),
description: Joi.string().allow(''),
copyright: Joi.string(),