feat(theme): add ability to inject data attributes from query-string - possibility to create an iframe/embed variant of a page #9028
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
We should be able to use
/docs/someDoc?docusaurus-data-mode=iframe
and then provide alternate styling for iframe/embedded rendering modeThe system implemented allows you to inject arbitrary data-attribute values in the HTML, inlined (no FOUC / layout shifts expected), as long as they follow the
?docusaurus-data-<key>=<value>
pattern (value can be omitted)Note: it was chosen to allow injecting data attributes over classes because classes would solve the same use case and class injection was more complicated to implement (React-Helmet would erase the injected classes after React hydration).
Test Plan
Preview + CI
The docs dogfood the feature:
Test links
https://deploy-preview-9028--docusaurus-2.netlify.app/docs/styling-layout#data-attributes
Related issues/PRs
#7480 (comment)