@sveltia/cms 0.96.0 → 0.97.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 +27 -18
- package/dist/sveltia-cms.js +229 -211
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +227 -209
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ Welcome to the only Netlify CMS successor you can trust!
|
|
|
12
12
|
|
|
13
13
|
<br>
|
|
14
14
|
|
|
15
|
-
<br>
|
|
16
16
|
|
|
17
17
|
<br>
|
|
18
18
|
|
|
@@ -115,7 +115,7 @@ Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successo
|
|
|
115
115
|
|
|
116
116
|
- [Static CMS](https://github.com/StaticJsCMS/static-cms): a community fork, initial commit made in September 2022 — discontinued in September 2024 after making meaningful improvements
|
|
117
117
|
- **Sveltia CMS**: not a fork but a **complete rewrite** or “total reboot”, started in November 2022, first appeared on GitHub in March 2023
|
|
118
|
-
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor with a Netlify agency partner taking ownership — mostly stagnant,
|
|
118
|
+
- [Decap CMS](https://github.com/decaporg/decap-cms): a rebranded version, [announced in February 2023](https://www.netlify.com/blog/netlify-cms-to-become-decap-cms/) as the official successor with a Netlify agency partner taking ownership — mostly stagnant, no significant updates
|
|
119
119
|
|
|
120
120
|
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: We have rebuilt the app from the ground up using a [modern framework](https://svelte.dev/) while closely monitoring and analyzing the predecessor’s issue tracker. We don’t use any of their code. This allows us to make [hundreds of improvements](#differentiators) without getting stuck in an old system.
|
|
121
121
|
|
|
@@ -138,7 +138,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
138
138
|
- Ensuring substantial [compatibility with Netlify/Decap CMS](#current-limitations)
|
|
139
139
|
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
140
140
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
141
|
-
- So far, 245+ issues, or 515+ if including duplicates, have been effectively solved in Sveltia CMS (Yes, you read it right)
|
|
141
|
+
- So far, **245+ issues, or 515+ if including duplicates, have been effectively solved in Sveltia CMS** (Yes, you read it right)
|
|
142
142
|
- Target:
|
|
143
143
|
- 250 issues, or 500 if including duplicates, by GA — Almost there!
|
|
144
144
|
- 400 issues, or 800 if including duplicates, in the future 💪
|
|
@@ -289,7 +289,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
289
289
|
- Users can easily switch between locales while editing by clicking a button instead of a dropdown list when there are less than 5 locales.
|
|
290
290
|
- Language labels appear in human-readable display names instead of ISO 639 language codes because it’s not easy for everyone to recognize `DE` as German, `NL` as Dutch, `ZH` as Chinese, and so on.
|
|
291
291
|
- Content editing
|
|
292
|
-
- [Integrates
|
|
292
|
+
- [Integrates translation services](#translating-entry-fields-with-one-click) to allow translation of text fields from another locale with one click.
|
|
293
293
|
- The Content Editor supports [RTL scripts](https://en.wikipedia.org/wiki/Right-to-left_script) such as Arabic, Hebrew and Persian.[^146]
|
|
294
294
|
- It’s possible to [disable non-default locale content](#disabling-non-default-locale-content).[^15]
|
|
295
295
|
- Boolean, DateTime, List and Number fields in the entry preview are displayed in a localized format.
|
|
@@ -470,6 +470,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
470
470
|
- Code in a code block in the editor can be copied as expected.[^165]
|
|
471
471
|
- Language-annotated code block doesn’t trigger unsaved changes.[^189]
|
|
472
472
|
- Soft line breaks are [rendered as hard line breaks](#rendering-soft-line-breaks-as-hard-line-breaks-in-markdown) in the Preview Pane.
|
|
473
|
+
- Uploaded images will not disappear while editing an entry.[^278]
|
|
473
474
|
- Number
|
|
474
475
|
- If the `value_type` option is `int` (default) or `float`, the `required` option is `false`, and the value is not entered, the field will be saved as `null` instead of an empty string.[^157] If `value_type` is anything else, the data type will remain a string.
|
|
475
476
|
- Object
|
|
@@ -574,8 +575,8 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
574
575
|
- The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if exists.[^109]
|
|
575
576
|
- A custom logo defined with the `logo_url` property is displayed on the global application header and the browser tab (favicon).[^134] A smaller logo is also correctly positioned on the authentication page.[^135]
|
|
576
577
|
- [`CMS.registerCustomFormat()`](https://decapcms.org/docs/custom-formatters/) supports async parser/formatter functions.[^149]
|
|
577
|
-
- Enhancements to [
|
|
578
|
-
-
|
|
578
|
+
- Enhancements to [custom editor components](https://decapcms.org/docs/custom-widgets/#registereditorcomponent):
|
|
579
|
+
- `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).
|
|
579
580
|
- 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.
|
|
580
581
|
- Inline components are supported.[^267]
|
|
581
582
|
|
|
@@ -607,7 +608,7 @@ However, 100% feature parity is never planned, and some features are still missi
|
|
|
607
608
|
- Note: Some other camel case options, including Color widget options, are not deprecated.
|
|
608
609
|
- 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.
|
|
609
610
|
- 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.
|
|
610
|
-
- The theme and keymap inline settings for the Code widget, along with support for some languages
|
|
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, which is powered by [Prism](https://prismjs.com/) and will soon be [replaced by Shiki](https://github.com/facebook/lexical/issues/6575).
|
|
611
612
|
- Remark plugins for the Markdown widget: Not compatible with our Lexical-based rich text editor.
|
|
612
613
|
- 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.
|
|
613
614
|
- Performance-related options: Sveltia CMS has [drastically improved performance](#better-performance) with GraphQL enabled by default, so these are no longer relevant:
|
|
@@ -861,7 +862,7 @@ If you have migrated from Netlify/Decap CMS and are happy with the local reposit
|
|
|
861
862
|
|
|
862
863
|
Note that, as with Netlify/Decap CMS, the local repository support in Sveltia CMS doesn’t perform any Git operations. You have to manually fetch, pull, commit and push all changes using a Git client. Additionally, you’ll need to reload the CMS after modifying the configuration file or retrieving remote updates.
|
|
863
864
|
|
|
864
|
-
In the future, it will probably be possible to commit changes locally. The proxy server actually has an experimental, undocumented Git mode that allows it.[^131] ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/31)) We also plan to use the newly available [File System Observer API](https://developer.chrome.com/blog/file-system-observer) to eliminate manual reloads.
|
|
865
|
+
In the future, it will probably be possible to commit changes locally. The proxy server actually has an experimental, undocumented Git mode that allows it.[^131] ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/31)) We also plan to use the newly available [File System Observer API](https://developer.chrome.com/blog/file-system-observer) to detect changes and eliminate the need for manual reloads.
|
|
865
866
|
|
|
866
867
|
### Enabling local development in Brave
|
|
867
868
|
|
|
@@ -987,7 +988,7 @@ Note that the special index file is placed right under the `folder`, regardless
|
|
|
987
988
|
|
|
988
989
|
### Using singletons
|
|
989
990
|
|
|
990
|
-
The singleton collection is an unnamed, non-nested variant of a [file collection](https://decapcms.org/docs/collection-file/) that can be used to manage a set of pre-defined data files. Singleton files appear in the content library’s sidebar under the Files group, and users can open the Content Editor directly without navigating to a file list.
|
|
991
|
+
The singleton collection is an unnamed, non-nested variant of a [file collection](https://decapcms.org/docs/collection-file/) that can be used to manage a set of pre-defined data files. Singleton files appear in the content library’s sidebar under the Files group, and users can open the Content Editor directly without navigating to a file list. (If there are no other collections, the singleton collection appears as a regular file collection on desktop.)
|
|
991
992
|
|
|
992
993
|
To create this special file collection, add the new `singletons` option, along with an array of file definitions, to the root level of your site configuration.
|
|
993
994
|
|
|
@@ -1042,15 +1043,21 @@ Standard keyboard shortcuts are also available in the Markdown editor, including
|
|
|
1042
1043
|
|
|
1043
1044
|
### Translating entry fields with one click
|
|
1044
1045
|
|
|
1045
|
-
Sveltia CMS comes with a handy
|
|
1046
|
+
Sveltia CMS comes with a handy translation API integration so that you can translate any text field from another locale without leaving the Content Editor. Currently, Google’s Cloud Translation and OpenAI’s GPT-3.5 Turbo are supported. To enable the quick translation feature:
|
|
1046
1047
|
|
|
1047
1048
|
1. Update your configuration file to enable the [i18n support](https://decapcms.org/docs/i18n/) with multiple locales.
|
|
1048
|
-
1.
|
|
1049
|
-
|
|
1050
|
-
1.
|
|
1049
|
+
1. Create a new API key for the translation service of your choice:
|
|
1050
|
+
- Google
|
|
1051
|
+
1. Sign in or sign up for [Google Cloud](https://cloud.google.com/) and create a new project.
|
|
1052
|
+
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
|
+
1. Create a [new API key](https://console.cloud.google.com/apis/api/translate.googleapis.com/credentials) and copy it.
|
|
1054
|
+
- OpenAI
|
|
1055
|
+
1. Sign in or sign up for [Open AI](https://platform.openai.com/docs/overview) and create a new project.
|
|
1056
|
+
1. Add a credit balance (minimum $5) to your account.
|
|
1057
|
+
1. Create a [new API key](https://platform.openai.com/api-keys) and copy it.
|
|
1051
1058
|
1. Open an entry in Sveltia CMS.
|
|
1052
1059
|
1. Click on the Translation button on the pane header or each field, right next to the 3-dot menu.
|
|
1053
|
-
1.
|
|
1060
|
+
1. Select a translation service from the dropdown menu and paste your API key when prompted.
|
|
1054
1061
|
1. The field(s) will be automatically translated.
|
|
1055
1062
|
|
|
1056
1063
|
Note that the Translation button on the pane header only translates empty fields, while in-field Translation buttons override any filled text.
|
|
@@ -1653,13 +1660,13 @@ Due early 2026
|
|
|
1653
1660
|
- Tackling even more Netlify/Decap CMS issues:
|
|
1654
1661
|
- [Manual entry sorting](https://github.com/sveltia/sveltia-cms/issues/214)[^125]
|
|
1655
1662
|
- [Directory navigation in the Asset Library](https://github.com/sveltia/sveltia-cms/issues/420)[^240]
|
|
1656
|
-
- End-user documentation
|
|
1657
1663
|
|
|
1658
1664
|
### v3.0
|
|
1659
1665
|
|
|
1660
1666
|
- **Sveltia CMS Additions**: Edge functions for Cloudflare Workers and possibly other platforms that provide features that cannot be implemented client-side:
|
|
1661
1667
|
- User management (Netlify Identity alternative) with roles[^23]
|
|
1662
1668
|
- Sign-in without a Git service account (Git Gateway alternative)
|
|
1669
|
+
- End-user documentation
|
|
1663
1670
|
- Contributor documentation
|
|
1664
1671
|
|
|
1665
1672
|
### TBD
|
|
@@ -1681,11 +1688,11 @@ Due early 2026
|
|
|
1681
1688
|
- Enhancements to Sveltia CMS Additions (some may be included in v3.0):
|
|
1682
1689
|
- Post locking[^166] (like [WordPress](https://codex.wordpress.org/Post_Locking))
|
|
1683
1690
|
- Scheduled posts[^167]
|
|
1684
|
-
- Credential management for service API keys, deploy hook URL, etc.
|
|
1691
|
+
- [Credential management](https://github.com/sveltia/sveltia-cms/issues/444) for service API keys, deploy hook URL, etc.
|
|
1685
1692
|
- Proxy for services that don’t support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS):
|
|
1686
1693
|
- [DeepL Translate](https://github.com/sveltia/sveltia-cms/issues/437)
|
|
1687
1694
|
- [Git LFS support for GitHub](https://github.com/sveltia/sveltia-cms/discussions/353)[^244]
|
|
1688
|
-
- [Local repository workflow](#working-with-a-local-git-repository) improvements: Git mode[^131] and
|
|
1695
|
+
- [Local repository workflow](#working-with-a-local-git-repository) improvements: Git mode[^131] and change detection
|
|
1689
1696
|
- [Preact+HTM support](https://github.com/sveltia/sveltia-cms/discussions/153) for custom widgets, editor components and preview templates
|
|
1690
1697
|
- View, compare and restore revisions (like [WordPress](https://wordpress.com/support/page-post-revisions/))
|
|
1691
1698
|
- More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
|
|
@@ -1941,7 +1948,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1941
1948
|
|
|
1942
1949
|
[^112]: Netlify/Decap CMS [#5815](https://github.com/decaporg/decap-cms/issues/5815), [#6522](https://github.com/decaporg/decap-cms/issues/6522), [#6532](https://github.com/decaporg/decap-cms/issues/6532), [#6588](https://github.com/decaporg/decap-cms/issues/6588), [#6617](https://github.com/decaporg/decap-cms/issues/6617), [#6640](https://github.com/decaporg/decap-cms/issues/6640), [#6663](https://github.com/decaporg/decap-cms/issues/6663), [#6695](https://github.com/decaporg/decap-cms/issues/6695), [#6697](https://github.com/decaporg/decap-cms/issues/6697), [#6764](https://github.com/decaporg/decap-cms/issues/6764), [#6765](https://github.com/decaporg/decap-cms/issues/6765), [#6835](https://github.com/decaporg/decap-cms/issues/6835), [#6983](https://github.com/decaporg/decap-cms/issues/6983), [#7205](https://github.com/decaporg/decap-cms/issues/7205), [#7450](https://github.com/decaporg/decap-cms/issues/7450), [#7453](https://github.com/decaporg/decap-cms/issues/7453), [#7572](https://github.com/decaporg/decap-cms/issues/7572)
|
|
1943
1950
|
|
|
1944
|
-
[^113]: Netlify/Decap CMS [#5656](https://github.com/decaporg/decap-cms/issues/5656), [#5837](https://github.com/decaporg/decap-cms/issues/5837), [#5972](https://github.com/decaporg/decap-cms/issues/5972), [#6476](https://github.com/decaporg/decap-cms/issues/6476), [#6516](https://github.com/decaporg/decap-cms/issues/6516), [#6930](https://github.com/decaporg/decap-cms/issues/6930), [#7080](https://github.com/decaporg/decap-cms/issues/7080), [#7105](https://github.com/decaporg/decap-cms/issues/7105), [#7106](https://github.com/decaporg/decap-cms/issues/7106), [#7119](https://github.com/decaporg/decap-cms/issues/7119), [#7176](https://github.com/decaporg/decap-cms/issues/7176), [#7194](https://github.com/decaporg/decap-cms/issues/7194), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|
|
1951
|
+
[^113]: Netlify/Decap CMS [#5656](https://github.com/decaporg/decap-cms/issues/5656), [#5837](https://github.com/decaporg/decap-cms/issues/5837), [#5972](https://github.com/decaporg/decap-cms/issues/5972), [#6476](https://github.com/decaporg/decap-cms/issues/6476), [#6516](https://github.com/decaporg/decap-cms/issues/6516), [#6930](https://github.com/decaporg/decap-cms/issues/6930), [#7080](https://github.com/decaporg/decap-cms/issues/7080), [#7105](https://github.com/decaporg/decap-cms/issues/7105), [#7106](https://github.com/decaporg/decap-cms/issues/7106), [#7119](https://github.com/decaporg/decap-cms/issues/7119), [#7176](https://github.com/decaporg/decap-cms/issues/7176), [#7194](https://github.com/decaporg/decap-cms/issues/7194), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571), [#7574](https://github.com/decaporg/decap-cms/issues/7574) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|
|
1945
1952
|
|
|
1946
1953
|
[^114]: Netlify/Decap CMS [#5029](https://github.com/decaporg/decap-cms/issues/5029), [#5048](https://github.com/decaporg/decap-cms/issues/5048)
|
|
1947
1954
|
|
|
@@ -2270,3 +2277,5 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
2270
2277
|
[^276]: Netlify/Decap CMS [#6806](https://github.com/decaporg/decap-cms/discussions/6806)
|
|
2271
2278
|
|
|
2272
2279
|
[^277]: Netlify/Decap CMS [#86](https://github.com/decaporg/decap-cms/issues/86)
|
|
2280
|
+
|
|
2281
|
+
[^278]: Netlify/Decap CMS [#7575](https://github.com/decaporg/decap-cms/issues/7575), [#7576](https://github.com/decaporg/decap-cms/issues/7576)
|