@sveltia/cms 0.122.1 → 0.123.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 +14 -23
- package/dist/sveltia-cms.js +204 -204
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +217 -217
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/sveltia-cms.json +1 -1
- package/types/public.d.ts +5 -4
package/README.md
CHANGED
|
@@ -102,7 +102,6 @@ This free, open source successor to Netlify/Decap CMS is currently in public bet
|
|
|
102
102
|
- [v3.0](#v30)
|
|
103
103
|
- [TBD](#tbd)
|
|
104
104
|
- [Non-goals](#non-goals)
|
|
105
|
-
- [Trivia](#trivia)
|
|
106
105
|
- [Related Links](#related-links)
|
|
107
106
|
- [As seen on](#as-seen-on)
|
|
108
107
|
- [Privacy](#privacy)
|
|
@@ -127,14 +126,16 @@ Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successo
|
|
|
127
126
|
- **Sveltia CMS**: not a fork but a **complete rewrite**
|
|
128
127
|
- Started in November 2022, first appeared on GitHub in March 2023
|
|
129
128
|
- ✅ Actively developed with frequent releases and numerous improvements
|
|
130
|
-
- ✅ Relevant issues are being
|
|
131
|
-
- ✅ Most of bug reports are addressed promptly, usually within a day
|
|
129
|
+
- ✅ Relevant issues are being resolved regardless of their age or status
|
|
130
|
+
- ✅ Most of new bug reports are addressed promptly, usually within a day
|
|
131
|
+
- ✅ An [extensive roadmap](#roadmap) is available to keep users informed
|
|
132
132
|
- ✅ No known unpatched security vulnerabilities, with dependencies kept up-to-date
|
|
133
133
|
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version
|
|
134
134
|
- [Announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as an official continuation with a Netlify agency partner taking ownership
|
|
135
135
|
- ⚠️ Mostly low activity with only occasional releases and a few minor improvements
|
|
136
136
|
- ⚠️ Seemingly random issues were closed as stale following the takeover
|
|
137
137
|
- ⚠️ Bug reports continue to pile up, often without any response
|
|
138
|
+
- ⚠️ No public roadmap is available, leaving users in the dark
|
|
138
139
|
- ❌ A moderate severity [XSS vulnerability](https://github.com/advisories/GHSA-xp8g-32qh-mv28), high severity dependency vulnerabilities and fatal crashes remain unaddressed
|
|
139
140
|
|
|
140
141
|
Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt, and numerous bugs of Netlify CMS, which was launched in 2015. Our product is **better by design**:
|
|
@@ -145,12 +146,11 @@ Sveltia CMS is the only project that doesn’t inherit the complexity, technical
|
|
|
145
146
|
- We closely monitor and analyze the predecessor’s issue tracker
|
|
146
147
|
- We rearchitect the entire user experience (UX) and developer experience (DX)
|
|
147
148
|
|
|
148
|
-
This “total reboot” has enabled us to implement hundreds of improvements without getting stuck in a legacy system.
|
|
149
|
+
This “total reboot” has enabled us to implement hundreds of improvements without getting stuck in a legacy system. Furthermore:
|
|
149
150
|
|
|
150
151
|
- We dedicate significant time and effort to modernizing the platform
|
|
151
152
|
- We continue to address [issues](https://github.com/decaporg/decap-cms/issues) reported in the predecessor’s repository
|
|
152
153
|
- We materialize the enhancements that Netlify CMS users have long desired
|
|
153
|
-
- We deliver [regular updates](https://github.com/sveltia/sveltia-cms/releases) and [clear goals](#roadmap)
|
|
154
154
|
|
|
155
155
|
For that reason, Sveltia CMS is the **true successor to Netlify CMS** — not just a spiritual successor or a mere alternative — and the best choice for users looking to migrate from the predecessor, other successors, or even other CMS solutions.
|
|
156
156
|
|
|
@@ -172,11 +172,10 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
172
172
|
- The vast majority of existing configurations work out of the box
|
|
173
173
|
- It works as a drop-in replacement for most use cases
|
|
174
174
|
- Some missing features will be implemented before or shortly after GA
|
|
175
|
-
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
176
175
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
177
176
|
- So far, **275+ issues, or 595+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
|
|
178
177
|
- Target:
|
|
179
|
-
-
|
|
178
|
+
- 300 issues, or 600 if including duplicates, by GA — Almost there! 🚀
|
|
180
179
|
- 450 issues, or 900 if including duplicates, in the future 💪
|
|
181
180
|
- or every single issue that’s relevant, fixable, and worth dealing with 🔥
|
|
182
181
|
- Issues include everything:
|
|
@@ -188,10 +187,8 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
188
187
|
- The remaining bugs are mostly related to [unimplemented features](#current-limitations)
|
|
189
188
|
- 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](#roadmap) or already implemented in Sveltia CMS
|
|
190
189
|
- Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
|
|
191
|
-
- Preparing
|
|
190
|
+
- Preparing top-notch [documentation](https://github.com/sveltia/sveltia-cms/issues/485)
|
|
192
191
|
- Implementing our own enhancement ideas for every part of the product
|
|
193
|
-
- Responding to requests from the maintainer’s clients
|
|
194
|
-
- Making the code clean and maintainable
|
|
195
192
|
|
|
196
193
|
<br>
|
|
197
194
|
|
|
@@ -300,7 +297,7 @@ We’ve made various improvements to help you get your work done faster and more
|
|
|
300
297
|
- Also supports [multiple configuration files](#providing-multiple-configuration-files) to allow developers to modularize the configuration.[^197]
|
|
301
298
|
- We provide an [up-to-date JSON schema](#enabling-autocomplete-and-validation-for-the-configuration-file) for YAML/JSON configuration files, which enables autocomplete and validation in VS Code and other editors.[^253] If you use [deprecated options](#deprecations) in a supported code editor, you should receive a warning.
|
|
302
299
|
- Improved TypeScript support:
|
|
303
|
-
- We keep our type definitions for `CMS.init()` and other methods complete, accurate, up-to-date and annotated.[^190][^191][^192][^193][^227] This makes it easier to provide a
|
|
300
|
+
- We keep our type definitions for `CMS.init()` and other methods complete, accurate, up-to-date and annotated.[^190][^191][^192][^193][^227] This makes it easier to provide a config object when [manually initializing](https://decapcms.org/docs/manual-initialization/) the CMS.
|
|
304
301
|
- Config validation enhancements:
|
|
305
302
|
- Sveltia CMS has additional validation rules designed to prevent common misconfigurations that could lead to runtime errors:
|
|
306
303
|
- Common backend misconfigurations, such as an incorrect repository name or a missing OAuth client ID[^303]
|
|
@@ -355,7 +352,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
355
352
|
- 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.
|
|
356
353
|
- Gives more control over [entry file paths](#controlling-entry-file-paths):
|
|
357
354
|
- The new `multiple_folders_i18n_root` i18n structure allows to have locale folders below the project root: `/<locale>/<folder>/<path>.<extension>`.[^182]
|
|
358
|
-
- The new `omit_default_locale_from_filename` i18n option allows to exclude the default locale from filenames. This option applies to
|
|
355
|
+
- The new `omit_default_locale_from_filename` i18n option allows to exclude the default locale from filenames. This option applies to folder 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))
|
|
359
356
|
- [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]
|
|
360
357
|
- Entry slug enhancements:
|
|
361
358
|
- It’s possible to [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug), which is a good option for locales that write in non-Latin characters.
|
|
@@ -415,6 +412,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
415
412
|
- Sveltia CMS supports [singletons](#using-singletons), a simple form of a file collection.[^233]
|
|
416
413
|
- File collections support files without extensions.[^255] This is useful for [editing site deployment configuration files](#editing-site-deployment-configuration-files), such as `_headers` and `_redirects`.
|
|
417
414
|
- Each file in a file collection has the `format` and `frontmatter_delimiter` options, which can be used to specify the file format, making it possible to have `yaml-frontmatter`, `toml-frontmatter` and `json-frontmatter` side by side.[^218]
|
|
415
|
+
- The `create` option for folder collections defaults to `true`, providing a better out-of-the-box experience.
|
|
418
416
|
- The collection `label` defaults to the `name` value according to the [Decap CMS document](https://decapcms.org/docs/configuration-options/#collections), while Netlify/Decap CMS actually throws a configuration error if the `label` option is omitted.
|
|
419
417
|
- Nested fields (dot notation) can be used in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`.[^62]
|
|
420
418
|
- Markdown is supported in the `description` collection option.[^79] Bold, italic, strikethrough, code and links are allowed.
|
|
@@ -709,7 +707,7 @@ We are working hard to implement several missing features from Netlify/Decap CMS
|
|
|
709
707
|
- Preview for [custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent) (`CMS.registerEditorComponent`)
|
|
710
708
|
- [Custom widgets](https://decapcms.org/docs/custom-widgets/) (`CMS.registerWidget`)
|
|
711
709
|
- [Custom preview templates](https://decapcms.org/docs/customization/#registerpreviewtemplate) (`CMS.registerPreviewTemplate`) ([#51](https://github.com/sveltia/sveltia-cms/issues/51))
|
|
712
|
-
- [Documentation](https://github.com/sveltia/sveltia-cms/issues/485) and
|
|
710
|
+
- [Documentation](https://github.com/sveltia/sveltia-cms/issues/485) and config validation are under development.
|
|
713
711
|
- [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md) and a [demo site](https://github.com/sveltia/sveltia-cms/issues/1) will follow soon.
|
|
714
712
|
- Due to the complexity, we have decided to **defer the following features to the 1.x or 2.0 release** due mid-2026. Netlify/Decap CMS has dozens of open issues with these collaboration and beta features — we want to implement them the right way.
|
|
715
713
|
- [Editorial workflow](https://decapcms.org/docs/editorial-workflows/)
|
|
@@ -721,7 +719,7 @@ We are working hard to implement several missing features from Netlify/Decap CMS
|
|
|
721
719
|
The following Netlify/Decap CMS features will not be added to Sveltia CMS, primarily due to considerations relating to their deprecation.
|
|
722
720
|
|
|
723
721
|
- **Azure and Bitbucket backends**: For performance reasons. We’ll support these platforms if their APIs improve to allow the CMS to fetch multiple entries at once.
|
|
724
|
-
- **Git Gateway backend**: Git Gateway is now [deprecated](https://docs.netlify.com/manage/security/secure-access-to-sites/git-gateway/) by Netlify. Like the Azure and Bitbucket backends, it also has performance issues. We plan to develop a GraphQL-based high-performance alternative [in the future](#roadmap) to provide a migration path for existing Git Gateway users.
|
|
722
|
+
- **Git Gateway backend**: Git Gateway is now officially [deprecated](https://docs.netlify.com/manage/security/secure-access-to-sites/git-gateway/) by Netlify. Like the Azure and Bitbucket backends, it also has performance issues. We plan to develop a GraphQL-based high-performance alternative [in the future](#roadmap) to provide a migration path for existing Git Gateway users.
|
|
725
723
|
- **Netlify Identity Widget**: It’s not useful without Git Gateway, and the Netlify Identity service itself is now [deprecated](https://www.netlify.com/changelog/deprecation-netlify-identity/). We plan to develop an alternative solution with role support [in the future](#roadmap), most likely using [Cloudflare Workers](https://workers.cloudflare.com/) and [Auth.js](https://authjs.dev/).
|
|
726
724
|
- [Gatsby plugin](https://github.com/decaporg/gatsby-plugin-decap-cms): In light of Gatsby’s [uncertainty](https://github.com/gatsbyjs/gatsby/discussions/39062), we won’t be investing time in developing a plugin for it. Gatsby users can still create `index.html` themselves. Note: We don’t support Netlify Identity Widget; the favicon can be specified with the `logo.src` option.
|
|
727
725
|
- The deprecated client-side implicit grant for the GitLab backend: It has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
|
|
@@ -758,6 +756,7 @@ There are some differences in behaviour between Sveltia CMS and Netlify/Decap CM
|
|
|
758
756
|
- In some cases, the [data output](#better-data-output) of Sveltia CMS may differ from that of Netlify/Decap CMS. Notably, Sveltia CMS does not omit empty optional fields by default. If you have data validation in your site generator, this could cause issues. Use the `omit_empty_optional_fields` [output option](#controlling-data-output) if needed.
|
|
759
757
|
- Sveltia CMS requires a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), meaning it only works with HTTPS, `localhost` or `127.0.0.1` URLs. If you’re running your own remote server and serving content over HTTP, the CMS will not work. We recommend obtaining a TLS certificate from [Let’s Encrypt](https://letsencrypt.org/).
|
|
760
758
|
- As of [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0), the `sanitize_preview` option for the [Markdown](https://decapcms.org/docs/widgets/#Markdown) widget is set to `true` by default to prevent potential XSS attacks via entry previews. We recommend keeping this option enabled unless disabling it fixes a broken preview and you fully trust all users of your CMS.
|
|
759
|
+
- As of [Sveltia CMS 0.123.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.123.0), the `create` option for folder collections defaults to `true` because, in 99.99% of cases, users want to create new entries and adding `create: true` to every folder collection is redundant. To disable entry creation, set `create: false` explicitly.
|
|
761
760
|
|
|
762
761
|
There may be other minor differences in behaviour that are not listed here.
|
|
763
762
|
|
|
@@ -2021,7 +2020,7 @@ Due early 2026
|
|
|
2021
2020
|
- Enhanced [compatibility with Netlify/Decap CMS](#compatibility)
|
|
2022
2021
|
- Tackling some more Netlify/Decap CMS issues:
|
|
2023
2022
|
- PKCE for GitHub[^285] — It’s [not yet supported](https://github.com/orgs/community/discussions/15752) by GitHub but is [planned for Q4 2025](https://github.com/github/roadmap/issues/1153)
|
|
2024
|
-
- Thorough
|
|
2023
|
+
- Thorough config validation[^246]
|
|
2025
2024
|
- [Entry pre-validation/normalization](https://github.com/sveltia/sveltia-cms/issues/395)[^248]
|
|
2026
2025
|
- Accessibility audit
|
|
2027
2026
|
- [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md)
|
|
@@ -2105,14 +2104,6 @@ Due late 2026
|
|
|
2105
2104
|
- Monetization. We may offer an affordable cloud version in the future since self-hosting the CMS can be a hassle. However, we will not charge for the CMS itself. We want to keep it free and open source forever.
|
|
2106
2105
|
- Creating the longest README file in the world. 😉
|
|
2107
2106
|
|
|
2108
|
-
## Trivia
|
|
2109
|
-
|
|
2110
|
-
- The [original version of Netlify CMS](https://github.com/netlify/netlify-cms-legacy) was built with Ember before being rewritten in React. There was also an [attempt](https://github.com/decaporg/decap-cms/issues/328) to replace React with Preact. Now we have completely rebuilt it in Svelte 4 and then in Svelte 5. So this is effectively the third/fourth time the application has gone through a framework migration. One more thing: We may migrate to [Ripple](https://www.ripplejs.com/) in the future if it looks promising.
|
|
2111
|
-
- We write our code in [TypeScript-flavoured JavaScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html) to maintain readability while enabling strict type checking. During the build process, our type definitions are first converted to a TypeScript declaration file and then to a [JSON schema](#enabling-autocomplete-and-validation-for-the-configuration-file). We are not alone: [Svelte](https://devclass.com/2023/05/11/typescript-is-not-worth-it-for-developing-libraries-says-svelte-author-as-team-switches-to-javascript-and-jsdoc/) and [Prism](https://github.com/PrismJS/prism/pull/4000) have both dropped TypeScript in favour of JSDoc.
|
|
2112
|
-
- Our [local repository workflow](#working-with-a-local-git-repository) shares implementation with the Test backend, as both utilize the [File System API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_API), allowing us to reduce maintenance costs. The seamless local workflow is critical not only for an improved DX, but also for our rapid application development.
|
|
2113
|
-
- What is Sveltia, by the way? It implies something related to Svelte, but it has [another meaning](https://en.wikipedia.org/wiki/Sveltia).
|
|
2114
|
-
- The maintainer may look 25 years younger than his actual age. [Here’s why](https://github.com/kyoshino#fun-facts-about-me).
|
|
2115
|
-
|
|
2116
2107
|
## Related Links
|
|
2117
2108
|
|
|
2118
2109
|
- Introducing Sveltia CMS: a short technical presentation by [@kyoshino](https://github.com/kyoshino) during the _This Week in Svelte_ online meetup on March 31, 2023 — [recording](https://youtu.be/-YjLubiieYs?t=1660) & [slides](https://docs.google.com/presentation/d/1Wi4ty-1AwOp2-zy7LctmzCV4rrdYPfke9NGhO0DdRdM)
|