@sveltia/cms 0.38.3 → 0.39.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 +31 -24
- package/dist/sveltia-cms.js +3812 -270
- package/dist/sveltia-cms.js.map +1 -0
- package/dist/sveltia-cms.mjs +3812 -270
- package/dist/sveltia-cms.mjs.map +1 -0
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -22,13 +22,13 @@ To achieve radical improvements in UX, performance, i18n and other areas, it was
|
|
|
22
22
|
|
|
23
23
|
Due to its unfortunate abandonment, Netlify CMS spawned 3 successors:
|
|
24
24
|
|
|
25
|
-
- [Static CMS](https://github.com/StaticJsCMS/static-cms): a community maintenance fork,
|
|
25
|
+
- [Static CMS](https://github.com/StaticJsCMS/static-cms): a community maintenance fork, initial commit made in September 2022, discontinued in September 2024
|
|
26
26
|
- **Sveltia CMS**: a total reboot, started in November 2022, first appeared on GitHub in March 2023
|
|
27
27
|
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, owned by a Netlify agency partner, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor
|
|
28
28
|
|
|
29
29
|
Sveltia CMS is the only project that doesn’t inherit the complexity, technical debt and miscellaneous bugs of Netlify CMS, which was launched back in 2016. We are confident that our decision to rebuild the application from scratch was the right one, as proven by the hundreds of improvements we have already made.
|
|
30
30
|
|
|
31
|
-
While Sveltia CMS is specifically designed to replace legacy Netlify CMS instances, it also aims to serve as a substitute for the other products. (Note:
|
|
31
|
+
While Sveltia CMS is specifically designed to replace legacy Netlify CMS instances, it also aims to serve as a substitute for the other products. (Note: While we are closely following the development of Decap CMS, compatibility with Static CMS will be worked on after the release of Sveltia CMS 1.0)
|
|
32
32
|
|
|
33
33
|
### Our goals
|
|
34
34
|
|
|
@@ -42,16 +42,15 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
|
|
|
42
42
|
|
|
43
43
|
Sveltia CMS is **still in beta**, so please be careful when trying it out.
|
|
44
44
|
|
|
45
|
-
While we
|
|
45
|
+
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 involves different kinds of activities:
|
|
46
46
|
|
|
47
|
-
- Ensuring
|
|
47
|
+
- Ensuring substantial [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
|
|
48
48
|
- Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible
|
|
49
|
-
- So far, 115+ of them (or
|
|
50
|
-
- Target:
|
|
49
|
+
- So far, 115+ of them (or 195+ including duplicates) have been effectively solved in Sveltia CMS
|
|
50
|
+
- Target: 150 issues by GA, 250 in a future release
|
|
51
51
|
- [Let us know](https://github.com/sveltia/sveltia-cms/issues/new) if you have any specific issues you’d like to see solved!
|
|
52
|
-
- Responding to
|
|
53
|
-
- Implementing our own
|
|
54
|
-
- Upgrading to [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) for unparalleled performance
|
|
52
|
+
- Responding to feedback from clients and regular users
|
|
53
|
+
- Implementing our own enhancement ideas for every part of the product
|
|
55
54
|
|
|
56
55
|
Sveltia CMS **version 1.0 is expected to ship by the end of 2024**. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates. See also our [roadmap](#roadmap).
|
|
57
56
|
|
|
@@ -71,15 +70,15 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
71
70
|
|
|
72
71
|
- Created and 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.
|
|
73
72
|
- Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
|
|
74
|
-
- Comes with touch device support. While the UI is not yet optimized for small screens, large tablets like iPad Pro or Pixel Tablet
|
|
73
|
+
- Comes with touch device support. While the UI is not yet optimized for small screens, it should work well with large tablets like iPad Pro or Pixel Tablet. Mobile support is planned after the 1.0 release.
|
|
75
74
|
- Made with Svelte, not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common fatal application crashes[^113]. Best of all, Svelte offers great performance!
|
|
76
75
|
- The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
|
|
77
76
|
|
|
78
77
|
### Better performance
|
|
79
78
|
|
|
80
79
|
- Built completely from scratch with Svelte instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast. The compiled code is vanilla JavaScript — you can use it with any framework that can load static data files while building your website or application.
|
|
81
|
-
- Small footprint: The bundle size is less than
|
|
82
|
-
-
|
|
80
|
+
- Small footprint: The bundle size is less than 400 KB when minified and gzipped, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (2.6 MB), even though we haven’t implemented some features yet[^57][^64].
|
|
81
|
+
- We have upgraded from Svelte 4 to [Svelte 5 Release Candidate](https://svelte.dev/blog/svelte-5-release-candidate) to further boost performance, including accelerated speed, reduced memory usage and even smaller bundle size. A full migration to the Svelte 5 _runes_ reactivity API will follow.
|
|
83
82
|
- Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
|
|
84
83
|
- 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]. It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets[^14].
|
|
85
84
|
- 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/).
|
|
@@ -116,7 +115,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
116
115
|
|
|
117
116
|
### Better security
|
|
118
117
|
|
|
119
|
-
- Avoids
|
|
118
|
+
- Avoids severity vulnerabilities through constant dependency updates, [`pnpm audit`](https://pnpm.io/cli/audit), and frequent releases[^33].
|
|
120
119
|
- We have documented how to [set up a Content Security Policy](#setting-up-content-security-policy) for the CMS to prevent any unexpected errors or otherwise insecure configuration[^108].
|
|
121
120
|
- The `unsafe-eval` and `unsafe-inline` keywords are not needed in the `script-src` CSP directive[^34].
|
|
122
121
|
- The `same-origin` referrer policy is automatically set with a `<meta>` tag.
|
|
@@ -233,7 +232,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
233
232
|
- You can enter spaces in a simple text-based List field[^50].
|
|
234
233
|
- You can preview variable types without having to register a preview template[^42].
|
|
235
234
|
- Markdown
|
|
236
|
-
- The rich text editor is built with [Lexical](https://lexical.dev/)
|
|
235
|
+
- The rich text editor is built with [Lexical](https://lexical.dev/), 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], backslash injections[^53], dropdown visibility[^70], and text input difficulties with IME[^54].
|
|
237
236
|
- You can set the default editor mode 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.
|
|
238
237
|
- Line breaks are rendered as line breaks in the preview pane according to GitHub Flavored Markdown.
|
|
239
238
|
- Object
|
|
@@ -307,7 +306,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
307
306
|
|
|
308
307
|
## Compatibility
|
|
309
308
|
|
|
310
|
-
We are trying to make Sveltia CMS
|
|
309
|
+
We are trying to make Sveltia CMS compatible with Netlify/Decap CMS where possible, so that more users can seamlessly switch to our modern, powerful, high performance alternative. However, some features will be omitted due to performance, deprecations and other factors.
|
|
311
310
|
|
|
312
311
|
### Current limitations
|
|
313
312
|
|
|
@@ -336,7 +335,7 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
|
|
|
336
335
|
|
|
337
336
|
### Features not to be implemented
|
|
338
337
|
|
|
339
|
-
- **The Bitbucket, Gitea/Forgejo and Git Gateway backends will not be supported**
|
|
338
|
+
- **The Bitbucket, Gitea/Forgejo and Git Gateway backends will not be supported** for performance reasons. We may implement a high-performance Git Gateway alternative in the future. We may also support the other services if/when their APIs improve to allow the CMS to fetch multiple files at once.
|
|
340
339
|
- The Netlify Identity Widget will not be supported, as it’s not useful without Git Gateway. We may be able to support it in the future if/when a Git Gateway alternative is created.
|
|
341
340
|
- The deprecated client-side implicit grant for the GitLab backend will not be supported, as it has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
|
|
342
341
|
- The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
|
|
@@ -348,7 +347,7 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
|
|
|
348
347
|
|
|
349
348
|
### Before the 1.0 release
|
|
350
349
|
|
|
351
|
-
- [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) migration
|
|
350
|
+
- [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) _runes_ migration
|
|
352
351
|
- Enhanced [compatibility with Netlify/Decap CMS](#compatibility)
|
|
353
352
|
- Localization with the new [Fluent](https://projectfluent.org)-powered sveltia-i18n library
|
|
354
353
|
- Accessibility audit
|
|
@@ -360,13 +359,13 @@ Missing any other features? Let us know by [filing an issue](https://github.com/
|
|
|
360
359
|
|
|
361
360
|
### After the 1.0 release
|
|
362
361
|
|
|
363
|
-
- Tackling more Netlify/Decap CMS issues, especially [top voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), including MDX support[^122], roles[^23], mobile optimization[^18] and config editor[^10] — Some features are already implemented in Sveltia CMS
|
|
364
|
-
-
|
|
362
|
+
- Tackling more Netlify/Decap CMS issues, especially the [top voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc), including MDX support[^122], manual entry sorting[^125], roles[^23], mobile optimization[^18] and config editor[^10] — Some features are already implemented in Sveltia CMS
|
|
363
|
+
- Certain compatibility with Static CMS, a now-discontinued community fork of Netlify CMS, including the [KeyValue widget](https://staticjscms.netlify.app/docs/widget-keyvalue)[^123]
|
|
365
364
|
- Advanced digital asset management (DAM) features, including image editing and tagging[^114]
|
|
366
365
|
- AI integrations
|
|
367
366
|
- End-user documentation
|
|
368
367
|
- Contributor documentation
|
|
369
|
-
- and more!
|
|
368
|
+
- and so much more!
|
|
370
369
|
|
|
371
370
|
## Getting started
|
|
372
371
|
|
|
@@ -454,7 +453,7 @@ You can use Sveltia CMS with a local Git repository like Netlify/Decap CMS, but
|
|
|
454
453
|
- You can remove `local_backend` from your configuration, as it will be ignored by Sveltia CMS.
|
|
455
454
|
1. Launch the local development server for your frontend framework, typically with `npm run dev` or `pnpm dev`.
|
|
456
455
|
1. Visit `http://localhost:[port]/admin/index.html` with Chrome or Edge. The port number varies by framework.
|
|
457
|
-
- Other Chromium-based browsers may also work. Brave user? [See below](#
|
|
456
|
+
- Other Chromium-based browsers may also work. Brave user? [See below](#enabling-local-development-in-brave).
|
|
458
457
|
1. Click “Work with Local Repository” and select the project’s root directory once prompted.
|
|
459
458
|
- If you get an error saying “not a repository root directory”, make sure you’ve turned the folder into a repository with either a CUI ([`git init`](https://github.com/git-guides/git-init)) or GUI, and the hidden `.git` folder exists.
|
|
460
459
|
- If you’re using Windows Subsystem for Linux (WSL), you may get an error saying “Can’t open this folder because it contains system files.” This is due to a limitation in the browser, and you can try some workarounds mentioned in [this issue](https://github.com/coder/code-server/issues/4646) and [this thread](https://github.com/sveltia/sveltia-cms/discussions/101).
|
|
@@ -467,7 +466,7 @@ Keep in mind that the local repository support doesn’t perform any Git operati
|
|
|
467
466
|
|
|
468
467
|
Also, at this point, you have to reload the CMS to see the latest content after retrieving remote updates. This manual work will be unnecessary once the proposed `FileSystemObserver` API, which is being [implemented in Chromium](https://issues.chromium.org/issues/40105284) behind a flag, becomes available.
|
|
469
468
|
|
|
470
|
-
|
|
469
|
+
### Enabling local development in Brave
|
|
471
470
|
|
|
472
471
|
In the Brave browser, you must enable the File System Access API with an experiment flag to take advantage of local development.
|
|
473
472
|
|
|
@@ -698,6 +697,8 @@ script-src 'self' https://unpkg.com;
|
|
|
698
697
|
connect-src 'self' blob: data: https://unpkg.com;
|
|
699
698
|
```
|
|
700
699
|
|
|
700
|
+
(UNPKG is used not only to download the CMS script bundle, but also to check for the latest version and retrieve additional dependencies such as [PDF.js](https://github.com/mozilla/pdf.js))
|
|
701
|
+
|
|
701
702
|
Then, add the following origins depending on your Git backend and enabled integrations.
|
|
702
703
|
|
|
703
704
|
- GitHub: (If you’re running a GitHub Enterprise Server, you’ll also need to add the origin to these directives.)
|
|
@@ -782,7 +783,7 @@ img-src 'self' blob: data: https://*;
|
|
|
782
783
|
|
|
783
784
|
## Support & feedback
|
|
784
785
|
|
|
785
|
-
While we don’t have dedicated developer/user support resources, quick questions and feedback are welcome on the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page of this GitHub repository.
|
|
786
|
+
While we don’t have dedicated developer/user support resources, quick questions and feedback are welcome on the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page of this GitHub repository. We also have a [Discord channel](https://discord.gg/6zC5eTCw) for casual chat and instant help.
|
|
786
787
|
|
|
787
788
|
Looking to build a website with Sveltia CMS? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your requirements. Feel free to reach out!
|
|
788
789
|
|
|
@@ -969,7 +970,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
969
970
|
|
|
970
971
|
[^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
|
|
971
972
|
|
|
972
|
-
[^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142)
|
|
973
|
+
[^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142), [#7276](https://github.com/decaporg/decap-cms/issues/7276)
|
|
973
974
|
|
|
974
975
|
[^85]: Netlify/Decap CMS [#5055](https://github.com/decaporg/decap-cms/issues/5055), [#5470](https://github.com/decaporg/decap-cms/issues/5470), [#6989](https://github.com/decaporg/decap-cms/issues/6989)
|
|
975
976
|
|
|
@@ -1046,3 +1047,9 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1046
1047
|
[^121]: Netlify/Decap CMS [#7262](https://github.com/decaporg/decap-cms/issues/7262)
|
|
1047
1048
|
|
|
1048
1049
|
[^122]: Netlify/Decap CMS [#1776](https://github.com/decaporg/decap-cms/issues/1776), [#2064](https://github.com/decaporg/decap-cms/issues/2064), [#7158](https://github.com/decaporg/decap-cms/issues/7158), [#7259](https://github.com/decaporg/decap-cms/issues/7259)
|
|
1050
|
+
|
|
1051
|
+
[^123]: Netlify/Decap CMS [#5489](https://github.com/decaporg/decap-cms/issues/5489)
|
|
1052
|
+
|
|
1053
|
+
[^124]: Netlify/Decap CMS [#7233](https://github.com/decaporg/decap-cms/issues/7233)
|
|
1054
|
+
|
|
1055
|
+
[^125]: Netlify/Decap CMS [#475](https://github.com/decaporg/decap-cms/issues/475)
|