Releases: alineacms/alinea
v0.9.1
- Fix whereId on Cursor typed as returning a single result but actually
returning multiple - Fix inserting blocks in rich text fields
v0.9.0
-
Reserve Alinea generated properties (#378)
Until now Alinea generated properties that define the content structure as
normal identifiers. This means that in a list a row would contain a "type",
"id" and "index" property while also containing user defined fields. This
had a lot of potential for name clashes: you could choose to name a field
"type" for example. It is also not future-proof as Alinea might want to add
more properties later on. To solve this issue Alinea now reserves all
properties starting with an underscore as internal. It's not needed to
upgrade content files manually. The old format will automatically be picked up
for some time. It's possible to upgrade all files in one go by running the
following, which will write any changes in content back to disk.npx alinea build --fix
When querying content please pay mind that those internal properties are now
accessed by the underscored property and will need to be updated.
This becomes most apparent in getting results out of the Link field.const MyType = Config.type('MyType', { link: Field.link('Link', { fields: { label: Field.text('Label') } }) }) const result = await cms.get(Query(MyType).select(MyType.link)) // before: // EntryReference & {label: string} // ^? {id: string, type: string, ..., url: string, label: string} // after: // EntryLink<{label: string}> // ^? {_id: string, _type: string, ..., url: string, fields: {label: string}}
-
Use of Type.isContainer is now deprecated, use a list of types in contains
instead. -
Use of Type.isHidden is now deprecated, use
hidden
instead.
v0.8.4
- Fix select field not using field options such as width or required.
v0.8.3
- Fix publishing shared fields when the parent paths are not the same.
v0.8.2
- Fix entries showing up under the wrong parent if they had a parent with the
same path name in another root. - Add the option to remove media folders.
v0.8.1
- Export
Entry
fromalinea/core
which was missing in the previous release. - Fix the
includeSelf
option when querying translations.
v0.8.0
-
Two changes that impact how to write config files:
-
Bundle configuration function in
Config
, and fields in aField
namespace
which is exported from thealinea
package (this is optional). -
Deprecate
alinea.meta
style configuration.
This change is applied toSchema
(types
),Workspace
(roots
),
Root
(entries
),Type
(fields
),Document
(fields
) andSelect
fields (options
).To upgrade your config files:
// Before import alinea from 'alinea' const Type = alinea.type('Name', { field: alinea.text('Field'), [alinea.meta]: { contains: ['Page'] } }) // After import {Config, Field} from 'alinea' const Type = Config.type('Name', { contains: ['Page'], fields: { field: Field.text('Field') } })
-
-
Add the mutation API (#374)
This introduces a commit method on CMS instances that can be used to mutate
cms content. It can be used to create, update and delete Entries. -
Add the Query namespace
v0.7.1
- Support entries that were seeded in versions prior to 0.6.4 for backward
compatibility.
v0.7.0
- File and image titles can be edited. A focus point can be chosen for images.
- The exports of the alinea package are restructured. Unless you were using the
now removed namedalinea
export (import {alinea} from 'alinea'
) this should
not be a breaking change. - The
createNextCMS
function is now deprecated and it is recommended to
import it as{createCMS} from 'alinea/next'
instead. - The local database which stores content for editors is now rebuilt on
alinea
version changes. This means breaking changes to the schema will not cause
errors in the browser. - Uploaded file names and paths are now slugified correctly.
v0.6.4
- Improve page seeding in roots with multiple languages. Seeding content is
currently undocumented until it reaches a stable interface.