@sveltia/cms 0.27.2 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -27,7 +27,8 @@ Our goal is to make it a viable successor to Netlify CMS, expand the Git-based h
27
27
  While we are fixing reported bugs as fast as we can, usually within 24 hours, the overall progress may be slower than you think. The thing is, it’s not just a personal project of [@kyoshino](https://github.com/kyoshino), but also involves different kinds of activities:
28
28
 
29
29
  - Ensuring maximum compatibility with existing versions of Netlify/Decap CMS
30
- - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far 75+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
30
+ - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far 80+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
31
+ - Responding to user feedback
31
32
  - Implementing our own enhancement ideas
32
33
 
33
34
  At this point, **we are on track to ship version 1.0 in Q3 2024**. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates.
@@ -67,6 +68,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
67
68
  - In addition to a streamlined workflow, it offers great performance by loading files natively through the browser rather than using a slow, ad hoc REST API.
68
69
  - It also avoids a number of issues, including the 30 MB file size limit[^51], an unknown error with `publish_mode`[^75], and an unused `logo_url`[^49].
69
70
  - Eliminates some workflow disruptions in the Content Editor:
71
+ - A backup of an entry draft is automatically created without interruption by a confirmation dialog. It can then be reliably restored without unexpected overwriting[^85].
70
72
  - Click once (the Save button) instead of twice (Publish > Publish now) to save an entry.
71
73
  - The editor closes automatically when an entry is saved.
72
74
  - You can upload multiple assets at once[^5].
@@ -77,6 +79,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
77
79
  - Search for entries and assets: `Ctrl+F` (Windows/Linux) or `Command+F` (macOS)
78
80
  - Create a new entry: `Ctrl+E` (Windows/Linux) or `Command+E` (macOS)
79
81
  - Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
82
+ - Cancel entry editing: `Escape`
80
83
  - Never miss out on the latest features and bug fixes by being notified when an update to the CMS is available[^31]. Then update to the latest version with a single click[^66].
81
84
 
82
85
  ### Better accessibility
@@ -115,6 +118,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
115
118
  - Raises a validation error instead of failing silently if the `single_file` structure is used and a required field is not filled in any of the locales[^55].
116
119
  - [Entry-relative media folders](https://decapcms.org/docs/collection-folder/#media-and-public-folder) can be used in conjunction with the `multiple_folders` i18n structure[^21].
117
120
  - Boolean fields are updated in real time between locales like other widgets to avoid confusion[^35].
121
+ - Relation fields with i18n enabled won’t trigger a change in content draft status when you start editing an existing entry[^84].
118
122
  - Solves problems with Chinese, Japanese and Korean (CJK) [IME](https://en.wikipedia.org/wiki/Input_method) text input in the rich text editor for the Markdown widget[^54].
119
123
  - You can use the `{{locale}}` template tag in the [`preview_path`](https://decapcms.org/docs/configuration-options/#preview_path) collection option to provide site preview links for each language[^63].
120
124
  - You can [localize entry slugs](#localizing-entry-slugs) while linking the localized files[^80], thanks to the support for Hugo’s `translationKey`[^81].
@@ -123,6 +127,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
123
127
 
124
128
  - Supports a [JSON configuration file](#providing-a-json-configuration-file) that can be generated for bulk or complex collections[^60].
125
129
  - You can choose a [custom icon for each collection](#using-a-custom-icon-for-a-collection)[^3].
130
+ - You can [add dividers to the collection list](#adding-dividers-to-the-collection-list).
126
131
  - Assets stored in a [per-collection media folder](#using-a-custom-media-folder-for-a-collection) can be displayed next to the entries.
127
132
  - Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
128
133
  - You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
@@ -142,6 +147,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
142
147
 
143
148
  ### Better data output
144
149
 
150
+ - The keys in generated JSON/TOML/YAML content are always sorted according to the order of configured fields, making Git commits clean and consistent[^86].
145
151
  - For data consistency, Boolean, List (see below) and other fields are always saved as a proper value, such as an empty string or an empty array, rather than nothing, even if it’s optional or empty.
146
152
  - Leading and trailing spaces in text-type field values are automatically removed when you save an entry[^37].
147
153
  - JSON/TOML/YAML data is saved with a new line at the end of the file to prevent unnecessary changes being made to the file[^11][^69].
@@ -189,6 +195,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
189
195
  - Markdown, String and Text
190
196
  - A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
191
197
  - Relation and Select
198
+ - If a dropdown list has options with long wrapping labels, they won’t overlap with the next option[^83].
192
199
  - When there are 5 or fewer options, the UI switches from a dropdown list to radio buttons (single-select) or checkboxes (multi-select) for faster data entry[^61].
193
200
  - String and Text
194
201
  - Supports the `minlength` and `maxlength` options, which allow developers to specify the minimum and maximum number of characters required for input without having to write a custom regular expression with the `pattern` option. A character counter is available when one of the options is given, and a user-friendly validation error is displayed if the condition is not met.
@@ -237,7 +244,6 @@ These limitations are expected to be resolved before GA:
237
244
  | Configuration | The application UI locales are only available in English and Japanese. Comprehensive config validation is not yet implemented. |
238
245
  | Media Libraries | Cloudinary and Uploadcare are not yet supported. |
239
246
  | Workflow | Editorial Workflow and Open Authoring are not yet supported. |
240
- | Content Editor | Auto-saving a draft entry is not yet implemented. |
241
247
  | Collections | Nested collections are not yet supported. |
242
248
  | Widgets | Custom widgets are not yet supported. See the table below for other limitations. |
243
249
  | Customizations | Custom previews, custom formatters and event subscriptions are not yet supported. |
@@ -248,7 +254,7 @@ These limitations are expected to be resolved before GA:
248
254
  | DateTime | The `date_format` and `time_format` options with Moment.js tokens are not yet supported. Note: Decap CMS 3.1 has replaced Moment.js with [Day.js](https://day.js.org/); we’ll follow the change soon. |
249
255
  | File/Image | Field-specific media folders and media library options are not yet supported other than `media_library.config.max_file_size` for the default media library. |
250
256
  | Map | Not yet supported. |
251
- | Markdown | Editor components are not yet supported. |
257
+ | Markdown | Editor components, including built-in `image` and `code-block` as well as custom components, are not yet supported. |
252
258
 
253
259
  If we have missed any other features, let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues).
254
260
 
@@ -277,6 +283,7 @@ If we have missed any other features, let us know by [filing an issue](https://g
277
283
 
278
284
  ### After the 1.0 release
279
285
 
286
+ - Compatibility with Static CMS, a community fork of Netlify CMS
280
287
  - Roles[^23]
281
288
  - Config editor[^10]
282
289
  - Mobile support[^18]
@@ -405,6 +412,21 @@ You can have an icon for each collection for easy identification in the collecti
405
412
  folder: data/tags/
406
413
  ```
407
414
 
415
+ ### Adding dividers to the collection list
416
+
417
+ Sveltia CMS allows developers to add dividers to the collection list to distinguish different types of collections. To do this, insert a fake collection with the `divider: true` option. In VS Code, you may get a validation error if `config.yml` is treated as a “Netlify YAML config” file. You can work around this by adding a random `name` and an empty `files`:
418
+
419
+ ```yaml
420
+ collections:
421
+ - name: products
422
+ ...
423
+ - divider: true
424
+ name: d1 # d2, d3, etc.
425
+ files: []
426
+ - name: pages
427
+ ...
428
+ ```
429
+
408
430
  ### Using a custom media folder for a collection
409
431
 
410
432
  This is actually not new in Sveltia CMS but rather an _undocumented_ feature in Netlify/Decap CMS[^4]. You can specify media and public folders for each collection that override the [global media folder](https://decapcms.org/docs/configuration-options/#media-and-public-folders). Well, it’s [documented](https://decapcms.org/docs/collection-folder/#media-and-public-folder), but that’s probably not what you want.
@@ -759,4 +781,8 @@ This software is provided “as is” without any express or implied warranty. W
759
781
  [^80]: Netlify/Decap CMS [#5493](https://github.com/decaporg/decap-cms/issues/5493), [#6600](https://github.com/decaporg/decap-cms/issues/6600)
760
782
  [^81]: Netlify/Decap CMS [#4645](https://github.com/decaporg/decap-cms/issues/4645)
761
783
  [^82]: Netlify/Decap CMS [#6500](https://github.com/decaporg/decap-cms/issues/6500)
784
+ [^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
785
+ [^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142)
786
+ [^85]: Netlify/Decap CMS [#5055](https://github.com/decaporg/decap-cms/issues/5055), [#5470](https://github.com/decaporg/decap-cms/issues/5470), [#6989](https://github.com/decaporg/decap-cms/issues/6989)
787
+ [^86]: Netlify/Decap CMS [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
762
788
  [^100]: Netlify/Decap CMS [#5656](https://github.com/decaporg/decap-cms/issues/5656), [#5837](https://github.com/decaporg/decap-cms/issues/5837), [#5972](https://github.com/decaporg/decap-cms/issues/5972), [#6476](https://github.com/decaporg/decap-cms/issues/6476), [#6516](https://github.com/decaporg/decap-cms/issues/6516), [#6930](https://github.com/decaporg/decap-cms/issues/6930), [#6965](https://github.com/decaporg/decap-cms/issues/6965), [#7080](https://github.com/decaporg/decap-cms/issues/7080), [#7105](https://github.com/decaporg/decap-cms/issues/7105), [#7106](https://github.com/decaporg/decap-cms/issues/7106), [#7119](https://github.com/decaporg/decap-cms/issues/7119), [#7176](https://github.com/decaporg/decap-cms/issues/7176), [#7194](https://github.com/decaporg/decap-cms/issues/7194) — These `removeChild` crashes are common in React apps and seem to be caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).