@sveltia/cms 0.94.1 → 0.95.1
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 +60 -38
- package/dist/sveltia-cms.js +220 -220
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +218 -218
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/sveltia-cms.json +7 -2
- package/types/public.d.ts +19 -1
package/README.md
CHANGED
|
@@ -94,7 +94,8 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
94
94
|
- [Roadmap](#roadmap)
|
|
95
95
|
- [v1.0](#v10)
|
|
96
96
|
- [v2.0](#v20)
|
|
97
|
-
- [
|
|
97
|
+
- [v3.0](#v30)
|
|
98
|
+
- [TBD](#tbd)
|
|
98
99
|
- [Trivia](#trivia)
|
|
99
100
|
- [Related links](#related-links)
|
|
100
101
|
- [As seen on](#as-seen-on)
|
|
@@ -135,8 +136,9 @@ Sveltia CMS is currently in **beta** and version 1.0 (GA) is expected to ship in
|
|
|
135
136
|
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:
|
|
136
137
|
|
|
137
138
|
- Ensuring substantial [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
139
|
+
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
138
140
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
139
|
-
- So far,
|
|
141
|
+
- So far, 245+ issues, or 510+ if including duplicates, have been effectively solved in Sveltia CMS (Yes, you read it right)
|
|
140
142
|
- Target:
|
|
141
143
|
- 250 issues, or 500 if including duplicates, by GA — Almost there!
|
|
142
144
|
- 400 issues, or 800 if including duplicates, in the future 💪
|
|
@@ -150,7 +152,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
150
152
|
- Responding to requests from the maintainer’s clients
|
|
151
153
|
- Making the code clean and maintainable
|
|
152
154
|
|
|
153
|
-
<br>
|
|
154
156
|
|
|
155
157
|
## Differentiators
|
|
156
158
|
|
|
@@ -166,13 +168,13 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
166
168
|
- 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]
|
|
167
169
|
- Provides immersive dark mode.[^2] The UI theme follows the user’s system preference by default and can be changed in the application settings.
|
|
168
170
|
- Users can easily manage content on-the-go with mobile and tablet support.[^18][^215]
|
|
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.
|
|
171
|
+
- For a smoother experience, we even go beyond responsive design with optimized navigation, floating action buttons, smooth [view transitions](https://developer.chrome.com/docs/web-platform/view-transitions), larger buttons, and other tweaks. We’ll continue to fully optimize the app for small screens and touch devices.
|
|
170
172
|
- 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
173
|
- 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.
|
|
172
174
|
- 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.
|
|
173
175
|
- Other crashes in Netlify/Decap CMS are also irrelevant to us, making Sveltia CMS much more stable.[^112][^203][^204][^260]
|
|
174
176
|
- 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]
|
|
175
|
-
- Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled.
|
|
177
|
+
- Users can personalize the application with various settings, including appearance and language. Developer Mode can also be enabled, which enables certain features and displays the CMS version number.[^270]
|
|
176
178
|
- 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]
|
|
177
179
|
<!-- - The in-app Help menu provides all links to useful resources, including release notes, feedback and support. -->
|
|
178
180
|
|
|
@@ -348,7 +350,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
348
350
|
- Entry slugs are [localizable](#localizing-entry-slugs).[^80]
|
|
349
351
|
- Entry listing
|
|
350
352
|
- The [default sort field and direction](#specifying-default-entry-sort-field-and-direction) can be specified.[^172]
|
|
351
|
-
- The default
|
|
353
|
+
- The default filter and group can also be specified in the same way as with [Static CMS](https://staticjscms.netlify.app/docs/collection-overview#view-filters).[^269]
|
|
352
354
|
- Sorting entries by a DateTime field works as expected.[^110]
|
|
353
355
|
- Entry grouping and sorting can work together. For example, it’s possible to group by year and then sort by year if configured properly.
|
|
354
356
|
- The `sortable_fields` option accepts a special `slug` value to allow sorting by entry slugs.
|
|
@@ -449,6 +451,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
449
451
|
- Users can preview variable types without having to register a preview template.[^42]
|
|
450
452
|
- 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.
|
|
451
453
|
- A collapsed List field will not display a programmatic summary like `List [ Map { "key": "value" } ]` if the `summary` option is not set.[^183]
|
|
454
|
+
- The `allow_remove` option can be used to prevent users from removing items in a List field.[^272]
|
|
452
455
|
- Map
|
|
453
456
|
- A search bar enables users to quickly locate a specific place on the map.[^252]
|
|
454
457
|
- With the [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API), users can get their current location with one click.
|
|
@@ -641,9 +644,10 @@ Found a compatibility issue or other missing feature? [Let us know](https://gith
|
|
|
641
644
|
|
|
642
645
|
Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. Since Static CMS was archived some time ago, we don’t plan to implement additional compatibility beyond what’s listed below. However, we may still adopt some of their features that we find useful.
|
|
643
646
|
|
|
647
|
+
Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) while Sveltia CMS mostly follows Netlify/Decap CMS, so you should review your configuration carefully.
|
|
648
|
+
|
|
644
649
|
- Configuration options
|
|
645
|
-
-
|
|
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.
|
|
650
|
+
- Sveltia CMS supports the [`sortable_fields`](#specifying-default-sort-field-and-direction), `view_filters` and `view_groups` options with the new `default` option. We still support the legacy Netlify/Decap CMS format as well, so you can use [either format](https://staticjscms.netlify.app/docs/decap-migration-guide#sortable-fields) for these options.
|
|
647
651
|
- 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))
|
|
648
652
|
- The `logo_link` global option will not be supported. Use `display_url` or `site_url` instead.
|
|
649
653
|
- 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.
|
|
@@ -651,10 +655,11 @@ Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/
|
|
|
651
655
|
- 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` or `initial_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]`.
|
|
652
656
|
- Widgets
|
|
653
657
|
- The date/time format options for the DateTime widget are **not compatible** since Static CMS [switched to date-fns](https://staticjscms.netlify.app/docs/decap-migration-guide#dates) while Sveltia CMS continues to use Moment.js (and will soon switch to Day.js). Update your formats accordingly.
|
|
654
|
-
- The KeyValue widget is implemented in Sveltia CMS with the same options.
|
|
655
|
-
- The UUID widget is also implemented, but with different options.
|
|
658
|
+
- The [KeyValue widget](#new-widgets) is implemented in Sveltia CMS with the same options.
|
|
659
|
+
- The [UUID widget](#new-widgets) is also implemented, but with different options.
|
|
656
660
|
- 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.
|
|
657
661
|
- 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))
|
|
662
|
+
- The [breaking change to the List widget](https://staticjscms.netlify.app/docs/decap-migration-guide#list-widget) doesn’t apply to Sveltia CMS. You must use the `field` (singular) option to produce a single subfield with [no `name` output](#understanding-exceptions-in-data-output).
|
|
658
663
|
- Customization
|
|
659
664
|
- `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.
|
|
660
665
|
|
|
@@ -1365,7 +1370,7 @@ output:
|
|
|
1365
1370
|
|
|
1366
1371
|
Content is generally saved as key-value pairs in a file, where the key is the field name and the value is the field value. However, there are some exceptions you should be aware of.
|
|
1367
1372
|
|
|
1368
|
-
If the format is front matter, the `body` field is saved outside of the front matter block, as briefly explained in the [Decap CMS documentation](https://decapcms.org/docs/configuration-options
|
|
1373
|
+
If the format is front matter, the `body` field is saved outside of the front matter block, as briefly explained in the [Decap CMS documentation](https://decapcms.org/docs/configuration-options/#extension-and-format):
|
|
1369
1374
|
|
|
1370
1375
|
```yaml
|
|
1371
1376
|
---
|
|
@@ -1417,10 +1422,10 @@ There are two exceptional cases for the List widget:
|
|
|
1417
1422
|
instead of an array of objects:
|
|
1418
1423
|
```yaml
|
|
1419
1424
|
images:
|
|
1420
|
-
-
|
|
1421
|
-
-
|
|
1425
|
+
- image: https://example.com/image1.jpg
|
|
1426
|
+
- image: https://example.com/image2.jpg
|
|
1422
1427
|
```
|
|
1423
|
-
This is not mentioned in the [Decap CMS
|
|
1428
|
+
This is not mentioned in the [Decap CMS document](https://decapcms.org/docs/widgets/#list), but it’s a known behaviour. If you expect the latter, you can use the `fields` (plural) option to define a single field:
|
|
1424
1429
|
```yaml
|
|
1425
1430
|
- name: images
|
|
1426
1431
|
label: Images
|
|
@@ -1644,31 +1649,36 @@ Due late 2025
|
|
|
1644
1649
|
|
|
1645
1650
|
Due early 2026
|
|
1646
1651
|
|
|
1647
|
-
- Implementing [a few deferred Netlify/Decap CMS features](#current-limitations), including editorial workflow and nested collections
|
|
1652
|
+
- Implementing [a few deferred Netlify/Decap CMS features](#current-limitations), including editorial workflow and nested collections, while addressing a number of bugs in their implementations
|
|
1648
1653
|
- Tackling even more Netlify/Decap CMS issues:
|
|
1649
1654
|
- [Manual entry sorting](https://github.com/sveltia/sveltia-cms/issues/214)[^125]
|
|
1650
1655
|
- [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)
|
|
1655
1656
|
- End-user documentation
|
|
1656
1657
|
|
|
1657
|
-
###
|
|
1658
|
-
|
|
1659
|
-
-
|
|
1660
|
-
- MDX support[^122]
|
|
1661
|
-
- [Saving drafts without editorial workflow](https://github.com/sveltia/sveltia-cms/discussions/440)[^261]
|
|
1662
|
-
- [Tables in Markdown](https://github.com/sveltia/sveltia-cms/issues/455)[^256]
|
|
1663
|
-
- [Config editor](https://github.com/sveltia/sveltia-cms/discussions/452)[^10]
|
|
1664
|
-
- [Theming](https://github.com/sveltia/sveltia-cms/issues/29)[^262]
|
|
1665
|
-
- [Reusable field groups](https://github.com/sveltia/sveltia-cms/discussions/463)[^263]
|
|
1666
|
-
- Offline support[^238]
|
|
1667
|
-
- and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
|
|
1668
|
-
- (some of them may be included in v2.0)
|
|
1669
|
-
- **Sveltia CMS Additions**: edge functions for Cloudflare Workers and possibly other platforms that provide features that cannot be implemented client-side:
|
|
1658
|
+
### v3.0
|
|
1659
|
+
|
|
1660
|
+
- **Sveltia CMS Additions**: Edge functions for Cloudflare Workers and possibly other platforms that provide features that cannot be implemented client-side:
|
|
1670
1661
|
- User management (Netlify Identity alternative) with roles[^23]
|
|
1671
1662
|
- Sign-in without a Git service account (Git Gateway alternative)
|
|
1663
|
+
- Contributor documentation
|
|
1664
|
+
|
|
1665
|
+
### TBD
|
|
1666
|
+
|
|
1667
|
+
- Tackling most of the remaining Netlify/Decap CMS issues (some may be included in v2.0 or v3.0):
|
|
1668
|
+
- [Top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), including:
|
|
1669
|
+
- MDX support[^122]
|
|
1670
|
+
- [Saving drafts without editorial workflow](https://github.com/sveltia/sveltia-cms/discussions/440)[^261]
|
|
1671
|
+
- [Tables in Markdown](https://github.com/sveltia/sveltia-cms/issues/455)[^256]
|
|
1672
|
+
- [Config editor](https://github.com/sveltia/sveltia-cms/discussions/452)[^10]
|
|
1673
|
+
- [Theming](https://github.com/sveltia/sveltia-cms/issues/29)[^262]
|
|
1674
|
+
- [Reusable field groups](https://github.com/sveltia/sveltia-cms/discussions/463)[^263]
|
|
1675
|
+
- Offline support[^238]
|
|
1676
|
+
- [Asset collections](https://github.com/sveltia/sveltia-cms/issues/301)[^271]
|
|
1677
|
+
- [Automatic asset file renaming with templates](https://github.com/sveltia/sveltia-cms/issues/422)[^241]
|
|
1678
|
+
- Advanced Relation fields[^242], including cascade updates/deletes[^243] and quick item additions[^266]
|
|
1679
|
+
- We’ll also implement [reverse reference lists](https://github.com/sveltia/sveltia-cms/discussions/416)
|
|
1680
|
+
- and many more (100+ issues and discussions)
|
|
1681
|
+
- Enhancements to Sveltia CMS Additions (some may be included in v3.0):
|
|
1672
1682
|
- Post locking (like [WordPress](https://codex.wordpress.org/Post_Locking))[^166]
|
|
1673
1683
|
- Scheduled posts[^167]
|
|
1674
1684
|
- Credential management for service API keys, deploy hook URL, etc.
|
|
@@ -1680,11 +1690,13 @@ Due early 2026
|
|
|
1680
1690
|
- View, compare and restore revisions (like [WordPress](https://wordpress.com/support/page-post-revisions/))
|
|
1681
1691
|
- More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
|
|
1682
1692
|
- AI integrations for image generation, content writing, translation, etc.
|
|
1683
|
-
- Search enhancements
|
|
1693
|
+
- Search enhancements:
|
|
1694
|
+
- Customizable search fields[^274]
|
|
1695
|
+
- Advanced search options
|
|
1696
|
+
- [Fuzzy search](https://www.fusejs.io/)
|
|
1684
1697
|
- Advanced digital asset management (DAM) features, including image editing and tagging[^114]
|
|
1685
|
-
- Marketplace for custom widgets, etc.
|
|
1698
|
+
- Marketplace for custom widgets, etc.[^273]
|
|
1686
1699
|
- Official starter templates for the most popular frameworks, including SvelteKit and Next.js
|
|
1687
|
-
- Contributor documentation
|
|
1688
1700
|
- and so much more!
|
|
1689
1701
|
|
|
1690
1702
|
## Trivia
|
|
@@ -2037,7 +2049,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2037
2049
|
|
|
2038
2050
|
[^166]: Netlify/Decap CMS [#277](https://github.com/decaporg/decap-cms/issues/277)
|
|
2039
2051
|
|
|
2040
|
-
[^167]: Netlify/Decap CMS [#263](https://github.com/decaporg/decap-cms/issues/263)
|
|
2052
|
+
[^167]: Netlify/Decap CMS [#263](https://github.com/decaporg/decap-cms/issues/263), [#2034](https://github.com/decaporg/decap-cms/issues/2034)
|
|
2041
2053
|
|
|
2042
2054
|
[^168]: Netlify/Decap CMS [#1948](https://github.com/decaporg/decap-cms/issues/1948)
|
|
2043
2055
|
|
|
@@ -2169,9 +2181,9 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2169
2181
|
|
|
2170
2182
|
[^232]: Netlify/Decap CMS [#7457](https://github.com/decaporg/decap-cms/issues/7457)
|
|
2171
2183
|
|
|
2172
|
-
[^233]: Netlify/Decap CMS [#535](https://github.com/decaporg/decap-cms/issues/535), [#1284](https://github.com/decaporg/decap-cms/issues/1284), [#3846](https://github.com/decaporg/decap-cms/issues/3846)
|
|
2184
|
+
[^233]: Netlify/Decap CMS [#427](https://github.com/decaporg/decap-cms/issues/427), [#535](https://github.com/decaporg/decap-cms/issues/535), [#1284](https://github.com/decaporg/decap-cms/issues/1284), [#3846](https://github.com/decaporg/decap-cms/issues/3846)
|
|
2173
2185
|
|
|
2174
|
-
[^234]: Netlify/Decap CMS [#
|
|
2186
|
+
[^234]: Netlify/Decap CMS [#2243](https://github.com/decaporg/decap-cms/issues/2243), [#4965](https://github.com/decaporg/decap-cms/issues/4965) — Rather than relying on a third-party library, we built our own asset browser that integrates more seamlessly with the rest of the CMS.
|
|
2175
2187
|
|
|
2176
2188
|
[^235]: Netlify/Decap CMS [#6905](https://github.com/decaporg/decap-cms/discussions/6905) — We use Lexical created by Facebook (Meta).
|
|
2177
2189
|
|
|
@@ -2242,3 +2254,13 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2242
2254
|
[^268]: Netlify/Decap CMS [#4945](https://github.com/decaporg/decap-cms/issues/4945)
|
|
2243
2255
|
|
|
2244
2256
|
[^269]: Netlify/Decap CMS [#7568](https://github.com/decaporg/decap-cms/issues/7568)
|
|
2257
|
+
|
|
2258
|
+
[^270]: Netlify/Decap CMS [#292](https://github.com/decaporg/decap-cms/issues/292) — It cannot be found in the current version of Decap CMS.
|
|
2259
|
+
|
|
2260
|
+
[^271]: Netlify/Decap CMS [#1046](https://github.com/decaporg/decap-cms/issues/1046)
|
|
2261
|
+
|
|
2262
|
+
[^272]: Netlify/Decap CMS [#4702](https://github.com/decaporg/decap-cms/issues/4702)
|
|
2263
|
+
|
|
2264
|
+
[^273]: Netlify/Decap CMS [#919](https://github.com/decaporg/decap-cms/issues/919), [#936](https://github.com/decaporg/decap-cms/issues/936), [#1286](https://github.com/decaporg/decap-cms/issues/1286), [#1288](https://github.com/decaporg/decap-cms/issues/1288), [#1400](https://github.com/decaporg/decap-cms/issues/1400)
|
|
2265
|
+
|
|
2266
|
+
[^274]: Netlify/Decap CMS [#549](https://github.com/decaporg/decap-cms/issues/549)
|