- Adding or removing an area field from a schema no longer breaks documents on an external front such as Astro.
AposAreanow renders only schema-backed areas. A missing area no longer throws, and an area orphaned by removing its field from the schema (while its content remains in the document) renders nothing instead of breaking sibling areas in edit mode. Logged-in editors get a diagnostic message in place of an orphaned area; anonymous visitors see nothing.- Editable documents sent to an external front now materialize empty area objects for schema area fields added after the document was created, so they can be edited in context.
apos.util.getManagerOfaccepts a{ log }option to suppress its error log when probing objects that may not have a manager.
- Editors can now control the layout-widget gap through the styles system, both site-wide via a global
layoutGappreset and per widget via agapstyles field. New Layout widget optionclassNameallows for additional CSS class names to be added to the widget Grid container. - Log aposResponse errors server side in the Astro process. Thanks to Harouna Traore.
- The
writeAttachmentsstep now supports per-entry base URL resolution, correctly downloading and writing pretty URL files to the appropriate output directory (e.g.dist/files/). A newattachmentFilteroption ('all'or'prettyOnly') lets you skip regular uploadfs attachments when those are served by a CDN while still including backend-served pretty URL files in the static output. Configurable via thestaticBuild.attachmentFilterintegration option or theAPOS_ATTACHMENT_FILTERenvironment variable.
- Refactor after core changes done to the internal layout data.
- Adds support for static builds. Introduces relevant helpers.
- Add RTL support for Astro applications
- Handle correctly HEAD page requests
- Add RTL support for Astro applications
- Add global styles and widget styles support
- Adds
onBeforeWidgetRenderhook
- Add support for
sluggooptions in theslugifyutil helper andstripAccentsoption to remove accents from characters.
- Refactor
AposAreato accept custom style, class, and attributes, but also awidgetComponentprop. The latter is allowing for custom widget rendering components to be used. This is particularly useful for complex widgets like the Layout widget that need to render the output in particular order/way. - Introduce
LayoutWidget.astroandLayoutColumnWidget.astrocomponents to be used in the project level widget mapping. - Adds new
AposRenderAreaForAstrocomponent, specifically designed to be used to implement the new/api/apos-external-frontend/render-arearoute. This allows section template library previews to work in Astro projects and also enables calling the ApostropheCMS REST APIs with?render-areawhen using Astro on the front end. See the documentation for more information on adding this route to existing projects.
- Adds additional handling for the
@apostrophecms/anchorsmodule to theAposWidget.astrocomponent - Adds handling for project-level widget options, as well as actually passing per-area options to widgets. Can be accessed through the
optionsprop in the widget components. - Add support for
prependMainandappendMainin theaposDataobject, allowing for custom HTML to be injected into the<main>sections of the layout.
- Verify that
Hostheader is correctly formatted.
- Corrected the link to the astro apollo pro starter kit in the documentation.
- Guide developers to our actively supported starter kits.
- Add support for
prependHead,appendHead,prependBody, andappendBodyin theaposDataobject, allowing for custom HTML to be injected into the<head>and<body>sections of the layout.
- Handle deep schema validation errors when rendering widgets, so that a message is displayed in the widget preview instead of a crash.
- Add
util(currently containing onlyslugify) andattachmenthelpers to mimic Apostrophe's Nunjucks helpers.
- Fix duplicate function that breaks project builds.
- Fix a bug when the Astro app can crash due to live widget preview in some cases.
- Add support for decoding the response body needed for some hosting added to the
aposResponse.js.
- The
langattribute of the<html>tag now respects localization.
- The configuration array for headers passed from Apostrophe to the browser has been changed from
forwardHeaderstoincludeResponseHeaderswith BC maintained. - A new configuration option
excludeRequestHeadershas been added to allow exclusion of headers likehostbeing sent from the browser to Apostrophe. - The
README.MDhas been updated with the new configuration options. - Clearer error messages have been added to indicate that either the backend server has not been started, or that the
APOS_EXTERNAL_FRONT_KEYstrings don't match.
- Add support for automated bundles injection in Edit (apos) mode, required for supporting the new core "manifest" builds (when available).
- Prevent the
Connection: Upgradeheader from breaking Astro'sfetchcalls to Apostrophe when hosted in an environment that permits websocket upgrades of existing connections. - Refactored redundant code for building requests with the external front key, etc.
- The
renderWidgetroute will no longer crash if there was an issue getting therender-widgetroute from Apostrophe (like a mandatory field missing), it will respond with a 500 only, with a log message in the console. Thanks to Michelin for contributing this fix.
- Visiting the
/loginpage when already logged in no longer results in an undesired direct response from Apostrophe. Redirects within api routes like the login issued on the Apostrophe side are now sending a redirect response as per Astro endpoints documentation. - Page refreshes no longer alternate between displaying the admin UI and not displaying it with each refresh in certain configurations.
- Thanks to Michelin for collaborating on the solution.
- Change the way we fetch from Apostrophe by using
undicirequestmethod, so as all headers are correctly forwarded. As on latest Node.js versions, headers likeHostare no more forwarded by the regularfetchglobal method.
- Compatible with Astro's
ViewTransitionfeature when editing, via a workaround. Since this workaround imposes a performance penalty (only for editors, not the public), theviewTransitionWorkaroundoption must be set totrueto enable it.
- Documentation fixes only.
- Documentation typo that impacts Linux and other case sensitive systems fixed.
- Fix bug causing pages to crash after refresh if widget grouping is used.
- Fix bug impacting two-column widgets.
- Initial release.