@sveltia/cms 0.53.4 → 0.53.6

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
@@ -4,8 +4,6 @@ Sveltia CMS is a Git-based lightweight headless CMS under active development as
4
4
 
5
5
  The free, open source alternative to Netlify/Decap CMS is now in public beta, turbocharged with great UX, performance, i18n support and so many more enhancements.
6
6
 
7
- Welcome to the only Netlify CMS successor you can bank on!
8
-
9
7
  ![Screenshot: Open Source Git-based Headless CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-1-20240507.webp)<br>
10
8
 
11
9
  ![Screenshot: Fast and Lightweight; Modern UX with Dark Mode](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-2-20240507.webp)<br>
@@ -102,7 +100,7 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
102
100
  ### Our goals
103
101
 
104
102
  - Making Sveltia CMS a viable, definitive successor to Netlify CMS
105
- - Empowering small businesses and individuals who need a simple, free, yet powerful CMS solution
103
+ - Empowering small businesses and individuals who need a simple, free, yet powerful, high-quality CMS solution
106
104
  - Emerging as the leading open source offering in the Git-based CMS market
107
105
  - Extending its capabilities as digital asset management (DAM) software
108
106
  - Showcasing the power of Svelte and UX engineering
@@ -114,10 +112,11 @@ Sveltia CMS is currently in **beta** and version 1.0 is expected to ship in **ea
114
112
  While we fix reported bugs as quickly as possible, usually within 24 hours, our 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 that require considerable effort:
115
113
 
116
114
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
115
+ - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
117
116
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
118
- - So far, 155+ of them, or 305+ including duplicates, have been effectively solved in Sveltia CMS
117
+ - So far, 160+ of them, or 305+ including duplicates, have been effectively solved in Sveltia CMS
119
118
  - Target: 300 or all relevant, fixable and worthwhile issues in the future; 500 including duplicates
120
- - Note: Issues include feature requests, bug reports, [stale issues](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) and [discussions](https://github.com/decaporg/decap-cms/discussions)
119
+ - Note: Issues include feature requests, bug reports, [“closed as stale issues](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) and [discussions](https://github.com/decaporg/decap-cms/discussions)
121
120
  - 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
122
121
  - Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
123
122
  - Implementing our own enhancement ideas for every part of the product
@@ -128,12 +127,12 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
128
127
 
129
128
  ## Differentiators
130
129
 
131
- We are working hard to create a **tremendously better alternative to Netlify CMS and Decap CMS** by improving everything. Here’s what makes Sveltia CMS different. Look how damn serious we are!
130
+ We hope Netlify/Decap CMS users will be pleased and surprised by the hundreds of small and large improvements we have made. Here’s what makes Sveltia CMS different. Look how serious we are!
132
131
 
133
132
  ### Better UX
134
133
 
135
134
  - 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.
136
- - 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 6 hours.
135
+ - 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.
137
136
  - Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
138
137
  - We develop [our own UI library](https://github.com/sveltia/sveltia-ui) to ensure optimal usability without compromising accessibility.
139
138
  - 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 shortly after the 1.0 release.
@@ -145,9 +144,9 @@ We are working hard to create a **tremendously better alternative to Netlify CMS
145
144
  ### Better performance
146
145
 
147
146
  - Built completely from scratch with Svelte 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.
148
- - Small footprint: The bundle size is less than 500 KB when minified and brotlied, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (2.6 MB)[^57][^64], even though we haven’t implemented some features yet, but rather implemented many new features. That’s the power of Svelte + Vite.
149
- - 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 in progress.
150
- - Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
147
+ - 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.
148
+ - 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.
149
+ - Sveltia CMS is free of technical debt (except for Moment.js, which will soon be replaced by Day.js) and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
151
150
  - 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 ignored). It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets[^14].
152
151
  - Saving entries and assets to GitHub is also much faster thanks to the [GraphQL mutation](https://github.blog/changelog/2021-09-13-a-simpler-api-for-authoring-commits/).
153
152
  - Our [local repository workflow](#working-with-a-local-git-repository) utilizes the modern File System Access API to read and write files natively through the web browser, rather than using a slow, ad hoc REST API through a proxy server.
@@ -173,7 +172,7 @@ We are working hard to create a **tremendously better alternative to Netlify CMS
173
172
  ### Better accessibility
174
173
 
175
174
  - Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17][^67].
176
- - Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver. An announcement is read out when you open another page.
175
+ - Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver. An announcement is read out when you navigate to another page.
177
176
  - The rich text editor is built with [Lexical](https://lexical.dev/), which is said to follow accessibility best practices. The [Dragon NaturallySpeaking support](https://lexical.dev/docs/packages/lexical-dragon) is enabled.
178
177
  - Ensures sufficient contrast between the foreground text and background colours.
179
178
  - Enabled and disabled buttons can be clearly distinguished[^105].
@@ -241,6 +240,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
241
240
  - 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].
242
241
  - Fields in non-default locales are validated as expected[^13].
243
242
  - No internal error is thrown when changing the locale[^103].
243
+ - Duplicating an entry duplicates all locale content, not just the default locale[^170].
244
244
 
245
245
  ### Better collections
246
246
 
@@ -352,7 +352,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
352
352
  - Users can preview variable types without having to register a preview template[^42].
353
353
  - It’s possible to omit `fields` in a variable type object[^163]. In that case only the `typeKey` (default: `type`) is saved in the output.
354
354
  - Markdown
355
- - The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes[^71][^72][^73][^111], lost formatting when pasting[^124], backslash injections[^53], dropdown visibility[^70], and text input difficulties with IME[^54].
355
+ - The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes[^71][^72][^73][^111], lost formatting when pasting[^124], an extra line break when pasting[^169], backslash injections[^53], dropdown visibility[^70], and text input difficulties with IME[^54].
356
356
  - The default editor mode can be set by changing the order of the `modes` option[^58]. If you want to use the plain text editor by default, add `modes: [raw, rich_text]` to the field configuration.
357
357
  - A combination of bold and italic doesn’t create a confusing 3-asterisk markup[^160]. In our editor, bold is 2 asterisks and italic is an underscore.
358
358
  - The built-in `image` component can be inserted with a single click.
@@ -472,7 +472,7 @@ However, 100% feature parity is not planned, and some features are still missing
472
472
 
473
473
  ### Features to be implemented before GA
474
474
 
475
- These limitations are expected to be resolved before the 1.0 release:
475
+ These limitations are expected to be resolved before the 1.0 release scheduled for early 2025:
476
476
 
477
477
  | Feature | Status in Sveltia CMS |
478
478
  | --- | --- |
@@ -481,7 +481,7 @@ These limitations are expected to be resolved before the 1.0 release:
481
481
  | Localization | The application UI is only available in English and Japanese at this time. |
482
482
  | Media Libraries | [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) are not yet supported. |
483
483
  | Widgets | [Custom widgets](https://decapcms.org/docs/custom-widgets/) are not yet supported. See the table below for other limitations. |
484
- | Customizations | [Custom previews](https://decapcms.org/docs/customization/) and [event subscriptions](https://decapcms.org/docs/registering-events/) are not yet supported. |
484
+ | Customization | [Custom previews](https://decapcms.org/docs/customization/) and [event subscriptions](https://decapcms.org/docs/registering-events/) are not yet supported. |
485
485
 
486
486
  | Widget | Status in Sveltia CMS |
487
487
  | --- | --- |
@@ -489,7 +489,7 @@ These limitations are expected to be resolved before the 1.0 release:
489
489
  | [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. |
490
490
  | [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. |
491
491
  | [Map](https://decapcms.org/docs/widgets/#map) | Coming soon. |
492
- | [Markdown](https://decapcms.org/docs/widgets/#markdown) | Custom components are not yet supported. There is no language selection and syntax highlighting yet in the built-in `code-block` component. |
492
+ | [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. |
493
493
 
494
494
  ### Features to be implemented after GA
495
495
 
@@ -503,14 +503,21 @@ Due to the complexity, the following features are planned for after the 1.0 rele
503
503
 
504
504
  We plan to provide partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. This README will be updated with more details as our development progresses.
505
505
 
506
- - Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) to sortable fields, view filters/groups, List widget, etc. while Sveltia CMS follows Netlify/Decap CMS, so you should review your configuration carefully.
507
- - The KeyValue widget is implemented in Sveltia CMS with the same options.
508
- - The UUID widget is also implemented, but with different options.
509
- - The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
510
- - The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS soon. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
511
- - Directory navigation in the Asset Library is partially supported in Sveltia CMS. If you define [collection-specific `media_folder`s](#using-a-custom-media-folder-for-a-collection), these folders will be displayed in the Asset Library and Select File/Image dialog. Display of subfolders within a configured folder will be implemented soon. ([#301](https://github.com/sveltia/sveltia-cms/issues/301))
512
- - `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.
513
- - The `enforce_required_non_default` i18n option will not be supported. Sveitia CMS enforces required fields in all locales by default. However, the `save_all_locales` i18n option allows users to [disable non-default locales](#disabling-non-default-locale-content) if needed. Developers can also specify a subset of locales with the `required` field option, e.g. `required: [en]`.
506
+ - Configuration options
507
+ - Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) to sortable fields, view filters/groups, List widget, etc. while Sveltia CMS follows Netlify/Decap CMS, so you should review your configuration carefully.
508
+ - The `default` option for sortable fields will be implemented in Sveltia CMS soon. ([#304](https://github.com/sveltia/sveltia-cms/issues/304))
509
+ - Directory navigation in the Asset Library is partially supported in Sveltia CMS. If you define [collection-specific `media_folder`s](#using-a-custom-media-folder-for-a-collection), these folders will be displayed in the Asset Library and Select File/Image dialog. Display of subfolders within a configured folder will be implemented soon. We don’t plan to support the `folder_support` and `display_in_navigation` options for `media_library`; subfolders will be displayed with no configuration. ([#301](https://github.com/sveltia/sveltia-cms/issues/301))
510
+ - The `logo_link` global option will not be supported. Use `display_url` or `site_url` instead.
511
+ - The `yaml` global option will not be supported, as Sveltia CMS doesn’t expose the `yaml` library options directly for forward compatibility reasons. However, we do have some [data output options](#controlling-data-output), including YAML indentation and quotes.
512
+ - I18n support
513
+ - The `enforce_required_non_default` i18n option will not be supported. Sveitia CMS enforces required fields in all locales by default. However, the `save_all_locales` i18n option allows users to [disable non-default locales](#disabling-non-default-locale-content) if needed. Developers can also specify a subset of locales with the `required` field option, e.g. `required: [en]`.
514
+ - Widgets
515
+ - The KeyValue widget is implemented in Sveltia CMS with the same options.
516
+ - The UUID widget is also implemented, but with different options.
517
+ - The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
518
+ - The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS soon. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
519
+ - Customization
520
+ - `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.
514
521
 
515
522
  ### Other notes
516
523
 
@@ -1011,6 +1018,7 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1011
1018
  ### Before the 1.0 release
1012
1019
 
1013
1020
  - Enhanced [compatibility with Netlify/Decap CMS](#compatibility)
1021
+ - Tackling some more Netlify/Decap CMS issues
1014
1022
  - [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md)
1015
1023
  - Accessibility audit
1016
1024
  - Developer documentation (implementation guide)
@@ -1022,7 +1030,7 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1022
1030
  ### After the 1.0 release
1023
1031
 
1024
1032
  - Implementing the [remaining Netlify/Decap CMS features](#features-to-be-implemented-after-ga)
1025
- - Tackling 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)
1033
+ - 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)
1026
1034
  - 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]
1027
1035
  - Considering further [compatibility with Static CMS](#compatibility-with-static-cms)
1028
1036
  - More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools
@@ -1384,3 +1392,7 @@ This software is provided “as is” without any express or implied warranty. W
1384
1392
  [^167]: Netlify/Decap CMS [#263](https://github.com/decaporg/decap-cms/issues/263)
1385
1393
 
1386
1394
  [^168]: Netlify/Decap CMS [#1948](https://github.com/decaporg/decap-cms/issues/1948)
1395
+
1396
+ [^169]: Netlify/Decap CMS [#7364](https://github.com/decaporg/decap-cms/issues/7364)
1397
+
1398
+ [^170]: Netlify/Decap CMS [#7371](https://github.com/decaporg/decap-cms/issues/7371)