apostrophe
Advanced tools
Changelog
3.60.1 (2023-12-06)
findForEditing
where it should have.Changelog
3.60.0 (2023-11-29)
apos-notification--hidden
class will hide the notification, which can be useful when we only care about the event carried by it.insert: [ 'horizontalRule' ]
.
Improve also the UX to focus back the editor after inserting a horizontal rule or a table.render-widget
route now provides an options
property on the widget, so that
schema-level options of the widget are available to the external front end when
rendering a newly added or edited widget in the editor. Note that when rendering a full page,
this information is already available on the parent area: area.options.widgets[widget.type]
lastPublishedAt
property, correcting several bugs relating
to the page tree.lastPublishedAt
wherever
it is missing for existing pages.beforeSend
event for pages and the loading of deferred widgets are now
handled in renderPage
with the proper timing so that areas can be annotated
successfully for "external front" use.home
property etc. Note that the responsibility to avoid passing any nonserializable
or excessively large data in req.data
falls on the developer when choosing to use the
apos-external-front
feature.$t()
to allow translationChangelog
3.59.1 (2023-11-14)
if
and requiredIf
fields inside arrays. With regard to if
, this is a hotfix for a regression introduced in 3.59.0.Changelog
3.59.0 (2023-11-03)
chooseParentPage
to help Apostrophe decide which page is suitable as the _url
of each piece. Beginning with this release, Apostrophe can recognize
when you have chosen to do this via extendMethods
, so that you can call _super()
to fall back to the default implementation without
receiving this warning. The default implementation still just returns the first page found, but always following the
_super()
pattern here opens the door to npm modules that improve
@apostrophecms/piece-page
to do something more
sophisticated by default.newInstance
always returns a reasonable non-null empty value for area and
object fields in case the document is inserted without being passed through
the editor, e.g. in a parked page like the home page. This simplifies
the new external front feature.x-requested-with: AposExternalFront
header and the apos-external-front-key
header.
If both are present and apos-external-front-key
matches the APOS_EXTERNAL_FRONT_KEY
environment variable, then Apostrophe returns JSON in place of a normal page response.
This mechanism is also available for the render-widget
route.type
, metaType
is always included in projections. This helps
ensure that apos.util.getManagerOf()
can be used on any object returned
by the Apostrophe APIs.Changelog
3.58.1 (2023-10-18)
uploadfs
to guarantee users get a fix for a potential security vulnerability in sharp
.
This was theoretically exploitable only by users with permission to upload media to Apostrophenpm audit
warning regarding postcss
. This is not a true vulnerability because only developers
with access to the entire codebase can modify styles passed to postcss
by Apostrophe, but we are working with upstream
developers to determine the best steps to clear the warningtype
to the projection only if there are no exclusions in the projection. Needed to prevent Cannot do exclusion on field in inclusion projection
error.Changelog
3.58.0 (2023-10-12)
type
in the projection even if it is not explicitly listed.areas
query builder now works properly when an array of area names has been specified.array
field type syntax (<
prefix). In order a parent followed field to be available to the widget schema, the area field should follow it. For example, if area follows the root schema title
field via following: ['title']
, any field from a widget schema inside that area can do following: ['<title']
.area
field are now available in custom widget preview Vue components (registered with widget option options.widget = 'MyComponentPreview'
). Those components will also receive additional areaField
prop (the parent area field definition object).docIds
and archivedDocIds
to preserve related docs.update
method to the attachment module, that updates the mongoDB doc and the associated file.http
remote
method to allow receiving the original response from node-fetch
that is a stream.Changelog
3.57.0 2023-09-27
oembetter
to ensure Vimeo starts working again
for everyone with this release. This is necessary because Vimeo stopped
offering oembed discovery meta tags on their video pages.118n
module now ignores non-JSON files within the i18n folder of any module and does not crash the build process.Changelog
3.56.0 (2023-09-13)
bundle
instead. For instance, I have an Apostrophe project called website
. website
is set with two npm workspaces, workspace-a
& workspace-b
. workspace-a
package.json
contains a module named blog
as a dependency. website
can reference blog
as enabled in the Apostrophe modules
configuration.renderPageForModule
by the sendPage
method of all modules has been
factored out to renderPage
, which is no longer deprecated. This provides a convenient override point
for 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
and render
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.Changelog
3.55.1 (2023-09-11)
string
as an exception, rather than
a politely Error
-derived object with a stack
property. Previously this resulted in an error message about the logging
system itself, which was not useful for debugging the original exception.