apostrophe
Advanced tools
Changelog
4.11.2 (2024-12-29)
Changelog
4.11.1 (2024-12-18)
baseUrl
must be set for a successful experience, and the module level baseUrl
was set earlier. No other changes.Changelog
4.11.0 (2024-12-18)
area
field, warn the developer if widgets
is not nested in options
.presetColors
array as selectable values.dynamicFocus
). When set to true
, the focusable elements are recalculated on each cycle step.tabindex
on AposToggle
component. A new prop disableFocus
can be set to false
to disable the focus on the toggle button. It's enabled by default.addContextOperation
, an option type
can now be passed and can be modal
(default) or event
, in this case it does not try to open a modal but emit a bus event using the action as name.postcss-viewport-to-container-toggle
plugin anymore to avoid UI bugs.Changelog
4.10.0 (2024-11-20)
widges/module.js
) and dot-folders (e.g. .DS_Store
).express-bearer-token
dependency to address a low-severity npm audit
warning regarding noncompliant cookie names and values. Apostrophe
did not actually use any noncompliant cookie names or values, so there was no vulnerability in Apostrophe.renderPermalinks
and renderImages
methods of the @apostrophecms/rich-text
module now correctly resolve the final URLs of page links and inline images in rich text widgets, even when the user has editing privileges. Formerly this was mistakenly prevented by logic intended to preserve the editing experience. The editing experience never actually relied on the
rendered output.template.append
and template.prepend
. Use when: 'hmr:public'
or when: 'hmr:apos'
that will be evaluated against the current asset options.hmr
configuration.options.modulePreloadPolyfill
(default true
) to allow disabling the polyfill preload for e.g. external front-ends.bundleMarkup
to the data sent to the external front-end, containing all markup for injecting Apostrophe UI in the front-end.GET
REST APIs now support ?render-areas=inline
. When this parameter is used, an HTML rendering of each widget is added to that specific widget in each area's items
array as a new _rendered
property. The existing ?render-areas=1
parameter is still supported to render the entire area as a single _rendered
property. Note that this older option also causes items
to be omitted from the response.postcss-viewport-to-container-toggle
plugin in the webpack config.vue-color
directly in Apostrophe rather than as a dependencytinycolor2
to @ctrl/tinycolor
Changelog
4.9.0 (2024-10-31)
data-apos-focus-priority
attribute that prioritizes them inside the focusable elements list.data-apos-focus-priority
appears or the max retry threshold is reached.before: "module-name"
property in their configuration to initialize them before another module, bypassing the normal
order implied by defaults.js
and app.js
.select
and checkboxes
fields that implement dynamic choices can now take into account the value of other fields on the fly, by specifying
a following
property with an array of other field names. Array and object subfields can access properties of the parent document
by adding a <
prefix (or more than one) to field names in following
to look upwards a level. Your custom method on the server side will
now receive a following
object as an additional argument. One limitation: for now, a field with dynamic choices cannot depend on another field
with dynamic choices in this way.shortcut
property to display breakpoints out of the dropdown.[data-apos-refreshable]
.isActive
state to context menu items. Also adds possibility to add icons to context menu items.vh
and vw
values on breakpoint preview mode.when
condition with possible values hmr
, prod
, and dev
. Modules should explicitely register their components with the same when
value and the condition should be met to inject the component.bundler
registration condition. It's in use only when registering a component and will be evaluated on runtime. The value should match the current build module (webpack
or the external build module alias).@apostrophecms/asset:reset
to reset the asset build cache and all build artifacts.@apostrophecms/asset
module to enable bundling via build modules.apos.asset.devServerUrl()
nunjucks helper to get the (bundle) dev server URL when available.options.hmr
that accepts public
(default), apos
or false
to enable HMR for the public bundle or the admin UI bundle or disable it respectively. This configuration works only with external build modules that support HMR.options.hmrPort
that accepts an integer (default null
) to specify the HMR WS port. If not specified, the default express port is used. This configuration works only with external build modules that support HMR WS.options.productionSourceMaps
that accepts a boolean (default false
) to enable source maps in production. This configuration works only with external build modules that support source maps.@import
. The Sass team has stated there will be a two-year transition period before the feature is actually removed. The use of @import
is common practice in the Apostrophe codebase and in many project codebases. We will arrange for an orderly migration to the new @use
directive before Sass 3.x appears.mergeConfiguration
, autodetectBundles
, lintModules
, nestedModuleSubdirs
and testDir
are now async.express.getSessionOptions
is now async.AposAreaMenu.vue
component to set the disabled
attribute to true
if the max number of widgets have been added in an area with expanded: true
.pnpm: true
option in app.js
is no longer breaking the application.vue-template-compiler
dependency.@apostrophecms/global
doc and more generally all singletons.isEqual
method of area
field type to avoid comparing an area having temporary properties with one having none.withRelationships
an dot notion.
If this is done in combination with a projection, this projection is updated to add the id storage fields of the needed relationships for the whole withRelationships
path.sendPage
call and there is no current "in context" page or piece.Changelog
4.7.2 and 4.8.1 (2024-10-09)
uploadfs
options are present in some specific cloud environments e.g. when using Azure Blob Storage.Changelog
4.7.2 and 4.8.1 (2024-10-09)
uploadfs
options are present in some specific cloud environments e.g. when using Azure Blob Storage.Changelog
4.8.0 (2024-10-03)
@apostrophecms/asset
module's new breakpointPreviewMode
option. Once enabled, the asset build process will duplicate existing media queries as container queries. There are some limitations in the equivalence between media queries and container queries. You can refer to the CSS @container at-rule documentation for more information. You can also enable breakpointPreviewMode.debug
to be notified in the console when the build encounters an unsupported media query.img
tags pointing to existing images, you can now import them all quickly. When supplying the rich text widget object, include an import
property with an html
subproperty, rather than the usual content
property. You can optionally provide a baseUrl
subproperty as well. Any images present in html
will be imported automatically and the correct figure
tags will be added to the new rich text widget, along with any other markup acceptable to the widget's configuration.newInstance
found in Apostrophe, e.g. for widgets, array items, relationship fields and documents themselves, have been consolidated in one implementation. The same code is now reused both on the front and the back end, ensuring the same result without the need to introduce additional back end API calls.@apostrophecms/page
module APIs no longer allow a page to become a child of itself. Thanks to Maarten Marx for reporting the issue.<use>
tags granted their xlink:href
property is a local reference and begins with the #
character. This improves SVG support while mitgating XSS vulnerabilities.piecesFilters
feature when using dynamic choices.title
as titleField
value by default (consistent with the Slat list).Changelog
4.7.1 (2024-09-20)
_defaults
.Changelog
4.7.0 (2024-09-05)
big-upload-client
module can now be used to upload very large files to any route that uses the new big-upload-middleware
.skipReplace
for apos.doc.changeDocIds
method to skip the replacing of the "old" document in the database.@apostrophecms/i18n
module now exposes a locales
HTTP GET API to aid in implementation of native apps for localized sites.menuId
so that interested components can listen to their opening/closing.AposWidget
component through props.replaces
(boolean, false
by default) option to the context operation definition (registered via apos.doc.addContextOperation()
) to allow the operation to require a replace confirmation before being executed. The user confirmation results in the Editor modal being closed and the operation being executed. The operation is not executed if the user cancels the confirmation.checkedTypes
via the pages body toolbar operations (e.g. 'batch') to the modal.uploadfs
dependency to ensure .tar.gz
, .tgz
and .gz
files uploaded to S3 download without double-gzipping.
This resolves the issue for new uploads.debounce-async
dependencyAposSlatLists
so that elements are properly reordered on drag