@sveltia/cms 0.74.0 → 0.75.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
@@ -83,7 +83,6 @@ The free, open source alternative/successor to Netlify/Decap CMS is now in publi
83
83
  - [Support \& feedback](#support--feedback)
84
84
  - [Contributions](#contributions)
85
85
  - [Roadmap](#roadmap)
86
- - [v1.0 Release Candidate](#v10-release-candidate)
87
86
  - [v1.0](#v10)
88
87
  - [v2.0](#v20)
89
88
  - [Future](#future)
@@ -122,17 +121,17 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
122
121
 
123
122
  ## Development status
124
123
 
125
- Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in Q3 2025. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates. See also our [roadmap](#roadmap).
124
+ Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in Q4 2025. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates. See also our [roadmap](#roadmap).
126
125
 
127
126
  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 a complicated system that involves various kinds of activities that require considerable effort:
128
127
 
129
128
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
130
129
  - Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
131
130
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
132
- - So far, 195+ issues, or 400+ if including duplicates, have been effectively solved in Sveltia CMS
131
+ - So far, 205+ issues, or 415+ if including duplicates, have been effectively solved in Sveltia CMS
133
132
  - Target:
134
- - 200 issues, or 400 if including duplicates, by GA (almost there)
135
- - 350 issues, or 600 if including duplicates, in the future
133
+ - 200 issues, or 400 if including duplicates, by GA (we did it!)
134
+ - 350 issues, or 700 if including duplicates, in the future
136
135
  - 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 an effective solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions) and stalled [pull requests](https://github.com/decaporg/decap-cms/pulls)
137
136
  - Most of the bugs, including annoying crashes, are already solved
138
137
  - 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
@@ -141,7 +140,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
141
140
  - Responding to requests from the maintainer’s clients
142
141
  - Making the code clean and maintainable
143
142
 
144
- ![195 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20250426)<br>
143
+ ![205 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20250512)<br>
145
144
 
146
145
  ## Differentiators
147
146
 
@@ -152,13 +151,14 @@ Netlify/Decap CMS users will definitely be pleased and surprised by the numerous
152
151
  - Created and actively 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.
153
152
  - The maintainer tries to respond to bug reports as quickly as possible. While there are no guarantees, the typical turnaround time for a bug fix is less than 24 hours.
154
153
  - Frequent releases deliver new features and enhancements to users faster. Most of our minor [releases](https://github.com/sveltia/sveltia-cms/releases) address one or more Netlify/Decap CMS issues, giving you even more reasons to switch from the legacy predecessor.
155
- - Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1]
154
+ - Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1][^211][^212][^213][^214]
156
155
  - Provides immersive dark mode.[^2] The UI theme follows the user’s system preference by default and can be changed in the application settings.
157
- - Mobile and tablet support beyond responsive design: Users can manage content on-the-go.[^18] There are still rough edges though; we are working to fully optimize the app for small screens and touch devices.
156
+ - Users can easily manage content on-the-go with mobile and tablet support.[^18][^215]
157
+ - For a smoother experience, we even go beyond responsive design with [view transitions](https://developer.chrome.com/docs/web-platform/view-transitions), larger buttons, and other tweaks. However, there are still rough edges, and we are working to fully optimize the app for small screens and touch devices.
158
158
  - If you’re already signed in on your desktop, open the Account menu in the top right corner of the CMS, click Sign In with Mobile, and scan the QR code for passwordless sign-in. Your settings will be automatically copied.
159
159
  - 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 fatal React application crashes.[^113][^129] Best of all, Svelte offers great performance.
160
160
  - Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204]
161
- - We build [our own UI component library](https://github.com/sveltia/sveltia-ui), including custom dialogs,[^196] to ensure optimal usability without compromising accessibility.
161
+ - We build [our own UI component library](https://github.com/sveltia/sveltia-ui), including custom dialogs, to ensure optimal usability without compromising accessibility.[^196][^205][^206][^207][^208][^209][^210]
162
162
  - Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled.
163
163
  - 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]
164
164
  <!-- - The in-app Help menu provides all links to useful resources, including release notes, feedback and support. -->
@@ -249,6 +249,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
249
249
  - File collections support multiple files/folders i18n structures.[^87] To enable it, simply use the `{{locale}}` template tag in the `file` path option, e.g. `content/pages/about.{{locale}}.json` or `content/pages/{{locale}}/about.json`. For backward compatibility, the global `structure` option only applies to folder collections, and the default i18n structure for file collections remains single file.
250
250
  - The List and Object widgets support the `i18n: duplicate` field configuration so that changes made with these widgets are duplicated between locales.[^7][^68] The `i18n` configuration can normally be used for the subfields.
251
251
  - The new `multiple_folders_i18n_root` i18n structure allows to have locale folders below the project root: `<locale>/<folder>/<slug>.<extension>`. [^182]
252
+ - The new `omit_default_locale_from_filename` i18n option allows to exclude the default locale from filenames. This option applies to entry collections with the `multiple_files` i18n structure enabled, as well as to file collection items with the `file` path ending with `.{{locale}}.<extension>`, aiming to support [Zola’s multilingual sites](https://www.getzola.org/documentation/content/multilingual/). ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/394))
252
253
  - The `required` field option accepts an array of locale codes in addition to a boolean, making the field required for a subset of locales when i18n support is enabled. For example, if only English is required, you could write `required: [en]`. An empty array is equivalent to `required: false`.
253
254
  - [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]
254
255
  - The `{{locale}}` template tag can be used in the [`preview_path`](https://decapcms.org/docs/configuration-options/#preview_path) collection option to provide site preview links for each language.[^63]
@@ -408,15 +409,15 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
408
409
  - Markdown
409
410
  - 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]
410
411
  - 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.
412
+ - A Markdown field plays well with a variable type List field.[^202]
411
413
  - 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.
412
414
  - The built-in `image` component can be inserted with a single click.
413
415
  - The built-in `image` component allows users to add, edit or remove a link on an image.[^171]
416
+ - It’s possible to paste/drop local/remote images into the rich text editor to insert them as expected. Note: Pasting multiple images is [not supported in Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=864052). In Netlify/Decap CMS, pasting an image may cause the application to crash.
414
417
  - The built-in `code-block` component is implemented just like a blockquote. You can simply convert a normal paragraph into a code block instead of adding a component.
415
418
  - Code in a code block in the editor can be copied as expected.[^165]
416
419
  - Language-annotated code block doesn’t trigger unsaved changes.[^189]
417
420
  - Line breaks are rendered as line breaks in the Preview Pane according to GitHub Flavored Markdown (GFM).
418
- - A Markdown field plays well with a variable type List field.[^202]
419
- - It’s possible to paste/drop local/remote images into the rich text editor to insert these images. Note: Pasting multiple images is [not supported in Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=864052).
420
421
  - Number
421
422
  - If the `value_type` option is `int` (default) or `float`, the `required` option is `false`, and the value is not entered, the field will be saved as `null` instead of an empty string.[^157] If `value_type` is anything else, the data type will remain a string.
422
423
  - Object
@@ -443,6 +444,9 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
443
444
  - Supports the `before_input` and `after_input` string options, which allow developers to display custom labels before and/or after the input UI.[^28] Markdown is supported in the value.
444
445
  - Compatibility note: In Static CMS, these options are implemented as `prefix` and `suffix`, respectively, which have different meaning in Sveltia CMS.
445
446
  - File and Image
447
+ - The new `accept` option allows files to be filtered by unique file type specifiers, in the same way as the HTML [`accept` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/accept) for `<input type="file">`.[^216]
448
+ - By default, the Image widget only accepts an AVIF, GIF, JPEG, PNG, WebP or SVG image. BMP, HEIC, JPEG XL, PSD, TIFF and other less common or non-standard files are excluded.[^217]
449
+ - The File widget has no default restriction.
446
450
  - Provides a reimagined all-in-one asset selection dialog for File and Image fields.
447
451
  - [Collection-specific assets](#using-a-custom-media-folder-for-a-collection) are listed for easy selection, while all assets are displayed in a separate tab.[^19]
448
452
  - A new asset can be uploaded by dragging & dropping it into the dialog.[^20]
@@ -555,7 +559,7 @@ However, 100% feature parity is not planned, and some features are still missing
555
559
 
556
560
  ### Current limitations
557
561
 
558
- These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are working hard to add them before the 1.0 release due Q3 2025.
562
+ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are working hard to add them before the 1.0 release due Q4 2025.
559
563
 
560
564
  - Comprehensive site config validation
561
565
  - [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md) other than English and Japanese
@@ -603,7 +607,7 @@ While Sveltia CMS is built with Svelte, the application is **framework-agnostic*
603
607
 
604
608
  So you can use the CMS with any framework or static site generator (SSG) that can load static files during the build process, including but not limited to Astro, Eleventy, Hugo, Jekyll, Next.js, SvelteKit and VitePress.
605
609
 
606
- We have added support for features used by certain frameworks and i18n libraries, such as [index file inclusion](#including-hugos-special-index-file-in-a-folder-collection) and [slug localization](#localizing-entry-slugs) for Hugo, as well as [some enhancements](https://github.com/sveltia/sveltia-cms/issues/230) for VitePress. [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?type=feature) if your framework has specific needs.
610
+ We have added support for features used by certain frameworks and i18n libraries, such as [index file inclusion](#including-hugos-special-index-file-in-a-folder-collection) and [slug localization](#localizing-entry-slugs) for Hugo, i18n support for Astro and Zola, and [some enhancements](https://github.com/sveltia/sveltia-cms/issues/230) for VitePress. [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?type=feature) if your framework has specific requirements.
607
611
 
608
612
  ### Browser support
609
613
 
@@ -1289,16 +1293,13 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1289
1293
 
1290
1294
  ## Roadmap
1291
1295
 
1292
- ### v1.0 Release Candidate
1296
+ ### v1.0
1297
+
1298
+ Due Q4 2025
1293
1299
 
1294
1300
  - Enhanced [compatibility with Netlify/Decap CMS](#compatibility)
1295
1301
  - Tackling some more Netlify/Decap CMS issues
1296
1302
  - Accessibility audit
1297
-
1298
- ### v1.0
1299
-
1300
- Due Q3 2025
1301
-
1302
1303
  - [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md)
1303
1304
  - Developer documentation (implementation guide)
1304
1305
  - Marketing site
@@ -1378,7 +1379,7 @@ This software is provided “as is” without any express or implied warranty. W
1378
1379
 
1379
1380
  [^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333), [#4216](https://github.com/decaporg/decap-cms/issues/4216)
1380
1381
 
1381
- [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852), [#7241](https://github.com/decaporg/decap-cms/issues/7241)
1382
+ [^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852)
1382
1383
 
1383
1384
  [^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
1384
1385
 
@@ -1488,7 +1489,7 @@ This software is provided “as is” without any express or implied warranty. W
1488
1489
 
1489
1490
  [^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
1490
1491
 
1491
- [^73]: Netlify/Decap CMS [#6993](https://github.com/decaporg/decap-cms/issues/6993), [#7123](https://github.com/decaporg/decap-cms/issues/7123), [#7127](https://github.com/decaporg/decap-cms/issues/7127), [#7128](https://github.com/decaporg/decap-cms/issues/7128), [#7237](https://github.com/decaporg/decap-cms/issues/7237), [#7251](https://github.com/decaporg/decap-cms/issues/7251), [#7361](https://github.com/decaporg/decap-cms/issues/7361), [#7391](https://github.com/decaporg/decap-cms/issues/7391), [#7393](https://github.com/decaporg/decap-cms/issues/7393)
1492
+ [^73]: Netlify/Decap CMS [#6993](https://github.com/decaporg/decap-cms/issues/6993), [#7123](https://github.com/decaporg/decap-cms/issues/7123), [#7127](https://github.com/decaporg/decap-cms/issues/7127), [#7128](https://github.com/decaporg/decap-cms/issues/7128), [#7237](https://github.com/decaporg/decap-cms/issues/7237), [#7251](https://github.com/decaporg/decap-cms/issues/7251), [#7361](https://github.com/decaporg/decap-cms/issues/7361), [#7391](https://github.com/decaporg/decap-cms/issues/7391), [#7393](https://github.com/decaporg/decap-cms/issues/7393), [#7470](https://github.com/decaporg/decap-cms/issues/7470)
1492
1493
 
1493
1494
  [^74]: Netlify/Decap CMS [#4209](https://github.com/decaporg/decap-cms/issues/4209)
1494
1495
 
@@ -1734,7 +1735,7 @@ This software is provided “as is” without any express or implied warranty. W
1734
1735
 
1735
1736
  [^195]: Netlify/Decap CMS [#5901](https://github.com/decaporg/decap-cms/issues/5901)
1736
1737
 
1737
- [^196]: Netlify/Decap CMS [#3057](https://github.com/decaporg/decap-cms/issues/3057) — We use Svelte though.
1738
+ [^196]: Netlify/Decap CMS [#3057](https://github.com/decaporg/decap-cms/issues/3057), [#3260](https://github.com/decaporg/decap-cms/issues/3260) — We use Svelte though.
1738
1739
 
1739
1740
  [^197]: Netlify/Decap CMS [#3457](https://github.com/decaporg/decap-cms/issues/3457), [#3624](https://github.com/decaporg/decap-cms/issues/3624)
1740
1741
 
@@ -1751,3 +1752,29 @@ This software is provided “as is” without any express or implied warranty. W
1751
1752
  [^203]: Netlify/Decap CMS [#7360](https://github.com/decaporg/decap-cms/issues/7360), [#7462](https://github.com/decaporg/decap-cms/issues/7462)
1752
1753
 
1753
1754
  [^204]: Netlify/Decap CMS [#7240](https://github.com/decaporg/decap-cms/issues/7240), [#7428](https://github.com/decaporg/decap-cms/issues/7428)
1755
+
1756
+ [^205]: Netlify/Decap CMS [#3257](https://github.com/decaporg/decap-cms/issues/3257)
1757
+
1758
+ [^206]: Netlify/Decap CMS [#3258](https://github.com/decaporg/decap-cms/issues/3258)
1759
+
1760
+ [^207]: Netlify/Decap CMS [#3259](https://github.com/decaporg/decap-cms/issues/3259)
1761
+
1762
+ [^208]: Netlify/Decap CMS [#3261](https://github.com/decaporg/decap-cms/issues/3261)
1763
+
1764
+ [^209]: Netlify/Decap CMS [#3262](https://github.com/decaporg/decap-cms/issues/3262)
1765
+
1766
+ [^210]: Netlify/Decap CMS [#3296](https://github.com/decaporg/decap-cms/issues/3296)
1767
+
1768
+ [^211]: Netlify/Decap CMS [#3263](https://github.com/decaporg/decap-cms/issues/3263)
1769
+
1770
+ [^212]: Netlify/Decap CMS [#3264](https://github.com/decaporg/decap-cms/issues/3264)
1771
+
1772
+ [^213]: Netlify/Decap CMS [#3265](https://github.com/decaporg/decap-cms/issues/3265)
1773
+
1774
+ [^214]: Netlify/Decap CMS [#3266](https://github.com/decaporg/decap-cms/issues/3266)
1775
+
1776
+ [^215]: Netlify/Decap CMS [#7241](https://github.com/decaporg/decap-cms/issues/7241)
1777
+
1778
+ [^216]: Netlify/Decap CMS [#1345](https://github.com/decaporg/decap-cms/issues/1345)
1779
+
1780
+ [^217]: Netlify/Decap CMS [#5467](https://github.com/decaporg/decap-cms/issues/5467)