@sveltia/cms 0.39.16 → 0.39.18
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 +25 -14
- package/dist/sveltia-cms.js +270 -264
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +231 -225
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -45,8 +45,8 @@ Sveltia CMS is **still in beta**, so please be careful when trying it out.
|
|
|
45
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
47
|
- Ensuring substantial [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
|
|
48
|
-
- Tackling as many [
|
|
49
|
-
- So far, 120+ of them (or
|
|
48
|
+
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
49
|
+
- So far, 120+ of them (or 215+ including duplicates) have been effectively solved in Sveltia CMS
|
|
50
50
|
- Target: 150 issues by GA, 250 (or all the relevant and fixable issues) 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
52
|
- Responding to feedback from clients and regular users
|
|
@@ -79,13 +79,14 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
79
79
|
|
|
80
80
|
### Better performance
|
|
81
81
|
|
|
82
|
-
- 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 during the build process.
|
|
82
|
+
- 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 or static site generator (SSG) that can load static data files during the build process.
|
|
83
83
|
- Small footprint: The bundle size is less than 450 KB when minified and brotlied, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (2.6 MB)[^57][^64], even though we haven’t implemented some features yet. That’s the power of Svelte + Vite.
|
|
84
|
-
- We have upgraded from Svelte 4 to [Svelte 5 Release Candidate](https://svelte.dev/blog/svelte-5-release-candidate) to further
|
|
84
|
+
- We have upgraded from Svelte 4 to [Svelte 5 Release Candidate](https://svelte.dev/blog/svelte-5-release-candidate) to further improve performance, including an even smaller bundle size. A full migration to the _runes_ reactivity API will follow.
|
|
85
85
|
- Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
|
|
86
86
|
- 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].
|
|
87
87
|
- 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/).
|
|
88
88
|
- Using caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
|
|
89
|
+
- Sorting, filtering and grouping of entries is done instantly without reloading the entire content.
|
|
89
90
|
- Thumbnails of assets, including videos and PDF files, are generated and cached for faster rendering of the Asset Library and other parts of the CMS[^39].
|
|
90
91
|
- No typing lag on input widgets, especially within nested lists and objects[^77].
|
|
91
92
|
|
|
@@ -137,6 +138,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
137
138
|
- The GitLab backend support comes with background [service status](https://status.gitlab.com/) checking, just like GitHub.
|
|
138
139
|
- Service status checks are performed frequently and an incident notification is displayed prominently.
|
|
139
140
|
- You can quickly open the source file of an entry or asset in your repository using View on GitHub (or GitLab) under the 3-dot menu.
|
|
141
|
+
- We provide [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth) for GitHub and GitLab.
|
|
140
142
|
- You won’t get a 404 Not Found error when you sign in to the GitLab backend[^115].
|
|
141
143
|
- Features the all-new local backend that boosts DX. See the [productivity section](#better-productivity) above.
|
|
142
144
|
- You can select the local and remote backends while working on a local server.
|
|
@@ -175,7 +177,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
175
177
|
- Configuration
|
|
176
178
|
- You can [choose a custom icon for each collection](#using-a-custom-icon-for-a-collection) with the new `icon` collection option[^3].
|
|
177
179
|
- You can [add dividers to the collection list](#adding-dividers-to-the-collection-list) with the new `divider` collection option.
|
|
178
|
-
- You can specify the field name for a thumbnail displayed on the entry list with the new `thumbnail` collection option. A nested field can be specified using dot notation, e.g. `images.0.src`. If undefined, the `name` of the first image field is used.
|
|
180
|
+
- You can specify the field name for a thumbnail displayed on the entry list with the new `thumbnail` collection option[^130]. A nested field can be specified using dot notation, e.g. `images.0.src`. If undefined, the `name` of the first image field is used.
|
|
179
181
|
- You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
|
|
180
182
|
- You can use Markdown in the `description` collection option[^79]. Bold, italic, strikethrough, code and links are allowed.
|
|
181
183
|
- Entry slugs
|
|
@@ -184,8 +186,9 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
184
186
|
- Single quotes in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
|
|
185
187
|
- You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
|
|
186
188
|
- Entry listing
|
|
189
|
+
- The collection list displays the number of items in each collection.
|
|
187
190
|
- A folder collection filter with a boolean value works as expected[^93].
|
|
188
|
-
- Hugo’s special `_index.md` files are ignored in folder collections unless the `path` option is configured to end with `_index` and `extension` is `md
|
|
191
|
+
- Hugo’s special `_index.md` files are ignored in folder collections unless the `path` option is configured to end with `_index` and the `extension` is `md`[^120]. You can still manage these files as part of a file collection if necessary.
|
|
189
192
|
- If there was an error while parsing an entry file, such as duplicate front matter keys, it won’t show up as a blank entry, and a clear error message will be displayed in the browser console[^121].
|
|
190
193
|
- Sorting entries by a DateTime field works as expected[^110].
|
|
191
194
|
- Assets stored in a [per-collection media folder](#using-a-custom-media-folder-for-a-collection) can be displayed next to the entries.
|
|
@@ -317,7 +320,7 @@ We are trying to make Sveltia CMS compatible with Netlify/Decap CMS where possib
|
|
|
317
320
|
### Features not to be implemented
|
|
318
321
|
|
|
319
322
|
- **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.
|
|
320
|
-
- **The Netlify Identity
|
|
323
|
+
- **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.
|
|
321
324
|
- 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.
|
|
322
325
|
- The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
|
|
323
326
|
- The deprecated Date widget will not be supported, as it has already been removed from Decap CMS 3.0. Use the DateTime widget instead.
|
|
@@ -443,6 +446,12 @@ Alternatively, you can [manually initialize](https://decapcms.org/docs/manual-in
|
|
|
443
446
|
|
|
444
447
|
Sveltia CMS does not support the Git Gateway backend due to performance limitations. If you don’t care about user management with Netlify Identity, you can use the [GitHub backend](https://decapcms.org/docs/github-backend/) or [GitLab backend](https://decapcms.org/docs/gitlab-backend/) instead. Make sure **you install an OAuth client** on GitHub or GitLab in addition to updating your configuration file. As noted in the document, Netlify is still able to facilitate the auth flow.
|
|
445
448
|
|
|
449
|
+
Once you have migrated from the Git Gateway and Netlify Identity combo, you can remove the Netlify Identity widget script tag from your HTML:
|
|
450
|
+
|
|
451
|
+
```diff
|
|
452
|
+
-<script src="https://identity.netlify.com/v1/netlify-identity-widget.js"></script>
|
|
453
|
+
```
|
|
454
|
+
|
|
446
455
|
### Moving your site from Netlify to another hosting service
|
|
447
456
|
|
|
448
457
|
You can host your Sveltia CMS-managed site anywhere, such as [Cloudflare Pages](https://pages.cloudflare.com/) or [GitHub Pages](https://pages.github.com/). But moving away from Netlify means you can no longer sign in with GitHub or GitLab via Netlify. Instead, you can use [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth), which can be easily deployed to Cloudflare Workers, or [any other 3rd party client](https://decapcms.org/docs/external-oauth-clients/) made for Netlify/Decap CMS.
|
|
@@ -583,7 +592,7 @@ collections:
|
|
|
583
592
|
label: Blog posts
|
|
584
593
|
create: true
|
|
585
594
|
folder: data/posts/
|
|
586
|
-
slug: '{{title | localize}}'
|
|
595
|
+
slug: '{{title | localize}}' # This does the trick
|
|
587
596
|
format: yaml
|
|
588
597
|
i18n: true
|
|
589
598
|
fields:
|
|
@@ -837,7 +846,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
837
846
|
|
|
838
847
|
[^13]: Netlify/Decap CMS [#5112](https://github.com/decaporg/decap-cms/issues/5112), [#5653](https://github.com/decaporg/decap-cms/issues/5653)
|
|
839
848
|
|
|
840
|
-
[^14]: Netlify/Decap CMS [#4635](https://github.com/decaporg/decap-cms/issues/4635), [#5920](https://github.com/decaporg/decap-cms/issues/5920), [#6410](https://github.com/decaporg/decap-cms/issues/6410)
|
|
849
|
+
[^14]: Netlify/Decap CMS [#4635](https://github.com/decaporg/decap-cms/issues/4635), [#5920](https://github.com/decaporg/decap-cms/issues/5920), [#6410](https://github.com/decaporg/decap-cms/issues/6410), [#6924](https://github.com/decaporg/decap-cms/issues/6924)
|
|
841
850
|
|
|
842
851
|
[^15]: Netlify/Decap CMS [#6932](https://github.com/decaporg/decap-cms/issues/6932)
|
|
843
852
|
|
|
@@ -875,7 +884,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
875
884
|
|
|
876
885
|
[^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
|
|
877
886
|
|
|
878
|
-
[^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513)
|
|
887
|
+
[^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513), [#7295](https://github.com/decaporg/decap-cms/issues/7295)
|
|
879
888
|
|
|
880
889
|
[^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138)
|
|
881
890
|
|
|
@@ -981,7 +990,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
981
990
|
|
|
982
991
|
[^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)
|
|
983
992
|
|
|
984
|
-
[^86]: Netlify/Decap CMS [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
|
|
993
|
+
[^86]: Netlify/Decap CMS [#5253](https://github.com/decaporg/decap-cms/issues/5253), [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
|
|
985
994
|
|
|
986
995
|
[^87]: Netlify/Decap CMS [#5280](https://github.com/decaporg/decap-cms/issues/5280)
|
|
987
996
|
|
|
@@ -1023,7 +1032,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1023
1032
|
|
|
1024
1033
|
[^106]: Netlify/Decap CMS [#2822](https://github.com/decaporg/decap-cms/issues/2822)
|
|
1025
1034
|
|
|
1026
|
-
[^107]: Netlify/Decap CMS [#332](https://github.com/decaporg/decap-cms/issues/332), [#683](https://github.com/decaporg/decap-cms/issues/683), [#999](https://github.com/decaporg/decap-cms/issues/999), [#1456](https://github.com/decaporg/decap-cms/issues/1456), [#4175](https://github.com/decaporg/decap-cms/issues/4175), [#5688](https://github.com/decaporg/decap-cms/issues/5688), [#6828](https://github.com/decaporg/decap-cms/issues/6828), [#6862](https://github.com/decaporg/decap-cms/issues/6862), [#7023](https://github.com/decaporg/decap-cms/issues/7023)
|
|
1035
|
+
[^107]: Netlify/Decap CMS [#332](https://github.com/decaporg/decap-cms/issues/332), [#683](https://github.com/decaporg/decap-cms/issues/683), [#999](https://github.com/decaporg/decap-cms/issues/999), [#1456](https://github.com/decaporg/decap-cms/issues/1456), [#4175](https://github.com/decaporg/decap-cms/issues/4175), [#4818](https://github.com/decaporg/decap-cms/issues/4818), [#5688](https://github.com/decaporg/decap-cms/issues/5688), [#6828](https://github.com/decaporg/decap-cms/issues/6828), [#6862](https://github.com/decaporg/decap-cms/issues/6862), [#7023](https://github.com/decaporg/decap-cms/issues/7023)
|
|
1027
1036
|
|
|
1028
1037
|
[^108]: Netlify/Decap CMS [#6829](https://github.com/decaporg/decap-cms/issues/6829)
|
|
1029
1038
|
|
|
@@ -1057,7 +1066,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1057
1066
|
|
|
1058
1067
|
[^123]: Netlify/Decap CMS [#5489](https://github.com/decaporg/decap-cms/issues/5489)
|
|
1059
1068
|
|
|
1060
|
-
[^124]: Netlify/Decap CMS [#7233](https://github.com/decaporg/decap-cms/issues/7233)
|
|
1069
|
+
[^124]: Netlify/Decap CMS [#991](https://github.com/decaporg/decap-cms/issues/991), [#4488](https://github.com/decaporg/decap-cms/issues/4488), [#7233](https://github.com/decaporg/decap-cms/issues/7233)
|
|
1061
1070
|
|
|
1062
1071
|
[^125]: Netlify/Decap CMS [#475](https://github.com/decaporg/decap-cms/issues/475)
|
|
1063
1072
|
|
|
@@ -1067,4 +1076,6 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1067
1076
|
|
|
1068
1077
|
[^128]: Netlify/Decap CMS [#7092](https://github.com/decaporg/decap-cms/issues/7092)
|
|
1069
1078
|
|
|
1070
|
-
[^129]: Netlify/Decap CMS [#4961](https://github.com/decaporg/decap-cms/issues/4961), [#4979](https://github.com/decaporg/decap-cms/issues/4979), [#5545](https://github.com/decaporg/decap-cms/issues/5545), [#5778](https://github.com/decaporg/decap-cms/issues/5778), [#6279](https://github.com/decaporg/decap-cms/issues/6279), [#6464](https://github.com/decaporg/decap-cms/issues/6464), [#6810](https://github.com/decaporg/decap-cms/issues/6810), [#6922](https://github.com/decaporg/decap-cms/issues/6922), [#7118](https://github.com/decaporg/decap-cms/issues/7118), [#7293](https://github.com/decaporg/decap-cms/issues/7293) — A comment on one of the issues says the crash was due to Google Translate.
|
|
1079
|
+
[^129]: Netlify/Decap CMS [#4961](https://github.com/decaporg/decap-cms/issues/4961), [#4979](https://github.com/decaporg/decap-cms/issues/4979), [#5545](https://github.com/decaporg/decap-cms/issues/5545), [#5778](https://github.com/decaporg/decap-cms/issues/5778), [#6279](https://github.com/decaporg/decap-cms/issues/6279), [#6464](https://github.com/decaporg/decap-cms/issues/6464), [#6810](https://github.com/decaporg/decap-cms/issues/6810), [#6922](https://github.com/decaporg/decap-cms/issues/6922), [#7118](https://github.com/decaporg/decap-cms/issues/7118), [#7293](https://github.com/decaporg/decap-cms/issues/7293) — A comment on one of the issues says the crash was due to Google Translate. Sveltia CMS has turned off Google Translate on the admin page.
|
|
1080
|
+
|
|
1081
|
+
[^130]: Netlify/Decap CMS [#6571](https://github.com/decaporg/decap-cms/issues/6571)
|