Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix(core): accept boolean attributes in headTags config validation - #12238

#12238
Merged
slorber merged 8 commits into
facebook:mainfacebook/docusaurus:mainfrom
DhineshPonnarasan:fix/headtags-boolean-attributesDhineshPonnarasan/docusaurus:fix/headtags-boolean-attributesCopy head branch name to clipboard
Jul 9, 2026
Merged

fix(core): accept boolean attributes in headTags config validation #12238
slorber merged 8 commits into
facebook:mainfacebook/docusaurus:mainfrom
DhineshPonnarasan:fix/headtags-boolean-attributesDhineshPonnarasan/docusaurus:fix/headtags-boolean-attributesCopy head branch name to clipboard

Conversation

@DhineshPonnarasan

Copy link
Copy Markdown
Contributor

Fixes #12233

Summary

The headTags config validation rejects boolean HTML attribute values like async: true, even though the TypeScript types and renderer already support them.

Root cause

The attribute pattern in configValidation.ts uses Joi.string(), which only accepts string values. This was introduced in the original headTags PR and was not updated when boolean support was added to the types and renderer.

Solution

Change the pattern from Joi.string() to Joi.alternatives().try(Joi.string(), Joi.boolean()), matching the existing pattern used for storage.namespace in the same file.

Testing

Updated the existing validation test to reject non-string/non-boolean values (e.g., numbers) and added a regression test confirming boolean attributes like async: true are now accepted. All 223 config validation tests pass.

…#12120)

The example artifacts were regenerated for the v3.10.1 maintenance
release, which reverted the engine field from '>=24.14' back to
'>=20.0' and left the sandbox node version at '18'.

Update the examples to reflect current maintainer intent:
- Bump engines.node from '>=20.0' to '>=24.14'
  (reapplies PR facebook#11914 change overwritten by PR facebook#11985)
- Bump sandbox.config.json node from '18' to '24'
  (syncs with generateExamples.js updated in PR facebook#12080)
@meta-cla meta-cla Bot added the CLA Signed Signed Facebook CLA label Jul 7, 2026
@netlify

netlify Bot commented Jul 7, 2026

Copy link
Copy Markdown

[V2]

Name Link
🔨 Latest commit 7fd4eb1
🔍 Latest deploy log https://app.netlify.com/projects/docusaurus-2/deploys/6a4fb7d2bceaa300083784bb
😎 Deploy Preview https://deploy-preview-12238--docusaurus-2.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@DhineshPonnarasan DhineshPonnarasan changed the title fix(core): accept boolean attributes in headTags config validation (AI-assisted) fix(core): accept boolean attributes in headTags config validation Jul 8, 2026

@slorber slorber left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't modify examples, that's unrelated to the PR topic: one thing at a time

Comment thread examples/classic-typescript/package.json Outdated
Comment thread examples/classic-typescript/sandbox.config.json Outdated
Comment thread examples/classic-typescript/sandbox.config.json Outdated
Comment thread examples/classic/package.json Outdated
Comment thread examples/classic/sandbox.config.json Outdated
Comment thread examples/classic/sandbox.config.json Outdated
@slorber
slorber merged commit f764082 into facebook:main Jul 9, 2026
36 of 37 checks passed
@slorber slorber added pr: bug fix This PR fixes a bug in a past release. to backport This PR is planned to be backported to a stable version of Docusaurus labels Jul 9, 2026
yamz8 pushed a commit to forgente/docs that referenced this pull request Jul 27, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [@docusaurus/core](https://github.com/facebook/docusaurus) ([source](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus)) | [`3.10.1` → `3.10.2`](https://renovatebot.com/diffs/npm/@docusaurus%2fcore/3.10.1/3.10.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@docusaurus%2fcore/3.10.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@docusaurus%2fcore/3.10.1/3.10.2?slim=true) |
| [@docusaurus/faster](https://github.com/facebook/docusaurus) ([source](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-faster)) | [`3.10.1` → `3.10.2`](https://renovatebot.com/diffs/npm/@docusaurus%2ffaster/3.10.1/3.10.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@docusaurus%2ffaster/3.10.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@docusaurus%2ffaster/3.10.1/3.10.2?slim=true) |
| [@docusaurus/module-type-aliases](https://github.com/facebook/docusaurus) ([source](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-module-type-aliases)) | [`3.10.1` → `3.10.2`](https://renovatebot.com/diffs/npm/@docusaurus%2fmodule-type-aliases/3.10.1/3.10.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@docusaurus%2fmodule-type-aliases/3.10.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@docusaurus%2fmodule-type-aliases/3.10.1/3.10.2?slim=true) |
| [@docusaurus/plugin-content-docs](https://github.com/facebook/docusaurus) ([source](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-plugin-content-docs)) | [`3.10.1` → `3.10.2`](https://renovatebot.com/diffs/npm/@docusaurus%2fplugin-content-docs/3.10.1/3.10.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@docusaurus%2fplugin-content-docs/3.10.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@docusaurus%2fplugin-content-docs/3.10.1/3.10.2?slim=true) |
| [@docusaurus/preset-classic](https://github.com/facebook/docusaurus) ([source](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic)) | [`3.10.1` → `3.10.2`](https://renovatebot.com/diffs/npm/@docusaurus%2fpreset-classic/3.10.1/3.10.2) | ![age](https://developer.mend.io/api/mc/badges/age/npm/@docusaurus%2fpreset-classic/3.10.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@docusaurus%2fpreset-classic/3.10.1/3.10.2?slim=true) |

---

### Release Notes

<details>
<summary>facebook/docusaurus (@&#8203;docusaurus/core)</summary>

### [`v3.10.2`](https://github.com/facebook/docusaurus/blob/HEAD/CHANGELOG.md#3102-2026-07-10)

[Compare Source](facebook/docusaurus@v3.10.1...v3.10.2)

Backport and cherry-pick commits from main for v3.10.2 patch release:

- [fix(bundler): do not import `@swc/html`, fix StackBlitz playground #&#8203;12055](facebook/docusaurus#12055)
- [fix(core): use locale url in site config #&#8203;12054](facebook/docusaurus#12054)
- [fix(theme-classic): remove redundant sidebar label titles #&#8203;11966](facebook/docusaurus#11966)
- [fix(mdx-loader): avoid transforming dotted directory links into asset… #&#8203;11944](facebook/docusaurus#11944)
- [fix(dev-server): for HTTPS, support non-RSA TLS certs #&#8203;12065](facebook/docusaurus#12065)
- [fix(utils): fix `extractLeadingEmoji()` edge cases #&#8203;12100](facebook/docusaurus#12100)
- [fix(gtag.js, faster): Fix StackBlitz, vendor `@types/gtag.js`, upgrade `@swc/html` #&#8203;12080](facebook/docusaurus#12080)
- [fix(create-docusaurus): init template README should use npm commands by default #&#8203;12138](facebook/docusaurus#12138)
- [fix(cli): `docusaurus serve` should pass `--host` to `server.listen()` #&#8203;12127](facebook/docusaurus#12127)
- [fix(core): bump detect-port to v2.1, fix pnpm `trustPolicy` downgrade issue #&#8203;12012](facebook/docusaurus#12012)
- [fix(i18n): complete Spanish translations for theme-common and theme-l… #&#8203;12180](facebook/docusaurus#12180)
- [chore(deps): migrate to `@11ty/gray-matter` #&#8203;12181](facebook/docusaurus#12181)
- [fix(core): fix BaseUrlIssueBanner little security issue #&#8203;12260](facebook/docusaurus#12260)
- [fix(core): accept boolean attributes in headTags config validation #&#8203;12238](facebook/docusaurus#12238)
- [fix(sitemap): don't drop lastmod for an epoch (0) timestamp #&#8203;12212](facebook/docusaurus#12212)
- [fix(utils): preserve author names containing commas in git log parsing #&#8203;12069](facebook/docusaurus#12069)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTEuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE5MS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-on: https://gitea.com/gitea/docs/pulls/466
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Renovate Bot <renovate-bot@gitea.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed Signed Facebook CLA pr: bug fix This PR fixes a bug in a past release. to backport This PR is planned to be backported to a stable version of Docusaurus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

headTags config validation rejects boolean HTML attribute values

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.