@sveltia/cms 0.122.0 → 0.122.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 +29 -15
- package/dist/sveltia-cms.js +208 -208
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +211 -211
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Sveltia CMS: Netlify/Decap CMS successor
|
|
2
2
|
|
|
3
|
-
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, direct replacement for Netlify CMS (now Decap CMS). We have picked up where they left off and have already solved over
|
|
3
|
+
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, direct replacement for Netlify CMS (now Decap CMS). We have picked up where they left off and have already solved over 275 issues reported in the predecessor’s repository, ranging from critical bugs to top feature requests.
|
|
4
4
|
|
|
5
5
|
Built from the ground up, Sveltia CMS offers excellent UX, DX, performance, security and internationalization (i18n) support. Although some features are still missing, our numerous enhancements across the board ensure smooth daily workflows for content editors and developers alike.
|
|
6
6
|
|
|
@@ -174,7 +174,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
174
174
|
- Some missing features will be implemented before or shortly after GA
|
|
175
175
|
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
176
176
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
177
|
-
- So far, **
|
|
177
|
+
- So far, **275+ issues, or 595+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
|
|
178
178
|
- Target:
|
|
179
179
|
- 250 issues, or 500 if including duplicates, by GA — We did it! 🎉
|
|
180
180
|
- 450 issues, or 900 if including duplicates, in the future 💪
|
|
@@ -193,7 +193,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
193
193
|
- Responding to requests from the maintainer’s clients
|
|
194
194
|
- Making the code clean and maintainable
|
|
195
195
|
|
|
196
|
-
<br>
|
|
197
197
|
|
|
198
198
|
## Differentiators
|
|
199
199
|
|
|
@@ -222,7 +222,7 @@ Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap
|
|
|
222
222
|
### Better performance
|
|
223
223
|
|
|
224
224
|
- Built completely from scratch with [Svelte](https://svelte.dev/) instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast with [no virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead). Note that Svelte is a compiler and Sveltia CMS is framework-agnostic; it’s served as a vanilla JavaScript bundle.
|
|
225
|
-
- 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.5 MB) and Static CMS (2.6 MB).[^57]
|
|
225
|
+
- 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.5 MB) and Static CMS (2.6 MB).[^57] This significant reduction in size is thanks to the combination of [Svelte 5](https://svelte.dev/blog/svelte-5-is-alive) and [Vite](https://vite.dev/). Sveltia CMS also dynamically loads certain dependencies only when needed, further reducing the initial load time.
|
|
226
226
|
- 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 therefore ignored). It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation fields.[^14]
|
|
227
227
|
- 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/).
|
|
228
228
|
- The Gitea/Forgejo backend is also faster because it utilizes an efficient API method introduced in Gitea 1.24 and Forgejo 12.0.
|
|
@@ -255,7 +255,7 @@ We’ve made various improvements to help you get your work done faster and more
|
|
|
255
255
|
|
|
256
256
|
### Better security
|
|
257
257
|
|
|
258
|
-
- Avoids vulnerabilities in dependencies through constant updates, Dependabot alerts, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases, unlike Netlify/Decap CMS where a number of high severity vulnerabilities remain unaddressed for a long time.[^33]
|
|
258
|
+
- Avoids vulnerabilities in dependencies through constant updates, Dependabot alerts, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases, unlike Netlify/Decap CMS where a number of high severity vulnerabilities remain unaddressed for a long time.[^33][^313]
|
|
259
259
|
- We also use the [`cooldown`](https://github.com/raineorshine/npm-check-updates#cooldown) option for `ncu` and the [`minimumReleaseAge`](https://pnpm.io/settings#minimumreleaseage) option for `pnpm` to avoid upgrading to a version that was just released. These options help protect against npm supply chain attacks.
|
|
260
260
|
- The **unpatched** [XSS vulnerability](https://github.com/advisories/GHSA-xp8g-32qh-mv28) in Decap CMS does not affect Sveltia CMS, as our entry preview implementation is completely different.
|
|
261
261
|
- However, the Markdown widget was potentially vulnerable to XSS attacks because the `sanitize_preview` option was set to `false` by default for compatibility with Netlify/Decap CMS. This behaviour is [documented](https://decapcms.org/docs/widgets/#Markdown) and is not a bug, but it’s definitely not secure. In [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0), we changed the default value to `true`, assuming that most users would prefer security over compatibility.
|
|
@@ -343,6 +343,7 @@ The [GitHub](https://decapcms.org/docs/github-backend/), [GitLab](https://decapc
|
|
|
343
343
|
- Developers can select the local and remote backends while working on a local server.
|
|
344
344
|
- The Test backend saves entries and assets in the browser’s [origin private file system](https://web.dev/articles/origin-private-file-system) (OPFS) so that changes are not discarded when the browser tab is closed or reloaded.[^194] The persistent storage support works with all modern browsers [except Safari](https://bugs.webkit.org/show_bug.cgi?id=254726).
|
|
345
345
|
- Commit message template supports the `{{author-email}}` template tag to include the author’s email address.
|
|
346
|
+
- API error messages are displayed in a user-friendly manner instead of generic messages like `Failed to fetch`.[^309]
|
|
346
347
|
|
|
347
348
|
### Better i18n support
|
|
348
349
|
|
|
@@ -543,13 +544,15 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
543
544
|
- The map’s zoom level is adjusted more intuitively using pinch gestures.
|
|
544
545
|
- The map looks good in dark mode.
|
|
545
546
|
- Markdown
|
|
546
|
-
- 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,[^235] including fatal application crashes,[^71][^72][^73][^111] lost formatting when pasting,[^124] an extra line break when pasting,[^169] extra HTML comments when pasting,[^229] backslash injections,[^53] dropdown visibility,[^70] and text input difficulties with IME.[^54]
|
|
547
|
+
- 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,[^235] including fatal application crashes,[^71][^72][^73][^111] lost formatting when pasting,[^124][^311] an extra line break when pasting,[^169] extra HTML comments when pasting,[^229] backslash injections,[^53] dropdown visibility,[^70] and text input difficulties with IME.[^54]
|
|
547
548
|
- For [better security](#better-security), the `sanitize_preview` option defaults to `true` since [Sveltia CMS 0.105.0](https://github.com/sveltia/sveltia-cms/releases/tag/v0.105.0).
|
|
548
549
|
- 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.
|
|
549
550
|
- A Markdown field plays well with a variable type List field.[^202]
|
|
550
551
|
- The bullet list marker is a hyphen (`-`) rather than an asterisk (`*`), which is the comment form’s default behaviour on GitHub and GitLab.[^296]
|
|
551
552
|
- 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.
|
|
552
553
|
- When deleting a linked text, the link is removed cleanly without leaving behind any unwanted characters.[^298]
|
|
554
|
+
- Bare URLs are rendered as clickable links in the preview.[^312]
|
|
555
|
+
- An editor component can be removed with a single click on the Remove button.[^310]
|
|
553
556
|
- The built-in `image` component can be inserted with a single click.
|
|
554
557
|
- The built-in `image` component allows users to add, edit or remove a link on an image.[^171] To disable this feature, add `linked_images: false` to the Markdown field options.
|
|
555
558
|
- 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.[^284]
|
|
@@ -575,6 +578,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
575
578
|
- A new item created in a referenced collection is immediately available in the options.[^138]
|
|
576
579
|
- A referenced DateTime field value is displayed in the specified format.[^221]
|
|
577
580
|
- It’s possible to refer to a List field with the `field` option, which produces a single subfield but does not output the subfield `name` in the data, using the `value_field: cities.*.name` syntax. ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/400))
|
|
581
|
+
- Supports the `filters` option to filter available options based on field values in the referenced collection.[^308] The implementation is compatible with Decap CMS.
|
|
578
582
|
- Select
|
|
579
583
|
- It’s possible to select an option with value `0`.[^56]
|
|
580
584
|
- `label` is displayed in the Preview Pane instead of `value`.
|
|
@@ -680,7 +684,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
680
684
|
- No error is raised in the browser console saying `Sent invalid data to remark`[^280] or `onValidate is not a function`.[^281]
|
|
681
685
|
- Enhancements to [event hooks](https://decapcms.org/docs/registering-events/):
|
|
682
686
|
- Missing `identifier_field` won’t cause an error when the `preSave` hook is triggered.[^306]
|
|
683
|
-
- Content can be modified in the `prePublish` hook (once we support editorial workflow).[^307]
|
|
687
|
+
<!-- - Content can be modified in the `prePublish` hook (once we support editorial workflow).[^307] -->
|
|
684
688
|
- Async functions can be used for [custom parsers/formatters](https://decapcms.org/docs/custom-formatters/).[^149]
|
|
685
689
|
- The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if exists.[^109]
|
|
686
690
|
|
|
@@ -2192,7 +2196,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2192
2196
|
|
|
2193
2197
|
[^28]: Netlify/Decap CMS [#2677](https://github.com/decaporg/decap-cms/issues/2677), [#6836](https://github.com/decaporg/decap-cms/pull/6836)
|
|
2194
2198
|
|
|
2195
|
-
[^29]: Netlify/Decap CMS [#3750](https://github.com/decaporg/decap-cms/issues/3750), [#4783](https://github.com/decaporg/decap-cms/issues/4783), [#6801](https://github.com/decaporg/decap-cms/issues/6801), [#6806](https://github.com/decaporg/decap-cms/discussions/6806)
|
|
2199
|
+
[^29]: Netlify/Decap CMS [#3750](https://github.com/decaporg/decap-cms/issues/3750), [#4735](https://github.com/decaporg/decap-cms/issues/4735), [#4783](https://github.com/decaporg/decap-cms/issues/4783), [#6801](https://github.com/decaporg/decap-cms/issues/6801), [#6806](https://github.com/decaporg/decap-cms/discussions/6806)
|
|
2196
2200
|
|
|
2197
2201
|
[^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565), [#6733](https://github.com/decaporg/decap-cms/discussions/6733)
|
|
2198
2202
|
|
|
@@ -2200,7 +2204,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2200
2204
|
|
|
2201
2205
|
[^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
|
|
2202
2206
|
|
|
2203
|
-
[^33]: Netlify/Decap CMS [#
|
|
2207
|
+
[^33]: Netlify/Decap CMS [#4532](https://github.com/decaporg/decap-cms/issues/4532), [#6513](https://github.com/decaporg/decap-cms/issues/6513), [#7295](https://github.com/decaporg/decap-cms/issues/7295), [#7567](https://github.com/decaporg/decap-cms/issues/7567)
|
|
2204
2208
|
|
|
2205
2209
|
[^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138), [#2343](https://github.com/decaporg/decap-cms/issues/2343), [#4367](https://github.com/decaporg/decap-cms/issues/4367), [#5932](https://github.com/decaporg/decap-cms/discussions/5932)
|
|
2206
2210
|
|
|
@@ -2262,8 +2266,6 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2262
2266
|
|
|
2263
2267
|
[^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
|
|
2264
2268
|
|
|
2265
|
-
[^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
|
|
2266
|
-
|
|
2267
2269
|
[^65]: Netlify/Decap CMS [#6034](https://github.com/decaporg/decap-cms/issues/6034)
|
|
2268
2270
|
|
|
2269
2271
|
[^66]: Netlify/Decap CMS [#3353](https://github.com/decaporg/decap-cms/issues/3353)
|
|
@@ -2280,7 +2282,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2280
2282
|
|
|
2281
2283
|
[^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
|
|
2282
2284
|
|
|
2283
|
-
[^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), [#7475](https://github.com/decaporg/decap-cms/issues/7475), [#7480](https://github.com/decaporg/decap-cms/issues/7480), [#7503](https://github.com/decaporg/decap-cms/issues/7503), [#7504](https://github.com/decaporg/decap-cms/issues/7504), [#7524](https://github.com/decaporg/decap-cms/issues/7524), [#7531](https://github.com/decaporg/decap-cms/issues/7531), [#7535](https://github.com/decaporg/decap-cms/issues/7535), [#7553](https://github.com/decaporg/decap-cms/issues/7553), [#7561](https://github.com/decaporg/decap-cms/issues/7561), [#7584](https://github.com/decaporg/decap-cms/issues/7584), [#7591](https://github.com/decaporg/decap-cms/issues/7591), [#7609](https://github.com/decaporg/decap-cms/issues/7609), [#7628](https://github.com/decaporg/decap-cms/issues/7628)
|
|
2285
|
+
[^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), [#7475](https://github.com/decaporg/decap-cms/issues/7475), [#7480](https://github.com/decaporg/decap-cms/issues/7480), [#7503](https://github.com/decaporg/decap-cms/issues/7503), [#7504](https://github.com/decaporg/decap-cms/issues/7504), [#7524](https://github.com/decaporg/decap-cms/issues/7524), [#7531](https://github.com/decaporg/decap-cms/issues/7531), [#7535](https://github.com/decaporg/decap-cms/issues/7535), [#7553](https://github.com/decaporg/decap-cms/issues/7553), [#7561](https://github.com/decaporg/decap-cms/issues/7561), [#7584](https://github.com/decaporg/decap-cms/issues/7584), [#7591](https://github.com/decaporg/decap-cms/issues/7591), [#7609](https://github.com/decaporg/decap-cms/issues/7609), [#7628](https://github.com/decaporg/decap-cms/issues/7628), [#7677](https://github.com/decaporg/decap-cms/issues/7677)
|
|
2284
2286
|
|
|
2285
2287
|
[^74]: Netlify/Decap CMS [#4209](https://github.com/decaporg/decap-cms/issues/4209)
|
|
2286
2288
|
|
|
@@ -2338,7 +2340,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2338
2340
|
|
|
2339
2341
|
[^101]: Netlify/Decap CMS [#5969](https://github.com/decaporg/decap-cms/issues/5969)
|
|
2340
2342
|
|
|
2341
|
-
[^102]: Netlify/Decap CMS [#1270](https://github.com/decaporg/decap-cms/issues/1270)
|
|
2343
|
+
[^102]: Netlify/Decap CMS [#1270](https://github.com/decaporg/decap-cms/issues/1270), [#7425](https://github.com/decaporg/decap-cms/discussions/7425)
|
|
2342
2344
|
|
|
2343
2345
|
[^103]: Netlify/Decap CMS [#6307](https://github.com/decaporg/decap-cms/issues/6307)
|
|
2344
2346
|
|
|
@@ -2374,7 +2376,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2374
2376
|
|
|
2375
2377
|
[^119]: Netlify/Decap CMS [#5640](https://github.com/decaporg/decap-cms/issues/5640), [#6444](https://github.com/decaporg/decap-cms/issues/6444)
|
|
2376
2378
|
|
|
2377
|
-
[^120]: Netlify/Decap CMS [#2727](https://github.com/decaporg/decap-cms/issues/2727), [#4884](https://github.com/decaporg/decap-cms/issues/4884), [#6908](https://github.com/decaporg/decap-cms/discussions/6908)
|
|
2379
|
+
[^120]: Netlify/Decap CMS [#1245](https://github.com/decaporg/decap-cms/issues/1245), [#2727](https://github.com/decaporg/decap-cms/issues/2727), [#4884](https://github.com/decaporg/decap-cms/issues/4884), [#6908](https://github.com/decaporg/decap-cms/discussions/6908)
|
|
2378
2380
|
|
|
2379
2381
|
[^121]: Netlify/Decap CMS [#7262](https://github.com/decaporg/decap-cms/issues/7262)
|
|
2380
2382
|
|
|
@@ -2736,8 +2738,20 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2736
2738
|
|
|
2737
2739
|
[^304]: Netlify/Decap CMS [#4538](https://github.com/decaporg/decap-cms/issues/4538), [#6371](https://github.com/decaporg/decap-cms/issues/6371)
|
|
2738
2740
|
|
|
2739
|
-
[^305]: Netlify/Decap CMS [#1483](https://github.com/decaporg/decap-cms/issues/1483)
|
|
2741
|
+
[^305]: Netlify/Decap CMS [#1235](https://github.com/decaporg/decap-cms/issues/1235), [#1483](https://github.com/decaporg/decap-cms/issues/1483)
|
|
2740
2742
|
|
|
2741
2743
|
[^306]: Netlify/Decap CMS [#6775](https://github.com/decaporg/decap-cms/issues/6775)
|
|
2742
2744
|
|
|
2743
2745
|
[^307]: Netlify/Decap CMS [#7133](https://github.com/decaporg/decap-cms/issues/7133)
|
|
2746
|
+
|
|
2747
|
+
[^308]: Netlify/Decap CMS [#2405](https://github.com/decaporg/decap-cms/issues/2405), [#3816](https://github.com/decaporg/decap-cms/issues/3816)
|
|
2748
|
+
|
|
2749
|
+
[^309]: Netlify/Decap CMS [#2827](https://github.com/decaporg/decap-cms/issues/2827)
|
|
2750
|
+
|
|
2751
|
+
[^310]: Netlify/Decap CMS [#3531](https://github.com/decaporg/decap-cms/issues/3531)
|
|
2752
|
+
|
|
2753
|
+
[^311]: Netlify/Decap CMS [#3437](https://github.com/decaporg/decap-cms/issues/3437)
|
|
2754
|
+
|
|
2755
|
+
[^312]: Netlify/Decap CMS [#1004](https://github.com/decaporg/decap-cms/issues/1004)
|
|
2756
|
+
|
|
2757
|
+
[^313]: Netlify/Decap CMS [#542](https://github.com/decaporg/decap-cms/issues/542)
|