Docusaurus: ValidationError raised for empty or missing navbar.title

Created on 24 Jul 2020  路  5Comments  路  Source: facebook/docusaurus

馃悰 Bug Report

The following errors were observed after upgrading to alpha 59:

  • ValidationError: "navbar.title" is not allowed to be empty
  • ValidationError: "navbar.title" is required

Currently, none of our D2 sites use navbar.title as we rely heavily on our logos to identify our sites. I suspect the same might be true for other D2 sites listed under Showcase.

Have you read the Contributing Guidelines on issues?

Yes.

To Reproduce

(Write your steps here:)

  1. Upgrade to alpha 59
  2. Attempt to start dev server with an empty navbar.title value or missing navbar.title key.

Expected behavior

I expect navbar.title to be optional and/or accept an empty string value.

(Write what you thought would happen.)

Actual Behavior

The following errors were observed:

  • ValidationError: "navbar.title" is not allowed to be empty
  • ValidationError: "navbar.title" is required

(Write what happened. Add screenshots, if applicable.)

Your Environment

  • Docusaurus version used: alpha.59
  • Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Chrome 84.0.4147.89
  • Operating system and version (desktop or mobile): Mac OSX 10.15.6

Reproducible Demo

(Paste the link to an example repo, including a siteConfig.js, and exact instructions to reproduce the issue.)

bug needs triage

Most helpful comment

This is a mistake for which we'll release a fix soon.

@sserrata We use proper commit messages already and lerna-changelog to generate our changelog. This change does appear in the changelog under "validation", as we started validating user-provided site config, theme config, plugin option config in this release.

I'm sorry this has been a breaking change for you in practice. BTW, the title has always been documented as a required field (https://v2.docusaurus.io/docs/docusaurus.config.js#title)

All 5 comments

We're in the same boat, Navbar's implementation explicitly allows to hide the title by setting it to null but the new config validation logic requires it to be a non-empty string.

Thanks, I've opened a PR to allow navbar.title to accept empty string, null or undefined (so the field is optional now).
Feel free to let me know if there's anything else I should change.

Thanks @teikjun, the change looks good to me.

On a related note, I wanted to offer some feedback or a suggestion. The title: Joi.string().required() change wasn't mentioned anywhere in the release notes - at least, I didn't spot it. A question for the maintainers: have you considered adding a tool like commitizen to your toolchain to help with versioning and changelog?

This is a mistake for which we'll release a fix soon.

@sserrata We use proper commit messages already and lerna-changelog to generate our changelog. This change does appear in the changelog under "validation", as we started validating user-provided site config, theme config, plugin option config in this release.

I'm sorry this has been a breaking change for you in practice. BTW, the title has always been documented as a required field (https://v2.docusaurus.io/docs/docusaurus.config.js#title)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nebrelbug picture nebrelbug  路  3Comments

ericnakagawa picture ericnakagawa  路  3Comments

microbouji picture microbouji  路  3Comments

chandankumar4 picture chandankumar4  路  3Comments

NikitaIT picture NikitaIT  路  3Comments