@sveltia/cms 0.97.0 → 0.98.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 +36 -12
- package/dist/sveltia-cms.js +425 -425
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +425 -425
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Sveltia CMS: Netlify/Decap CMS
|
|
1
|
+
# Sveltia CMS: Netlify/Decap CMS successor
|
|
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
|
|
|
@@ -96,6 +96,7 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
96
96
|
- [v2.0](#v20)
|
|
97
97
|
- [v3.0](#v30)
|
|
98
98
|
- [TBD](#tbd)
|
|
99
|
+
- [Non-goals](#non-goals)
|
|
99
100
|
- [Trivia](#trivia)
|
|
100
101
|
- [Related links](#related-links)
|
|
101
102
|
- [As seen on](#as-seen-on)
|
|
@@ -107,7 +108,7 @@ Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stal
|
|
|
107
108
|
|
|
108
109
|
To achieve radical improvements in UX, performance, i18n and other areas, it was ultimately decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the idea with a rapid [Svelte](https://svelte.dev/) prototype, development was accelerated to address their primary use cases. The new product has since been named Sveltia CMS and released as open source software to encourage wider adoption.
|
|
109
110
|
|
|
110
|
-
We loved the simple
|
|
111
|
+
We loved the simple setup of Netlify CMS that turned a Git repository into a database with a single page app served from a CDN plus a plain YAML config file. In support of the [Jamstack](https://jamstack.org/) concept, we wanted to revive it, modernize it, and take it to the next level.
|
|
111
112
|
|
|
112
113
|
### Our advantage
|
|
113
114
|
|
|
@@ -138,21 +139,21 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
138
139
|
- Ensuring substantial [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
139
140
|
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
140
141
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
141
|
-
- So far, **
|
|
142
|
+
- So far, **250+ issues, or 530+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
|
|
142
143
|
- Target:
|
|
143
|
-
- 250 issues, or 500 if including duplicates, by GA —
|
|
144
|
+
- 250 issues, or 500 if including duplicates, by GA — We did it! 🎉
|
|
144
145
|
- 400 issues, or 800 if including duplicates, in the future 💪
|
|
145
146
|
- or every single issue that’s relevant, fixable, and worth dealing with 🔥
|
|
146
147
|
- Issues include everything from feature requests to bug reports and [issues closed as stale](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) or without an effective solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions) and stalled [pull requests](https://github.com/decaporg/decap-cms/pulls)
|
|
147
148
|
- Many of the bugs, including the annoying crashes, have already been solved
|
|
148
149
|
- The remaining bugs are mostly related to [unimplemented features](#current-limitations)
|
|
149
|
-
- 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 or already implemented in Sveltia CMS
|
|
150
|
+
- 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
|
|
150
151
|
- Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
|
|
151
152
|
- Implementing our own enhancement ideas for every part of the product
|
|
152
153
|
- Responding to requests from the maintainer’s clients
|
|
153
154
|
- Making the code clean and maintainable
|
|
154
155
|
|
|
155
|
-
<br>
|
|
156
157
|
|
|
157
158
|
## Differentiators
|
|
158
159
|
|
|
@@ -579,6 +580,9 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
579
580
|
- `CMS.registerEditorComponent()` accepts a component definition with the `icon` property. Developers can specify a Material Symbols icon name just like [custom collection icons](#using-a-custom-icon-for-a-collection).
|
|
580
581
|
- 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.
|
|
581
582
|
- Inline components are supported.[^267]
|
|
583
|
+
- Field validation works as expected.[^279]
|
|
584
|
+
- No error is raised in the browser console saying `Sent invalid data to remark`.[^280]
|
|
585
|
+
- No error is raised in the browser console saying `onValidate is not a function`.[^281]
|
|
582
586
|
|
|
583
587
|
### Better localization
|
|
584
588
|
|
|
@@ -597,6 +601,7 @@ However, 100% feature parity is never planned, and some features are still missi
|
|
|
597
601
|
- **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.
|
|
598
602
|
- **Git Gateway backend**: Also for performance reasons. [Git Gateway](https://github.com/netlify/git-gateway) has not been actively maintained since Netlify CMS was abandoned, and it’s known to be slow and prone to rate limit violations. We plan to develop a GraphQL-based high-performance alternative [in the future](#roadmap).
|
|
599
603
|
- **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/).
|
|
604
|
+
- [Gatsby plugin](https://github.com/decaporg/gatsby-plugin-decap-cms): Given the [decline of Gatsby](https://2024.stateofjs.com/en-US/libraries/meta-frameworks/), we won’t invest time in developing a plugin for it. You can still create `index.html` yourself. Note: We don’t support Netlify Identity Widget; the favicon can be specified with the `logo_url` option.
|
|
600
605
|
- 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.
|
|
601
606
|
- The deprecated Netlify Large Media service: Consider other storage providers.
|
|
602
607
|
- Deprecated camel case configuration options: Use snake case instead, according to the current Decap CMS document.
|
|
@@ -608,7 +613,7 @@ However, 100% feature parity is never planned, and some features are still missi
|
|
|
608
613
|
- Note: Some other camel case options, including Color widget options, are not deprecated.
|
|
609
614
|
- The deprecated Date widget: It was removed from Decap CMS 3.0 and Sveltia CMS 0.10. Use the DateTime widget with the [`time_format: false` option](#changing-the-input-type-of-a-datetime-field) instead.
|
|
610
615
|
- Some date/time format tokens: [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced Moment.js with Day.js, and Sveltia CMS will follow suit soon. Since [Day.js tokens](https://day.js.org/docs/en/display/format) are not 100% compatible with [Moment.js tokens](https://momentjs.com/docs/#/displaying/format/), this could be a breaking change in certain cases.
|
|
611
|
-
- The theme and keymap inline settings for the Code widget, along with support for some languages. Instead of [CodeMirror](https://codemirror.net/), we use Lexical’s code block functionality
|
|
616
|
+
- The theme and keymap inline settings for the Code widget, along with support for some languages. Instead of [CodeMirror](https://codemirror.net/), we use Lexical’s code block functionality powered by [Prism](https://prismjs.com/), which will soon be [replaced by Shiki](https://github.com/facebook/lexical/issues/6575).
|
|
612
617
|
- Remark plugins for the Markdown widget: Not compatible with our Lexical-based rich text editor.
|
|
613
618
|
- An absolute URL in the [`public_folder`](https://decapcms.org/docs/configuration-options/#public-folder) option: Such configuration is not recommended, as stated in the Netlify/Decap CMS document.
|
|
614
619
|
- Performance-related options: Sveltia CMS has [drastically improved performance](#better-performance) with GraphQL enabled by default, so these are no longer relevant:
|
|
@@ -628,11 +633,11 @@ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are
|
|
|
628
633
|
- [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) media libraries ([#4](https://github.com/sveltia/sveltia-cms/discussions/4))
|
|
629
634
|
- LineString and Polygon types for the [Map](https://decapcms.org/docs/widgets/#map) widget
|
|
630
635
|
- [Custom widgets](https://decapcms.org/docs/custom-widgets/)
|
|
631
|
-
- [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent):
|
|
636
|
+
- [Custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent): preview and multiline components ([#410](https://github.com/sveltia/sveltia-cms/issues/410))
|
|
632
637
|
- [Custom preview templates](https://decapcms.org/docs/customization/#registerpreviewtemplate) ([#51](https://github.com/sveltia/sveltia-cms/issues/51))
|
|
633
638
|
- [Event hooks](https://decapcms.org/docs/registering-events/) ([#167](https://github.com/sveltia/sveltia-cms/issues/167))
|
|
634
639
|
|
|
635
|
-
Due to the complexity, we have decided to defer the following features to the 2.0 release due early 2026. Netlify/Decap CMS has
|
|
640
|
+
Due to the complexity, we have decided to defer the following features to the 2.0 release due early 2026. Netlify/Decap CMS has dozens of open issues with these collaboration and beta features — we want to implement them the right way.
|
|
636
641
|
|
|
637
642
|
- [Editorial workflow](https://decapcms.org/docs/editorial-workflows/)
|
|
638
643
|
- [Open authoring](https://decapcms.org/docs/open-authoring/)
|
|
@@ -852,8 +857,9 @@ Here are the workflow steps and tips:
|
|
|
852
857
|
1. Click “Work with Local Repository” and select the project’s root directory once prompted.
|
|
853
858
|
- 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.
|
|
854
859
|
- 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).
|
|
855
|
-
1. Edit your content using the CMS. All changes are made to local files.
|
|
860
|
+
1. Edit your content normally using the CMS. All changes are made to local files.
|
|
856
861
|
1. Use `git diff` or a GUI like [GitHub Desktop](https://desktop.github.com/) to see if the produced changes look good.
|
|
862
|
+
- GitHub Desktop can be used for any repository, not just GitHub-hosted ones.
|
|
857
863
|
1. Open the dev site at `http://localhost:[port]/` to check the rendered pages.
|
|
858
864
|
- Depending on your framework, you may need to manually rebuild your site to reflect the changes you have made.
|
|
859
865
|
1. Commit and push the changes if satisfied, or discard them if you’re just testing.
|
|
@@ -1052,7 +1058,7 @@ Sveltia CMS comes with a handy translation API integration so that you can trans
|
|
|
1052
1058
|
1. Enable the [Cloud Translation API](https://console.cloud.google.com/apis/library/translate.googleapis.com). It’s free up to 500,000 characters per month.
|
|
1053
1059
|
1. Create a [new API key](https://console.cloud.google.com/apis/api/translate.googleapis.com/credentials) and copy it.
|
|
1054
1060
|
- OpenAI
|
|
1055
|
-
1. Sign in or sign up for [
|
|
1061
|
+
1. Sign in or sign up for [OpenAI Platform](https://platform.openai.com/docs/overview) and create a new project.
|
|
1056
1062
|
1. Add a credit balance (minimum $5) to your account.
|
|
1057
1063
|
1. Create a [new API key](https://platform.openai.com/api-keys) and copy it.
|
|
1058
1064
|
1. Open an entry in Sveltia CMS.
|
|
@@ -1060,6 +1066,8 @@ Sveltia CMS comes with a handy translation API integration so that you can trans
|
|
|
1060
1066
|
1. Select a translation service from the dropdown menu and paste your API key when prompted.
|
|
1061
1067
|
1. The field(s) will be automatically translated.
|
|
1062
1068
|
|
|
1069
|
+
You can also provide your API keys in the Settings dialog.
|
|
1070
|
+
|
|
1063
1071
|
Note that the Translation button on the pane header only translates empty fields, while in-field Translation buttons override any filled text.
|
|
1064
1072
|
|
|
1065
1073
|
Earlier versions of Sveltia CMS included DeepL integration, but it has been disabled [due to an API limitation](https://github.com/sveltia/sveltia-cms/issues/437). More translation services will be added in the future.
|
|
@@ -1581,6 +1589,11 @@ Then, add the following origins depending on your Git backend and enabled integr
|
|
|
1581
1589
|
```
|
|
1582
1590
|
https://translation.googleapis.com
|
|
1583
1591
|
```
|
|
1592
|
+
- OpenAI:
|
|
1593
|
+
- `connect-src`
|
|
1594
|
+
```
|
|
1595
|
+
https://api.openai.com
|
|
1596
|
+
```
|
|
1584
1597
|
- YouTube:
|
|
1585
1598
|
- `frame-src`
|
|
1586
1599
|
```
|
|
@@ -1706,9 +1719,14 @@ Due early 2026
|
|
|
1706
1719
|
- Official starter templates for the most popular frameworks, including SvelteKit and Next.js
|
|
1707
1720
|
- and so much more!
|
|
1708
1721
|
|
|
1722
|
+
### Non-goals
|
|
1723
|
+
|
|
1724
|
+
- Framework-specific integrations, including a WYSIWYG editor. Due to the crowded CMS market and our limited resources, we will focus on framework-agnostic core features that are essential for replacing Netlify/Decap CMS and modernizing the concept.
|
|
1725
|
+
- Monetization. We may offer an affordable cloud version in the future since self-hosting the CMS and retrieving service API keys can be a hassle. However, we will not charge for the CMS itself. We want to keep it free and open source forever.
|
|
1726
|
+
|
|
1709
1727
|
## Trivia
|
|
1710
1728
|
|
|
1711
|
-
- The [original version of Netlify CMS](https://github.com/netlify/netlify-cms-legacy) was built with Ember before being rewritten in React. And now we are completely rewriting it in Svelte. So this is effectively the
|
|
1729
|
+
- 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. And now we are completely rewriting it in Svelte. So this is effectively the third time the application has gone through a framework migration.
|
|
1712
1730
|
- 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 improved DX, but also for our rapid application development.
|
|
1713
1731
|
|
|
1714
1732
|
## Related links
|
|
@@ -2279,3 +2297,9 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2279
2297
|
[^277]: Netlify/Decap CMS [#86](https://github.com/decaporg/decap-cms/issues/86)
|
|
2280
2298
|
|
|
2281
2299
|
[^278]: Netlify/Decap CMS [#7575](https://github.com/decaporg/decap-cms/issues/7575), [#7576](https://github.com/decaporg/decap-cms/issues/7576)
|
|
2300
|
+
|
|
2301
|
+
[^279]: Netlify/Decap CMS [#1390](https://github.com/decaporg/decap-cms/issues/1390), [#4912](https://github.com/decaporg/decap-cms/issues/4912), [#6986](https://github.com/decaporg/decap-cms/issues/6986)
|
|
2302
|
+
|
|
2303
|
+
[^280]: Netlify/Decap CMS [#3490](https://github.com/decaporg/decap-cms/issues/3490), [#3682](https://github.com/decaporg/decap-cms/issues/3682), [#4669](https://github.com/decaporg/decap-cms/issues/4669), [#4895](https://github.com/decaporg/decap-cms/issues/4895), [#4976](https://github.com/decaporg/decap-cms/issues/4976), [#5766](https://github.com/decaporg/decap-cms/issues/5766), [#6501](https://github.com/decaporg/decap-cms/issues/6501), [#6785](https://github.com/decaporg/decap-cms/issues/6785), [#7315](https://github.com/decaporg/decap-cms/issues/7315)
|
|
2304
|
+
|
|
2305
|
+
[^281]: Netlify/Decap CMS [#4892](https://github.com/decaporg/decap-cms/issues/4892) — We cannot reproduce the crash, but we do see the error message in the console.
|