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.
The related pull request containing the changes: #1520
This adds rendering for page assets.
Rendering flow
The rendering happens in these steps (for LandingPage):
content/pages/landing-page.json
(assetImage entities are by default in included part of the returned asset).
<body>
)<head>
)<StaticPage>
component, which is moved under PageBuilder directory.In addition to the landing page, there are similar renderings made for TermsOfServicePage and PrivacyPolicyPage
For generic page assets, the routing now contains CMSPage component (with route:
/p/<page-asset-id>/
)Markdown
Block component can contain a key text, which has markdown content.
This solution uses Unified and it's plugin ecosystem to render that markdown as React components.
Unified/rehype is also used by references like Gatsby.
We use these versions at this point:
"rehype-react": "^6.2.1",
"rehype-sanitize": "^4.0.0",
"remark-parse": "^9.0.0",
"remark-rehype": "^8.1.0",
"unified": "^9.2.2",
Taking an update from upstream
This is causing a major version change - and you need to check the code in this PR if you experience merge conflicts. You also need to make choices about whether or not you keep your current pages (e.g. LandingPage) or start using Pages for that too.
Most of the new code changes of this PR are inside:
src/containers/PageBuilder/
src/containers/LandingPage/
is swapped to use the Pages featuresrc/containers/TermsOfSerivcePage/
src/containers/PrivacyPolicyPage/
src/containers/AboutPage/