Apostrophe 3.56.0: npm workspaces support, page render changes, and rich-text-widget updates #4290
BoDonkey
announced in
Release Notes
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Howdy from Apostrophe Central!
This cycle brought some small, but mighty, changes to Apostrophe core. The biggest change is that you can now use the npm workspaces feature with your projects. While optional, this brings multiple advantages including easier dependency management, potentially reduced disk space, and greater consistency in your development and production environments.
While the full implementation of headless contextual editing is still a bit farther down the product roadmap, page rendering using templating engines other than Nunjucks just got a little easier. For brave souls who want to roll their own SSR (Server-Side Rendering) with React or another frontend framework, the primary method for sending rendered HTML in response to a request has been factored out for easy overrides. See the changelog below for more details.
The rich-text-widget got two new tasks to ease cleanup from early versions of our support for inline images in the rich text editor. In some cases, rich text content could be malformed, containing extra paragraph tags, or incorrect placement of figure text. These tasks help you correct this more quickly. Additionally, the widget has been improved, allowing configuration options for custom Tiptap extensions on a per-area basis. Stay tuned for a tutorial on creating your own rich-text-widget extensions that use this feature!
Since our last note we also had an off-cycle hotfix release. This hotfix improved the output of the Apostrophe structured logging to provide additional information that was previously obscured in some cases.
Remember,
npm update
gets you the latest and greatest right in your project!This next cycle should see the release of the new import/export module to allow the transfer of completely intact documents between sites. As always, we love to get feedback on past or future features in our Discord server and on our Product Roadmap.
Apostrophe 3.56.0
Adds
bundle
instead. For instance, I have an Apostrophe project calledwebsite
.website
is set with two npm workspaces,workspace-a
&workspace-b
.workspace-a
package.json
contains a module namedblog
as a dependency.website
can referenceblog
as enabled in the Apostrophemodules
configuration.renderPageForModule
by thesendPage
method of all modules has beenfactored out to
renderPage
, which is no longer deprecated. This provides a convenient override pointfor those who wish to substitute something else for Nunjucks or just wrap the HTML in a larger data
structure. For consistent results, one might also choose to override the
renderWidget
andrender
methods of the
@apostrophecms/area
module, which are used to render content while editing.Thanks to Michelin for their support of this work.
@apostrophecms/rich-text-widget:lint-fix-figure
task to wrap text nodes in paragraph tags when next to figure tags. Figure tags are not valid children of paragraph tags.@apostrophecms/rich-text-widget:remove-empty-paragraph
task to remove empty paragraphs from all existing rich-texts.Hotfix 3.55.1 (2023-09-11)
Fixes
string
as an exception, rather thana politely
Error
-derived object with astack
property. Previously this resulted in an error message about the loggingsystem itself, which was not useful for debugging the original exception.
Pro modules
@apostrophecms-pro/advanced-permission
1.6.3This module provides more granular control over content permission. It allows the creation of custom groups with proscribed abilities and the ability to assign users to as few or as many groups as desired. Users and groups can also be assigned per-document and per-locale permissions allowing for fine control of who can edit and publish any document. Contact us or visit our new pricing page to learn more.
Adds
importExport
options to prevent groups from being imported and exported by a forthcoming module.Beta Was this translation helpful? Give feedback.
All reactions