@sveltia/cms 0.56.5 → 0.57.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
@@ -116,16 +116,16 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
116
116
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
117
117
  - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
118
118
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
119
- - So far, 165+ of them, or 330+ including duplicates, have been effectively solved in Sveltia CMS
120
- - Target: 200 by GA; 300, or 500 including duplicates, in the future
121
- - Issues include everything from feature requests to bug reports and [issues closed as stale](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) or without a fundamental solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions)
119
+ - So far, 170+ of them, or 335+ including duplicates, have been effectively solved in Sveltia CMS
120
+ - Target: 200 by GA; 300, or 500 including duplicates, in the future (yes, you read that right)
121
+ - Issues include everything from feature requests to bug reports and [issues closed as stale](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) or without a real solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions)
122
122
  - Many of their [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) are on our table or already implemented in Sveltia CMS
123
123
  - Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
124
124
  - Implementing our own enhancement ideas for every part of the product
125
125
  - Responding to requests from the maintainer’s clients
126
126
  - Making the code clean and maintainable
127
127
 
128
- ![165 Netlify/Decap CMS Issues Solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?2025020215)<br>
128
+ ![170 Netlify/Decap CMS Issues Solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20250210)<br>
129
129
 
130
130
  ## Differentiators
131
131
 
@@ -135,11 +135,11 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the hundreds of
135
135
 
136
136
  - Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design and marketing. You can expect constant improvements to the user experience (UX) and developer experience (DX) across the platform.
137
137
  - The maintainer tries to be as responsive as possible. While there are no guarantees, the typical turnaround time for a bug fix is less than 24 hours.
138
- - Offers a modern, intuitive user interface that utilizes the full viewport, inspired in part by the Netlify CMS v3 prototype.[^1][^178]
138
+ - Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1]
139
139
  - Immersive dark mode is available.[^2] The UI theme follows the user’s system preference by default and can be changed in the application settings.
140
140
  - Comes with touch device support, such as larger buttons for easier tapping. While the UI is not yet optimized for small screens, it should work well with large tablets like iPad Pro or Pixel Tablet. Mobile support and other optimizations such as swipe navigation are planned after the 1.0 release.
141
141
  - Made with [Svelte](https://svelte.dev/), not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common React application crashes.[^113][^129] Best of all, Svelte offers great performance.
142
- - We develop [our own UI library](https://github.com/sveltia/sveltia-ui) to ensure optimal usability without compromising accessibility.
142
+ - We build [our own UI library](https://github.com/sveltia/sveltia-ui) to ensure optimal usability without compromising accessibility.
143
143
  - The in-app Help menu provides all links to useful resources, including release notes, feedback and support.
144
144
  - Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled.
145
145
  - 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]
@@ -147,7 +147,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the hundreds of
147
147
  ### Better performance
148
148
 
149
149
  - Built completely from scratch with [Svelte](https://svelte.dev/) instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast. The compiled code is vanilla JavaScript — you can use it with any framework or static site generator (SSG) that can load static data files during the build process.
150
- - Small footprint: The bundle size is less than 500 KB when minified and [brotlied](https://en.wikipedia.org/wiki/Brotli), which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.7 MB) and Static CMS (2.6 MB),[^57][^64] even though we haven’t implemented some features yet, but rather added many new features. That’s the power of Svelte + [Vite](https://vite.dev/).
150
+ - Small footprint: The bundle size is less than 500 KB when minified and [brotlied](https://en.wikipedia.org/wiki/Brotli), which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.7 MB) and Static CMS (2.6 MB).[^57][^64] This number is remarkable because even though we haven’t implemented some features yet, we have added a lot of new features. That’s the power of Svelte + [Vite](https://vite.dev/).
151
151
  - We have upgraded from Svelte 4 to [Svelte 5](https://svelte.dev/blog/svelte-5-is-alive) to further improve performance, including an even smaller bundle size. A full migration to the Runes reactivity API is underway.
152
152
  - Sveltia CMS is free of technical debt (except for the Moment.js dependency, which will be replaced by Day.js before GA) and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
153
153
  - Uses the GraphQL API for GitHub and GitLab to quickly fetch content at once, so that entries and assets can be listed and searched instantly[^32][^65] (the useless `search` configuration option is therefore ignored). It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets.[^14]
@@ -197,7 +197,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the hundreds of
197
197
 
198
198
  ### Better installation
199
199
 
200
- - Sveltia CMS is built with [Svelte](https://svelte.dev/), and we only publish compiled vanilla JavaScript bundles, so there are no React compatibility issues that might prevent developers from upgrading a project.[^177] We haven’t actually integrated React for custom widgets and other features yet, but anyway, no dependencies will be installed when you [install the app with npm](#installing-with-npm).
200
+ - Sveltia CMS is built with [Svelte](https://svelte.dev/), and we only publish compiled vanilla JavaScript bundles, so there are no React compatibility issues that might prevent developers from upgrading a project for many months.[^177] We haven’t actually integrated React for custom widgets and other features yet, but anyway, no dependencies will be installed when you [install the app with npm](#installing-with-npm).
201
201
  - Sveltia CMS also won’t cause peer dependency conflicts due to legacy third-party React UI libraries.[^175] We build the app using [our own Svelte UI library](https://github.com/sveltia/sveltia-ui) to reduce reliance on third-party dependencies.
202
202
  - The [robots `meta` tag](https://developers.google.com/search/docs/crawling-indexing/robots-meta-tag) is automatically added to HTML to prevent the admin page from being indexed by search engines.[^174] Developers are still encouraged to manually add `<meta name="robots" content="noindex">` to `index.html`, as not all crawlers support dynamically added tags. However, our solution should at least work with Google in case you forget to do so.
203
203
  - Some servers and frameworks are known to remove the trailing slash from the CMS URL (`/admin`) depending on the configuration. In such cases, the config file is loaded from a root-relative URL (`/admin/config.yml`) instead of a regular relative URL (`./config.yml` = `/config.yml`) that results in a 404 Not Found error.[^107]
@@ -311,6 +311,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
311
311
  - A long validation error message is displayed in full, without being hidden behind the field label.[^59]
312
312
  - Any links to other entries will work as expected, with the Content Editor being updated for the other.[^100]
313
313
  - In the Boolean and Select widgets, you don’t have to update a value twice to re-enable the Save button after saving an entry.[^139]
314
+ - `data` can be used as a field name without causing an error when saving the entry.[^180]
314
315
 
315
316
  ### Better content preview
316
317
 
@@ -330,7 +331,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
330
331
  - In other words, in Sveltia CMS, `required: false` makes data input optional, but doesn’t make data output optional.
331
332
  - To omit empty optional fields from data output, use `omit_empty_optional_fields: true` in the [data output options](#controlling-data-output). This is useful if you have data type validations that expect `undefined`.[^156]
332
333
  - 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]
333
- - Leading and trailing spaces in text-type field values are automatically removed when you save an entry.[^37]
334
+ - Leading/trailing whitespaces in text-type field values are automatically removed when you save an entry.[^37]
334
335
  - YAML string folding (maximum line width) is disabled, mainly for framework compatibility.[^119]
335
336
  - DateTime field values in ISO 8601 format are stored in native date/time format instead of quoted strings when the data output is TOML.[^147]
336
337
  - Provides JSON/YAML format options as part of the [data output options](#controlling-data-output), including indentation and quotes.[^155][^9]
@@ -341,6 +342,10 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
341
342
  - Boolean
342
343
  - A required Boolean field with no default value is saved as `false` by default, without raising a confusing validation error.[^45]
343
344
  - An optional Boolean field with no default value is also saved as `false` by default, rather than nothing.[^46]
345
+ - Code
346
+ - The language switcher always appears in the user interface, so it’s easy to spot and change the selected language.
347
+ - More than 300 languages are available, thanks to [Prism](https://prismjs.com/)’s extensive language support.
348
+ - Code fields under a List field work as expected, saving both code and language.[^181]
344
349
  - Color
345
350
  - The widget doesn’t cause scrolling issues.[^128]
346
351
  - The preview shows both the RGB(A) hex value and the `rgb()` function notation.
@@ -480,7 +485,7 @@ However, 100% feature parity is not planned, and some features are still missing
480
485
  - The deprecated client-side implicit grant for the GitLab backend will not be supported, as it has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
481
486
  - The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
482
487
  - The deprecated Date widget will not be supported, as it has already been removed from Decap CMS 3.0. Use the DateTime widget with the `time_format: false` option instead.
483
- - The theme and keymap inline settings of the Code widget will not be supported, and some minor languages may be dropped, as we use the [Prism](https://prismjs.com/)-powered code block functionality in Lexical instead of [CodeMirror](https://codemirror.net/).
488
+ - The theme and keymap inline settings of the Code widget will not be supported, and some languages are dropped, as we use the [Prism](https://prismjs.com/)-powered code block functionality in Lexical instead of [CodeMirror](https://codemirror.net/).
484
489
  - Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
485
490
  - [Undocumented methods](https://github.com/sveltia/sveltia-cms/blob/c69446da7bb0bab7405be741c0f92850c5dddfa8/src/main.js#L14-L37) exposed on the `window.CMS` object will not be implemented. This includes custom backends and custom media libraries, if any. We may support these features in the future, but our implementation would likely be incompatible with Netlify/Decap CMS.
486
491
 
@@ -499,11 +504,10 @@ These limitations are expected to be resolved before the 1.0 release scheduled f
499
504
 
500
505
  | Widget | Status in Sveltia CMS |
501
506
  | --- | --- |
502
- | [Code](https://decapcms.org/docs/widgets/#code) | Not yet implemented. |
503
507
  | [DateTime](https://decapcms.org/docs/widgets/#datetime) | The `date_format` and `time_format` options with Moment.js tokens are not yet supported. Note that [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced [Moment.js](https://momentjs.com/) with [Day.js](https://day.js.org/), and [Decap CMS 3.3.0](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.3.0) made other changes to the widget behaviour; we’ll follow these changes where it makes sense. |
504
508
  | [File](https://decapcms.org/docs/widgets/#file) / [Image](https://decapcms.org/docs/widgets/#image) | Field-specific media folders (beta) and media library options are not yet supported other than `media_library.config.max_file_size` for the default media library. |
505
509
  | [Map](https://decapcms.org/docs/widgets/#map) | Not yet implemented. |
506
- | [Markdown](https://decapcms.org/docs/widgets/#markdown) | Custom components are not yet supported. There is no language selector yet in the built-in `code-block` component. |
510
+ | [Markdown](https://decapcms.org/docs/widgets/#markdown) | Custom components are not yet supported. |
507
511
 
508
512
  ### Features to be implemented after GA
509
513
 
@@ -528,7 +532,7 @@ We plan to provide partial compatibility with [Static CMS](https://github.com/St
528
532
  - Widgets
529
533
  - The KeyValue widget is implemented in Sveltia CMS with the same options.
530
534
  - The UUID widget is also implemented, but with different options.
531
- - The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input`, respectively, in Sveltia CMS. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
535
+ - The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS, respectively. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
532
536
  - The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS before GA. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
533
537
  - Customization
534
538
  - `CMS.registerIcon()` will not be supported, as Sveltia CMS includes the Material Symbols font for [custom collection icons](#using-a-custom-icon-for-a-collection) that doesn’t require manual registration.
@@ -1075,7 +1079,6 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1075
1079
  - Implementing the [remaining Netlify/Decap CMS features](#features-to-be-implemented-after-ga)
1076
1080
  - Tackling even more Netlify/Decap CMS issues, including MDX support,[^122] manual entry sorting,[^125] mobile optimization,[^18] config editor[^10] and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
1077
1081
  - Exploring features that require server-side implementation, including user management (Netlify Identity alternative), roles,[^23] commits without a GitHub or GitLab account (Git Gateway alternative), post locking (like [WordPress](https://codex.wordpress.org/Post_Locking))[^166] and scheduled posts[^167]
1078
- - Considering further [compatibility with Static CMS](#compatibility-with-static-cms)
1079
1082
  - More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
1080
1083
  - AI integrations for image generation and content writing
1081
1084
  - Search enhancements
@@ -1175,7 +1178,7 @@ This software is provided “as is” without any express or implied warranty. W
1175
1178
 
1176
1179
  [^36]: Netlify/Decap CMS [#6325](https://github.com/decaporg/decap-cms/issues/6325)
1177
1180
 
1178
- [^37]: Netlify/Decap CMS [#1481](https://github.com/decaporg/decap-cms/issues/1481)
1181
+ [^37]: Netlify/Decap CMS [#1481](https://github.com/decaporg/decap-cms/issues/1481), [#7398](https://github.com/decaporg/decap-cms/issues/7398)
1179
1182
 
1180
1183
  [^38]: Netlify/Decap CMS [#1984](https://github.com/decaporg/decap-cms/issues/1984)
1181
1184
 
@@ -1451,7 +1454,7 @@ This software is provided “as is” without any express or implied warranty. W
1451
1454
 
1452
1455
  [^174]: Netlify/Decap CMS [#6616](https://github.com/decaporg/decap-cms/issues/6616)
1453
1456
 
1454
- [^175]: Netlify/Decap CMS [#5376](https://github.com/decaporg/decap-cms/issues/5376), [#7380](https://github.com/decaporg/decap-cms/issues/7380)
1457
+ [^175]: Netlify/Decap CMS [#5376](https://github.com/decaporg/decap-cms/issues/5376), [#7203](https://github.com/decaporg/decap-cms/issues/7203), [#7380](https://github.com/decaporg/decap-cms/issues/7380)
1455
1458
 
1456
1459
  [^176]: Netlify/Decap CMS [#6427](https://github.com/decaporg/decap-cms/issues/6427)
1457
1460
 
@@ -1460,3 +1463,7 @@ This software is provided “as is” without any express or implied warranty. W
1460
1463
  [^178]: Netlify/Decap CMS [#2536](https://github.com/decaporg/decap-cms/issues/2536)
1461
1464
 
1462
1465
  [^179]: Netlify/Decap CMS [#1891](https://github.com/decaporg/decap-cms/issues/1891)
1466
+
1467
+ [^180]: Netlify/Decap CMS [#7399](https://github.com/decaporg/decap-cms/issues/7399)
1468
+
1469
+ [^181]: Netlify/Decap CMS [#6254](https://github.com/decaporg/decap-cms/issues/6254)