@sveltia/cms 0.93.1 → 0.94.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 +40 -22
- package/dist/sveltia-cms.js +163 -159
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +182 -178
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/sveltia-cms.json +81 -10
- package/types/public.d.ts +43 -8
package/README.md
CHANGED
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, quick replacement for Netlify CMS and Decap CMS. In some simple cases, migration is as easy as a single line of code change, although we are still working on improving compatibility.
|
|
4
4
|
|
|
5
|
-
The free, open source alternative
|
|
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
|
+
|
|
7
|
+
Welcome to the only Netlify CMS successor you can trust!
|
|
6
8
|
|
|
7
9
|
<br>
|
|
8
10
|
|
|
@@ -132,9 +134,9 @@ Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in
|
|
|
132
134
|
|
|
133
135
|
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 involving various kinds of activities that require considerable effort:
|
|
134
136
|
|
|
135
|
-
- Ensuring substantial [compatibility with Netlify/Decap CMS](#
|
|
137
|
+
- Ensuring substantial [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
136
138
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
137
|
-
- So far, 240+ issues, or
|
|
139
|
+
- So far, 240+ issues, or 505+ if including duplicates, have been effectively solved in Sveltia CMS (Yes, you read it right)
|
|
138
140
|
- Target:
|
|
139
141
|
- 250 issues, or 500 if including duplicates, by GA — Almost there!
|
|
140
142
|
- 400 issues, or 800 if including duplicates, in the future 💪
|
|
@@ -166,8 +168,9 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
166
168
|
- Users can easily manage content on-the-go with mobile and tablet support.[^18][^215]
|
|
167
169
|
- For a smoother experience, we even go beyond responsive design with optimized navigation, [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.
|
|
168
170
|
- 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.
|
|
171
|
+
- Sveltia CMS loads all entries at startup. We don’t support backends that cannot retrieve multiple entries at once. This deliberate design choice improves performance and UX by enabling instant full-text searches, fast and powerful relation fields, and linking between assets and entries.
|
|
169
172
|
- 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.
|
|
170
|
-
- Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204][^260]
|
|
173
|
+
- Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204][^260]
|
|
171
174
|
- 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]
|
|
172
175
|
- Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled.
|
|
173
176
|
- 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]
|
|
@@ -199,7 +202,7 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
199
202
|
- Uploading files can be done with drag and drop.[^20]
|
|
200
203
|
- Users can upload multiple files at once to the Asset Library.
|
|
201
204
|
- Users can delete multiple entries and assets at once.
|
|
202
|
-
- Instant full-text search with results sorted by relevance helps you find entries faster.
|
|
205
|
+
- Instant full-text search with results sorted by relevance helps you find entries faster. In Netlify/Decap CMS, you often won’t get the results you expect.
|
|
203
206
|
- Some [keyboard shortcuts](#using-keyboard-shortcuts) are available for faster editing.
|
|
204
207
|
|
|
205
208
|
### Better accessibility
|
|
@@ -344,7 +347,8 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
344
347
|
- Setting the collection `path` doesn’t affect the entry slugs stored with the Relation widget.[^137]
|
|
345
348
|
- Entry slugs are [localizable](#localizing-entry-slugs).[^80]
|
|
346
349
|
- Entry listing
|
|
347
|
-
- [
|
|
350
|
+
- The [default sort field and direction](#specifying-default-entry-sort-field-and-direction) can be specified.[^172]
|
|
351
|
+
- The default filtering and grouping can also be specified in the same way as with [Static CMS](https://staticjscms.netlify.app/docs/decap-migration-guide#view-filters).[^269]
|
|
348
352
|
- Sorting entries by a DateTime field works as expected.[^110]
|
|
349
353
|
- Entry grouping and sorting can work together. For example, it’s possible to group by year and then sort by year if configured properly.
|
|
350
354
|
- The `sortable_fields` option accepts a special `slug` value to allow sorting by entry slugs.
|
|
@@ -404,6 +408,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
404
408
|
- 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]
|
|
405
409
|
- Provides JSON/YAML format options as part of the [data output options](#controlling-data-output), including indentation and quotes.[^155][^9]
|
|
406
410
|
- The `yaml_quote` collection option added in [v0.5.10](https://github.com/sveltia/sveltia-cms/releases/tag/v0.5.10) is now deprecated and will be removed in v1.0.0. `yaml_quote: true` is equivalent to `quote: double` in the new YAML format options.
|
|
411
|
+
- Front matter injection is impossible through the `body` field.[^268]
|
|
407
412
|
|
|
408
413
|
### Better widgets
|
|
409
414
|
|
|
@@ -566,13 +571,16 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
566
571
|
- The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if exists.[^109]
|
|
567
572
|
- A custom logo defined with the `logo_url` property is displayed on the global application header and the browser tab (favicon).[^134] A smaller logo is also correctly positioned on the authentication page.[^135]
|
|
568
573
|
- [`CMS.registerCustomFormat()`](https://decapcms.org/docs/custom-formatters/) supports async parser/formatter functions.[^149]
|
|
569
|
-
-
|
|
574
|
+
- Enhancements to [`CMS.registerEditorComponent()`](https://decapcms.org/docs/custom-widgets/#registereditorcomponent):
|
|
575
|
+
- A component definition accepts the `icon` property. Developers can specify a Material Symbols icon name just like [custom collection icons](#using-a-custom-icon-for-a-collection).
|
|
576
|
+
- The `fromBlock` function can be omitted if the `pattern` regex contains [named capturing groups](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Named_capturing_group) for the values.
|
|
577
|
+
- Inline components are supported.[^267]
|
|
570
578
|
|
|
571
579
|
### Better localization
|
|
572
580
|
|
|
573
581
|
- The application UI locale is automatically selected based on the preferred language set with the browser.[^132] Users can also change the locale in the application settings. Therefore, the `locale` configuration option is ignored and `CMS.registerLocale()` is not required.
|
|
574
582
|
- The List widget’s `label` and `label_singular` are not converted to lowercase, which is especially problematic in German, where all nouns are capitalized.[^98]
|
|
575
|
-
- Long menu item labels, especially in non-English locales, don’t overflow the dropdown container.[^117]
|
|
583
|
+
- Long menu item labels, especially in non-English locales, don’t overflow the dropdown container.[^117][^265]
|
|
576
584
|
|
|
577
585
|
## Compatibility
|
|
578
586
|
|
|
@@ -616,7 +624,7 @@ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are
|
|
|
616
624
|
- [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) media libraries ([#4](https://github.com/sveltia/sveltia-cms/discussions/4))
|
|
617
625
|
- LineString and Polygon types for the [Map](https://decapcms.org/docs/widgets/#map) widget
|
|
618
626
|
- [Custom widgets](https://decapcms.org/docs/custom-widgets/)
|
|
619
|
-
- [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent): Support for preview, widgets with complex values (Code with `output_code_only:false`, Hidden, KeyValue, List, Object, Select/Relation with `multiple:true`),
|
|
627
|
+
- [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent): Support for preview, widgets with complex values (Code with `output_code_only: false`, Hidden, KeyValue, List, Object, Select/Relation with `multiple: true`), the `default` field option and [multiline components](https://github.com/sveltia/sveltia-cms/issues/410)
|
|
620
628
|
- [Custom preview templates](https://decapcms.org/docs/customization/#registerpreviewtemplate) ([#51](https://github.com/sveltia/sveltia-cms/issues/51))
|
|
621
629
|
- [Event hooks](https://decapcms.org/docs/registering-events/) ([#167](https://github.com/sveltia/sveltia-cms/issues/167))
|
|
622
630
|
|
|
@@ -635,7 +643,7 @@ Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/
|
|
|
635
643
|
|
|
636
644
|
- Configuration options
|
|
637
645
|
- Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) to view filters/groups, List widget, etc. while Sveltia CMS follows Netlify/Decap CMS, so you should review your configuration carefully.
|
|
638
|
-
- The `
|
|
646
|
+
- The [`sortable_fields`](#specifying-default-sort-field-and-direction), `view_filters` and `view_groups` options with the new `default` option are supported in Sveltia CMS.
|
|
639
647
|
- 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 before GA. 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))
|
|
640
648
|
- The `logo_link` global option will not be supported. Use `display_url` or `site_url` instead.
|
|
641
649
|
- The `yaml` global option will not be supported, as Sveltia CMS doesn’t expose the underlying `yaml` library options for forward compatibility reasons. However, we do have some [data output options](#controlling-data-output), including YAML indentation and quotes.
|
|
@@ -1219,7 +1227,7 @@ media_libraries:
|
|
|
1219
1227
|
|
|
1220
1228
|
### Editing site deployment configuration files
|
|
1221
1229
|
|
|
1222
|
-
Sveltia CMS allows users to edit files without extensions. Examples include `_headers` and `_redirects`, which are used by some static site hosting providers, such as [Netlify](https://docs.netlify.com/routing/redirects/), [GitLab Pages](https://docs.gitlab.com/user/project/pages/redirects/) and [Cloudflare Pages](https://developers.cloudflare.com/pages/configuration/redirects/). Since the `body` field is saved without the field name when using the default `yaml-frontmatter` format, you can use the following configuration to edit these files in the Content Editor:
|
|
1230
|
+
Sveltia CMS allows users to edit files without extensions. Examples include `_headers` and `_redirects`, which are used by some static site hosting providers, such as [Netlify](https://docs.netlify.com/routing/redirects/), [GitLab Pages](https://docs.gitlab.com/user/project/pages/redirects/) and [Cloudflare Pages](https://developers.cloudflare.com/pages/configuration/redirects/). Since the `body` field is [saved without the field name](#understanding-exceptions-in-data-output) when using the default `yaml-frontmatter` format, you can use the following configuration to edit these files in the Content Editor:
|
|
1223
1231
|
|
|
1224
1232
|
```yaml
|
|
1225
1233
|
collections:
|
|
@@ -1620,10 +1628,8 @@ Due late 2025
|
|
|
1620
1628
|
|
|
1621
1629
|
- Enhanced [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
1622
1630
|
- Tackling some more Netlify/Decap CMS issues:
|
|
1623
|
-
- [Directory navigation in the Asset Library](https://github.com/sveltia/sveltia-cms/issues/420)[^240]
|
|
1624
1631
|
- [Multiple file selection with the File and Image widgets](https://github.com/sveltia/sveltia-cms/issues/10)[^239]
|
|
1625
1632
|
- Several Cloudinary and Uploadcare media library issues, including selection of existing files[^247]
|
|
1626
|
-
- [Automatic asset file renaming with templates](https://github.com/sveltia/sveltia-cms/issues/422)[^241]
|
|
1627
1633
|
- [RTL localization support](https://github.com/sveltia/sveltia-cms/issues/385)[^245]
|
|
1628
1634
|
- Thorough site config validation[^246]
|
|
1629
1635
|
- [Entry pre-validation/normalization](https://github.com/sveltia/sveltia-cms/issues/395)[^248]
|
|
@@ -1639,13 +1645,19 @@ Due late 2025
|
|
|
1639
1645
|
Due early 2026
|
|
1640
1646
|
|
|
1641
1647
|
- Implementing [a few deferred Netlify/Decap CMS features](#current-limitations), including editorial workflow and nested collections
|
|
1648
|
+
- Tackling even more Netlify/Decap CMS issues:
|
|
1649
|
+
- [Manual entry sorting](https://github.com/sveltia/sveltia-cms/issues/214)[^125]
|
|
1650
|
+
- [Directory navigation in the Asset Library](https://github.com/sveltia/sveltia-cms/issues/420)[^240]
|
|
1651
|
+
- [Automatic asset file renaming with templates](https://github.com/sveltia/sveltia-cms/issues/422)[^241]
|
|
1652
|
+
- Advanced Relation fields[^242], including cascade updates/deletes[^243] and quick item additions[^266]
|
|
1653
|
+
- We’ll also implement [reverse reference lists](https://github.com/sveltia/sveltia-cms/discussions/416)
|
|
1654
|
+
- (some of them may be included in v1.0)
|
|
1642
1655
|
- End-user documentation
|
|
1643
1656
|
|
|
1644
1657
|
### Future
|
|
1645
1658
|
|
|
1646
|
-
- Tackling many of the remaining Netlify/Decap CMS issues
|
|
1659
|
+
- Tackling many of the remaining Netlify/Decap CMS issues:
|
|
1647
1660
|
- MDX support[^122]
|
|
1648
|
-
- [Manual entry sorting](https://github.com/sveltia/sveltia-cms/issues/214)[^125]
|
|
1649
1661
|
- [Saving drafts without editorial workflow](https://github.com/sveltia/sveltia-cms/discussions/440)[^261]
|
|
1650
1662
|
- [Tables in Markdown](https://github.com/sveltia/sveltia-cms/issues/455)[^256]
|
|
1651
1663
|
- [Config editor](https://github.com/sveltia/sveltia-cms/discussions/452)[^10]
|
|
@@ -1653,8 +1665,6 @@ Due early 2026
|
|
|
1653
1665
|
- [Reusable field groups](https://github.com/sveltia/sveltia-cms/discussions/463)[^263]
|
|
1654
1666
|
- Offline support[^238]
|
|
1655
1667
|
- and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
|
|
1656
|
-
- Advanced Relation fields[^242], including cascade updates/deletes[^243]
|
|
1657
|
-
- We’ll also implement [reverse reference lists](https://github.com/sveltia/sveltia-cms/discussions/416)
|
|
1658
1668
|
- (some of them may be included in v2.0)
|
|
1659
1669
|
- **Sveltia CMS Additions**: edge functions for Cloudflare Workers and possibly other platforms that provide features that cannot be implemented client-side:
|
|
1660
1670
|
- User management (Netlify Identity alternative) with roles[^23]
|
|
@@ -1663,7 +1673,7 @@ Due early 2026
|
|
|
1663
1673
|
- Scheduled posts[^167]
|
|
1664
1674
|
- Credential management for service API keys, deploy hook URL, etc.
|
|
1665
1675
|
- Proxy for services that don’t support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS):
|
|
1666
|
-
- [DeepL](https://github.com/sveltia/sveltia-cms/issues/437)
|
|
1676
|
+
- [DeepL Translate](https://github.com/sveltia/sveltia-cms/issues/437)
|
|
1667
1677
|
- [Git LFS support for GitHub](https://github.com/sveltia/sveltia-cms/discussions/353)[^244]
|
|
1668
1678
|
- [Local repository workflow](#working-with-a-local-git-repository) improvements: Git mode[^131] and File System Observer support
|
|
1669
1679
|
- [Preact+HTM support](https://github.com/sveltia/sveltia-cms/discussions/153) for custom widgets, editor components and preview templates
|
|
@@ -1857,7 +1867,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1857
1867
|
|
|
1858
1868
|
[^81]: Netlify/Decap CMS [#4645](https://github.com/decaporg/decap-cms/issues/4645)
|
|
1859
1869
|
|
|
1860
|
-
[^82]: Netlify/Decap CMS [#6500](https://github.com/decaporg/decap-cms/issues/6500)
|
|
1870
|
+
[^82]: Netlify/Decap CMS [#5593](https://github.com/decaporg/decap-cms/issues/5593), [#6500](https://github.com/decaporg/decap-cms/issues/6500)
|
|
1861
1871
|
|
|
1862
1872
|
[^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
|
|
1863
1873
|
|
|
@@ -1927,7 +1937,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1927
1937
|
|
|
1928
1938
|
[^116]: Netlify/Decap CMS [#3431](https://github.com/decaporg/decap-cms/issues/3431)
|
|
1929
1939
|
|
|
1930
|
-
[^117]: Netlify/Decap CMS [#3562](https://github.com/decaporg/decap-cms/issues/3562), [#6215](https://github.com/decaporg/decap-cms/issues/6215), [#7479](https://github.com/decaporg/decap-cms/issues/7479)
|
|
1940
|
+
[^117]: Netlify/Decap CMS [#3562](https://github.com/decaporg/decap-cms/issues/3562), [#6215](https://github.com/decaporg/decap-cms/issues/6215), [#6605](https://github.com/decaporg/decap-cms/issues/6605), [#6355](https://github.com/decaporg/decap-cms/issues/6355), [#7479](https://github.com/decaporg/decap-cms/issues/7479)
|
|
1931
1941
|
|
|
1932
1942
|
[^118]: Netlify/Decap CMS [#7267](https://github.com/decaporg/decap-cms/issues/7267)
|
|
1933
1943
|
|
|
@@ -2001,7 +2011,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2001
2011
|
|
|
2002
2012
|
[^153]: Netlify/Decap CMS [#7347](https://github.com/decaporg/decap-cms/issues/7347)
|
|
2003
2013
|
|
|
2004
|
-
[^154]: Netlify/Decap CMS [#1449](https://github.com/decaporg/decap-cms/issues/1449), [#1988](https://github.com/decaporg/decap-cms/issues/1988)
|
|
2014
|
+
[^154]: Netlify/Decap CMS [#1449](https://github.com/decaporg/decap-cms/issues/1449), [#1988](https://github.com/decaporg/decap-cms/issues/1988), [#5552](https://github.com/decaporg/decap-cms/issues/5552)
|
|
2005
2015
|
|
|
2006
2016
|
[^155]: Netlify/Decap CMS [#5870](https://github.com/decaporg/decap-cms/issues/5870)
|
|
2007
2017
|
|
|
@@ -2223,4 +2233,12 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2223
2233
|
|
|
2224
2234
|
[^264]: Netlify/Decap CMS [#7557](https://github.com/decaporg/decap-cms/issues/7557)
|
|
2225
2235
|
|
|
2226
|
-
[^265]: Netlify/Decap CMS [#
|
|
2236
|
+
[^265]: Netlify/Decap CMS [#6215](https://github.com/decaporg/decap-cms/issues/6215)
|
|
2237
|
+
|
|
2238
|
+
[^266]: Netlify/Decap CMS [#3821](https://github.com/decaporg/decap-cms/issues/3821), [#4369](https://github.com/decaporg/decap-cms/issues/4369)
|
|
2239
|
+
|
|
2240
|
+
[^267]: Netlify/Decap CMS [#5065](https://github.com/decaporg/decap-cms/issues/5065) — The issue was closed, but it’s still not working as expected in Decap CMS.
|
|
2241
|
+
|
|
2242
|
+
[^268]: Netlify/Decap CMS [#4945](https://github.com/decaporg/decap-cms/issues/4945)
|
|
2243
|
+
|
|
2244
|
+
[^269]: Netlify/Decap CMS [#7568](https://github.com/decaporg/decap-cms/issues/7568)
|