@sveltia/cms 0.68.0 → 0.70.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 +53 -26
- package/dist/sveltia-cms.js +245 -186
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +252 -193
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/types/public.d.ts +18 -1
package/README.md
CHANGED
|
@@ -4,15 +4,17 @@ Sveltia CMS is a Git-based lightweight headless CMS under active development as
|
|
|
4
4
|
|
|
5
5
|
The free, open source alternative to Netlify/Decap CMS is now in public beta, turbocharged with great UX, performance, i18n support and so many more enhancements.
|
|
6
6
|
|
|
7
|
-
<br>
|
|
8
8
|
|
|
9
|
-
<br>
|
|
10
10
|
|
|
11
|
-
<br>
|
|
12
12
|
|
|
13
|
-
<br>
|
|
14
14
|
|
|
15
|
-
<br>
|
|
16
|
+
|
|
17
|
+
<br>
|
|
16
18
|
|
|
17
19
|
## Table of contents
|
|
18
20
|
|
|
@@ -43,6 +45,8 @@ The free, open source alternative to Netlify/Decap CMS is now in public beta, tu
|
|
|
43
45
|
- [Features not to be implemented](#features-not-to-be-implemented)
|
|
44
46
|
- [Current limitations](#current-limitations)
|
|
45
47
|
- [Compatibility with Static CMS](#compatibility-with-static-cms)
|
|
48
|
+
- [Framework support](#framework-support)
|
|
49
|
+
- [Browser support](#browser-support)
|
|
46
50
|
- [Other notes](#other-notes)
|
|
47
51
|
- [Getting started](#getting-started)
|
|
48
52
|
- [Installation \& setup](#installation--setup)
|
|
@@ -67,7 +71,7 @@ The free, open source alternative to Netlify/Decap CMS is now in public beta, tu
|
|
|
67
71
|
- [Disabling non-default locale content](#disabling-non-default-locale-content)
|
|
68
72
|
- [Using a random ID for an entry slug](#using-a-random-id-for-an-entry-slug)
|
|
69
73
|
- [Configuring multiple media libraries](#configuring-multiple-media-libraries)
|
|
70
|
-
- [Optimizing images for
|
|
74
|
+
- [Optimizing images for upload](#optimizing-images-for-upload)
|
|
71
75
|
- [Editing data files with a top-level list](#editing-data-files-with-a-top-level-list)
|
|
72
76
|
- [Changing the input type of a DateTime field](#changing-the-input-type-of-a-datetime-field)
|
|
73
77
|
- [Controlling data output](#controlling-data-output)
|
|
@@ -121,7 +125,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
121
125
|
- Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
|
|
122
126
|
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
123
127
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
124
|
-
- So far, 190+ issues, or
|
|
128
|
+
- So far, 190+ issues, or 390+ if including duplicates, have been effectively solved in Sveltia CMS
|
|
125
129
|
- Target:
|
|
126
130
|
- 200 issues, or 400 if including duplicates, by GA (almost there)
|
|
127
131
|
- 350 issues, or 600 if including duplicates, in the future
|
|
@@ -146,7 +150,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
|
|
|
146
150
|
- Frequent releases deliver new features and enhancements to users faster. Most of our minor [releases](https://github.com/sveltia/sveltia-cms/releases) address one or more Netlify/Decap CMS issues, giving you even more reasons to switch from the legacy predecessor.
|
|
147
151
|
- Offers a modern, intuitive user interface that utilizes the full viewport,[^178] inspired in part by the Netlify CMS v3 prototype.[^1]
|
|
148
152
|
- Provides immersive dark mode.[^2] The UI theme follows the user’s system preference by default and can be changed in the application settings.
|
|
149
|
-
- Comes with
|
|
153
|
+
- Comes with decent mobile support.[^18] Expect some glitches — we are still working to fully optimize the app for small screens and touch devices.
|
|
150
154
|
- Made with [Svelte](https://svelte.dev/), not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid common fatal React application crashes.[^113][^129] Best of all, Svelte offers great performance.
|
|
151
155
|
- We build [our own UI component library](https://github.com/sveltia/sveltia-ui), including custom dialogs,[^196] to ensure optimal usability without compromising accessibility.
|
|
152
156
|
- The in-app Help menu provides all links to useful resources, including release notes, feedback and support.
|
|
@@ -156,7 +160,6 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
|
|
|
156
160
|
### Better performance
|
|
157
161
|
|
|
158
162
|
- 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).
|
|
159
|
-
- The CMS is compiled and distributed as vanilla JavaScript. You can use it with any framework or static site generator (SSG) that can load static files during the build process, including but not limited to Astro, Eleventy, Hugo, Jekyll, Next.js, SvelteKit and VitePress.
|
|
160
163
|
- 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][^64] This number is remarkable because even though some Netlify/Decap CMS features are [omitted](#features-not-to-be-implemented) or [unimplemented](#current-limitations) in Sveltia CMS, we have added a lot of new features. That’s the power of [Svelte 5](https://svelte.dev/blog/svelte-5-is-alive) + [Vite](https://vite.dev/).
|
|
161
164
|
- 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 widgets.[^14]
|
|
162
165
|
- 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,7 +231,7 @@ We hope Netlify/Decap CMS users will be pleased and surprised by the numerous im
|
|
|
228
231
|
- Users won’t get a 404 Not Found error when you sign in to the GitLab backend.[^115]
|
|
229
232
|
- Features the all-new local backend that boosts DX. See the [productivity section](#better-productivity) above.
|
|
230
233
|
- Developers can select the local and remote backends while working on a local server.
|
|
231
|
-
- 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]
|
|
234
|
+
- 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] Persistent storage is not yet supported in Safari.
|
|
232
235
|
|
|
233
236
|
### Better i18n support
|
|
234
237
|
|
|
@@ -477,10 +480,12 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
477
480
|
- Upload multiple assets at once, including files in nested folders, by browsing or dragging and dropping them into the library.[^5]
|
|
478
481
|
- Sort or filter assets by name or file type.
|
|
479
482
|
- View asset details, including size, dimensions, commit author/date and a list of entries that use the selected asset.
|
|
480
|
-
- Enhancements to media
|
|
483
|
+
- Enhancements to media libraries:
|
|
481
484
|
- Supports multiple media libraries with the [new `media_libraries` option](#configuring-multiple-media-libraries).[^195]
|
|
482
|
-
-
|
|
483
|
-
-
|
|
485
|
+
- Integrates stock photo providers, including Pexels, Pixabay and Unsplash.
|
|
486
|
+
- Default media library
|
|
487
|
+
- It comes with a [built-in image optimizer](#optimizing-images-for-upload). With a few lines of configuration, images selected by users for upload are automatically converted to WebP format for reduced size,[^199] and it’s also possible to specify a maximum width and/or height.[^200] SVG images can also be optimized.
|
|
488
|
+
- The `max_file_size` option for the File/Image widget can be defined within the global `media_library` option, using `default` as the library name. It applies to all File/Image entry fields, as well as direct uploads to the Asset Library. The option can also be part of the [new `media_libraries` option](#configuring-multiple-media-libraries).
|
|
484
489
|
- The global `media_folder` can be an empty string (or `.` or `/`) if you want to store assets in the root folder.
|
|
485
490
|
- PDF documents are displayed with a thumbnail image in both the Asset Library and the Select File dialog, making it easier to find the file you’re looking for.[^38]
|
|
486
491
|
- Assets stored in an entry-relative media folder are displayed in the Asset Library.[^142]
|
|
@@ -555,6 +560,8 @@ Due to the complexity, the following features will be added after the 1.0 releas
|
|
|
555
560
|
- [Open Authoring](https://decapcms.org/docs/open-authoring/)
|
|
556
561
|
- [Nested Collections](https://decapcms.org/docs/collection-nested/)
|
|
557
562
|
|
|
563
|
+
Found a compatibility issue or other missing feature? [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?labels=bug). Bear in mind that undocumented behaviour can easily be overlooked.
|
|
564
|
+
|
|
558
565
|
### Compatibility with Static CMS
|
|
559
566
|
|
|
560
567
|
Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. This README will be updated as our development progresses.
|
|
@@ -576,13 +583,24 @@ Sveltia CMS provides partial compatibility with [Static CMS](https://github.com/
|
|
|
576
583
|
- Customization
|
|
577
584
|
- `CMS.registerIcon()` will not be supported, as Sveltia CMS includes the Material Symbols font for [custom collection icons](#using-a-custom-icon-for-a-collection) that doesn’t require manual registration.
|
|
578
585
|
|
|
586
|
+
### Framework support
|
|
587
|
+
|
|
588
|
+
While Sveltia CMS is built with Svelte, the application is **framework-agnostic** because it’s distributed as compiled vanilla JavaScript and is a pure headless CMS that only manages content in Git repositories.
|
|
589
|
+
|
|
590
|
+
You can use the CMS with any framework or static site generator (SSG) that can load static files during the build process, including but not limited to Astro, Eleventy, Hugo, Jekyll, Next.js, SvelteKit and VitePress.
|
|
591
|
+
|
|
592
|
+
### Browser support
|
|
593
|
+
|
|
594
|
+
Sveitia CMS works with all modern browsers, but there are a few limitations because it utilizes some new web technologies:
|
|
595
|
+
|
|
596
|
+
- The [local repository workflow](#working-with-a-local-git-repository) requires a Chromium-based browser, including Chrome, Edge and Brave.
|
|
597
|
+
- Safari: The Test backend doesn’t save changes locally; [image optimization](#optimizing-images-for-upload) is slower than in other browsers.
|
|
598
|
+
- Firefox ESR and its derivatives, including Tor Browser and Mullvad Browser, are not officially supported, although they may still work.
|
|
599
|
+
|
|
579
600
|
### Other notes
|
|
580
601
|
|
|
581
|
-
- Make sure you’re using the latest stable version of a modern web browser. Firefox ESR and its derivatives, including Tor Browser and Mullvad Browser, are not officially supported, although they may still work. The [local repository workflow](#working-with-a-local-git-repository) requires Chrome, Edge or another Chromium-based browser.
|
|
582
|
-
- The persistent storage for the Test backend is not yet supported in Safari.
|
|
583
602
|
- Sveltia CMS requires a [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), meaning it only works with HTTPS, `localhost` or `127.0.0.1` URLs. If you’re running a remote server yourself and the content is served over HTTP, get a TLS certificate from [Let’s Encrypt](https://letsencrypt.org/).
|
|
584
603
|
- The GitLab backend requires GitLab 16.3 or later.
|
|
585
|
-
- Found a compatibility issue or other missing feature? [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?labels=bug). Bear in mind that undocumented behaviour can easily be overlooked.
|
|
586
604
|
|
|
587
605
|
## Getting started
|
|
588
606
|
|
|
@@ -961,27 +979,36 @@ media_libraries:
|
|
|
961
979
|
defaultOperations: '/resize/800x600/'
|
|
962
980
|
```
|
|
963
981
|
|
|
964
|
-
|
|
982
|
+
Note: Cloudinary and Uploadcare are not yet supported in Sveltia CMS.
|
|
983
|
+
|
|
984
|
+
### Optimizing images for upload
|
|
965
985
|
|
|
966
|
-
Ever wanted to prevent end-users from adding huge images? The built-in optimizer in Sveltia CMS
|
|
986
|
+
Ever wanted to prevent end-users from adding huge images to your repository? The built-in image optimizer in Sveltia CMS makes developers’ lives easier with a simple configuration like this:
|
|
967
987
|
|
|
968
988
|
```yaml
|
|
969
989
|
media_libraries:
|
|
970
990
|
default:
|
|
971
991
|
config:
|
|
972
992
|
transformations:
|
|
973
|
-
raster_image:
|
|
974
|
-
format: webp # only `webp` is supported
|
|
993
|
+
raster_image: # original format
|
|
994
|
+
format: webp # new format, only `webp` is supported
|
|
975
995
|
quality: 85 # default: 85
|
|
976
996
|
width: 2048 # default: original size
|
|
977
997
|
height: 2048 # default: original size
|
|
998
|
+
svg:
|
|
999
|
+
optimize: true
|
|
978
1000
|
```
|
|
979
1001
|
|
|
980
|
-
|
|
981
|
-
|
|
1002
|
+
Then, whenever a user selects images to upload, those images are automatically optimized, all within the browser. Raster images such as JPEG and PNG are converted to WebP format and resized if necessary. SVG images are minified using the [SVGO](https://github.com/svg/svgo) library.
|
|
1003
|
+
|
|
1004
|
+
In case you’re not aware, [WebP](https://developers.google.com/speed/webp) offers better compression than conventional formats and is now [widely supported](https://caniuse.com/webp) across major browsers. So there is no reason not to use WebP on the web.
|
|
1005
|
+
|
|
1006
|
+
- As [noted above](#configuring-multiple-media-libraries), the `media_libraries` option can be global at the root level of `config.yml`, which applies to both entry fields and the Asset Library, or field-specific for the File/Image widgets.
|
|
1007
|
+
- `raster_image` applies to any supported raster image format: `avif`, `bmp`, `gif`, `jpeg`, `png` and `webp`. If you like, you can use a specific format as key instead of `raster_image`.
|
|
982
1008
|
- The `width` and `height` options are the maximum width and height, respectively. If an image is larger than the specified dimension, it will be scaled down. Smaller images will not be resized.
|
|
983
|
-
- File processing is a bit slow on Safari because [native WebP encoding](https://caniuse.com/mdn-api_htmlcanvaselement_toblob_type_parameter_webp) is not
|
|
984
|
-
- AVIF conversion is not supported
|
|
1009
|
+
- File processing is a bit slow on Safari because [native WebP encoding](https://caniuse.com/mdn-api_htmlcanvaselement_toblob_type_parameter_webp) is [not supported](https://bugs.webkit.org/show_bug.cgi?id=183257) and the [jSquash](https://github.com/jamsinclair/jSquash) library is used instead.
|
|
1010
|
+
- AVIF conversion is not supported because no browser has native AVIF encoding support ([Chromium won’t fix it](https://issues.chromium.org/issues/40848792)) and the third-party library (and AVIF encoding in general) is very slow.
|
|
1011
|
+
- This feature is not intended for creating image variants in different formats and sizes. It should be done with a framework during the build process.
|
|
985
1012
|
- We may add more transformation options in the future.
|
|
986
1013
|
|
|
987
1014
|
### Editing data files with a top-level list
|
|
@@ -1225,7 +1252,7 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
|
|
|
1225
1252
|
### After the 1.0 release
|
|
1226
1253
|
|
|
1227
1254
|
- Implementing the [remaining Netlify/Decap CMS features](#current-limitations)
|
|
1228
|
-
- Tackling even more Netlify/Decap CMS issues, including MDX support,[^122] manual entry sorting,[^125]
|
|
1255
|
+
- Tackling even more Netlify/Decap CMS issues, including MDX support,[^122] manual entry sorting,[^125] config editor[^10] and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
|
|
1229
1256
|
- Exploring features that require server-side implementation, including user management (Netlify Identity alternative), roles,[^23] commits without a GitHub or GitLab account (Git Gateway alternative), post locking (like [WordPress](https://codex.wordpress.org/Post_Locking))[^166] and scheduled posts[^167]
|
|
1230
1257
|
- More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools, etc.
|
|
1231
1258
|
- AI integrations for image generation and content writing
|
|
@@ -1291,7 +1318,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1291
1318
|
|
|
1292
1319
|
[^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333), [#4216](https://github.com/decaporg/decap-cms/issues/4216)
|
|
1293
1320
|
|
|
1294
|
-
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
|
|
1321
|
+
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852), [#7241](https://github.com/decaporg/decap-cms/issues/7241)
|
|
1295
1322
|
|
|
1296
1323
|
[^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
|
|
1297
1324
|
|