@sveltia/cms 0.46.5 → 0.47.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 CHANGED
@@ -40,6 +40,7 @@ The free, open source alternative to Netlify/Decap CMS is now in public beta, tu
40
40
  - [Compatibility](#compatibility)
41
41
  - [Features not to be implemented](#features-not-to-be-implemented)
42
42
  - [Current limitations](#current-limitations)
43
+ - [Other notes](#other-notes)
43
44
  - [Getting started](#getting-started)
44
45
  - [New users](#new-users)
45
46
  - [Migration](#migration)
@@ -96,7 +97,7 @@ While Sveltia CMS is specifically designed to replace legacy Netlify CMS instanc
96
97
  - Emerging as the leading open source offering in the Git-based CMS market
97
98
  - Empowering small businesses and individuals who need a simple, free, yet powerful CMS solution
98
99
  - Extending its capabilities as digital asset management (DAM) software
99
- - Showcasing the vast potential of the Svelte framework
100
+ - Showcasing the power of Svelte and UX engineering
100
101
 
101
102
  ## Development status
102
103
 
@@ -192,7 +193,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
192
193
  - Developers can [disable automatic deployments](#disabling-automatic-deployments) by default or on demand to save costs and resources associated with CI/CD and to publish multiple changes at once[^24].
193
194
  - The GitLab backend support comes with background [service status](https://status.gitlab.com/) checking, just like GitHub.
194
195
  - Service status checks are performed frequently and an incident notification is displayed prominently.
195
- - Users 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.
196
+ - Users 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 when Developer Mode is enabled.
196
197
  - We provide [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth) for GitHub and GitLab.
197
198
  - Users won’t get a 404 Not Found error when you sign in to the GitLab backend[^115].
198
199
  - Features the all-new local backend that boosts DX. See the [productivity section](#better-productivity) above.
@@ -200,7 +201,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
200
201
 
201
202
  ### Better i18n support
202
203
 
203
- Sveltia CMS has been built with a multilingual architecture from the very beginning. You can expect first-class internationalization (i18n) support, as it’s required by clients of maintainer [@kyoshino](https://github.com/kyoshino), who himself was a long-time Japanese localizer for Mozilla and currently lives in a [multicultural city](https://en.wikipedia.org/wiki/Toronto) where 150+ languages are spoken.
204
+ Sveltia CMS has been built with a multilingual architecture from the very beginning. You can expect best-in-class internationalization (i18n) support, as it’s required by clients of maintainer [@kyoshino](https://github.com/kyoshino), who himself was a long-time Japanese localizer for Mozilla and currently lives in a [multicultural city](https://en.wikipedia.org/wiki/Toronto) where 150+ languages are spoken.
204
205
 
205
206
  - Configuration
206
207
  - The [i18n limitations](https://decapcms.org/docs/i18n/#limitations) in Netlify/Decap CMS do not apply to Sveltia CMS:
@@ -240,6 +241,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
240
241
  - Entry slugs
241
242
  - It’s possible to [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug).
242
243
  - Slug generation is fail-safe: If a slug cannot be determined from entry content, part of a random UUID is used instead of throwing an error or filling in with arbitrary string field values[^133].
244
+ - If a collection only has the Markdown `body` field, an entry slug will be generated from a header in the `body`, if exists. This supports a typical VitePress setup.
243
245
  - Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
244
246
  - Single quotes (apostrophes) in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
245
247
  - Developers can set the maximum number of characters for an entry slug with the new `slug_length` collection option to avoid deployment errors with Netlify or other platforms[^25].
@@ -249,7 +251,9 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
249
251
  - The collection list displays the number of items in each collection.
250
252
  - A folder collection filter with a boolean value works as expected[^93].
251
253
  - Entry grouping and sorting can work together. For example, it’s possible to group by year and then sort by year if configured properly.
252
- - 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.
254
+ - Hugo’s special `_index.md` files, including localized ones like `_index.en.md`, 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.
255
+ - The collection `folder` can be an empty string (or `.` or `/`) if you want to store entries in the root folder. This supports a typical VitePress setup.
256
+ - Entries can be listed and edited even if the collection doesn’t have the `title` field. In that case, an entry summary will be generated from a header in the Markdown `body` field, if exists, or from the entry slug. This supports a typical VitePress setup.
253
257
  - 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].
254
258
  - Sorting entries by a DateTime field works as expected[^110].
255
259
  - The entry list supports basic Markdown formatting syntax in the titles: bold, italic and code are allowed. HTML character references (entities) are also parsed properly[^69].
@@ -351,6 +355,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
351
355
  - If the `public_folder` contains `{{slug}}` and you’ve edited a slug field (e.g. `title`) of a new entry after uploading an asset, the updated slug will be used in the saved asset path[^140]. Other dynamic template tags such as `{{filename}}` will also be populated as expected[^141].
352
356
  - List and Object
353
357
  - The `summary` is displayed correctly when it refers to a Relation field[^36] or a simple List field.
358
+ - The `summary` template tags support [summary string transformations](https://decapcms.org/docs/summary-strings/).
354
359
  - Markdown, String and Text
355
360
  - A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
356
361
  - Relation and Select
@@ -391,6 +396,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
391
396
  - Users can add assets using the Quick Add button in the upper right corner of the application.
392
397
  - Files are uploaded with their original names, without converting uppercase letters and spaces to lowercase letters and hyphens[^97].
393
398
  - No fatal application crash when uploading assets[^112].
399
+ - `media_folder` can be an empty string (or `.` or `/`) if you want to store assets in the root folder.
394
400
 
395
401
  ### Better customization
396
402
 
@@ -432,7 +438,7 @@ These limitations are expected to be resolved before or shortly after GA:
432
438
  | Localization | The application UI is only available in English and Japanese at this time. |
433
439
  | Media Libraries | Cloudinary and Uploadcare are not yet supported. |
434
440
  | Workflow | Editorial Workflow and Open Authoring are not yet supported and will be implemented after the 1.0 release. |
435
- | Collections | Nested Collections are not yet supported and will be implemented after the 1.0 release. |
441
+ | Collections | Nested Collections (beta) are not yet supported and will be implemented after the 1.0 release. |
436
442
  | Widgets | Custom widgets are not yet supported. See the table below for other limitations. |
437
443
  | Customizations | Custom previews and event subscriptions are not yet supported. |
438
444
 
@@ -444,15 +450,17 @@ These limitations are expected to be resolved before or shortly after GA:
444
450
  | Map | Not yet supported. |
445
451
  | Markdown | Editor components, including built-in `image` and `code-block` as well as custom components, are not yet supported. |
446
452
 
447
- We also plan to provide partial compatibility with new features added to Static CMS, such as the [KeyValue widget](https://staticjscms.netlify.app/docs/widget-keyvalue).
453
+ ### Other notes
448
454
 
449
- Found a compatibility issue or other missing feature? Let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues/new).
455
+ - The GitLab backend requires GitLab 16.3 or later.
456
+ - We plan to provide partial compatibility with now-discontinued Static CMS, such as the [KeyValue widget](https://staticjscms.netlify.app/docs/widget-keyvalue).
457
+ - Found a compatibility issue or other missing feature? Let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues/new).
450
458
 
451
459
  ## Getting started
452
460
 
453
461
  ### New users
454
462
 
455
- Currently, Sveltia CMS is primarily intended for existing Netlify/Decap CMS users. If you don’t have it yet, follow [their documentation](https://decapcms.org/docs/basic-steps/) to add it to your site and create a configuration file first. Then migrate to Sveltia CMS as described below.
463
+ Currently, Sveltia CMS is primarily intended for existing Netlify/Decap CMS users. If you don’t have it yet, follow [their documentation](https://decapcms.org/docs/basic-steps/) to add it to your site and create a configuration file first. Make sure you choose the [GitHub](https://decapcms.org/docs/github-backend/) or [GitLab](https://decapcms.org/docs/gitlab-backend/) backend (and ignore the Choosing a Backend page). Then migrate to Sveltia CMS as described below.
456
464
 
457
465
  As the product evolves, we’ll implement a built-in configuration editor and provide comprehensive documentation to make it easier for everyone to get started with Sveltia CMS.
458
466
 
@@ -467,7 +475,7 @@ Alternatively, you can probably use one of the [Netlify/Decap CMS templates](htt
467
475
 
468
476
  ### Migration
469
477
 
470
- Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub or GitLab backend and don’t have any custom widget, custom preview or plugin, migrating to Sveltia CMS is super easy — it works as a drop-in replacement. Edit `/admin/index.html` to replace the CMS `<script>` tag, and push the change to your repository. Your new `<script>` tag is:
478
+ Have a look at the [compatibility info](#compatibility) above first. If you’re already using Netlify/Decap CMS with the GitHub or GitLab backend and don’t have any unsupported features like custom widgets or nested collections, migrating to Sveltia CMS is super easy — it works as a drop-in replacement. Edit `/admin/index.html` to replace the CMS `<script>` tag, and push the change to your repository. Your new `<script>` tag is:
471
479
 
472
480
  ```html
473
481
  <script src="https://unpkg.com/@sveltia/cms/dist/sveltia-cms.js"></script>
@@ -493,7 +501,7 @@ That said, we strongly recommend testing your new Sveltia CMS instance first on
493
501
 
494
502
  #### Migrating from Git Gateway backend
495
503
 
496
- 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.
504
+ 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](https://decapcms.org/docs/github-backend/) or [GitLab](https://decapcms.org/docs/gitlab-backend/) 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.
497
505
 
498
506
  To allow multiple users to edit content, simply invite people to your GitHub repository with the write role assigned.
499
507
 
@@ -537,7 +545,7 @@ If you get an “Authentication Aborted” error when trying to sign in to GitHu
537
545
 
538
546
  ### Working with a local Git repository
539
547
 
540
- Sveltia CMS has simplified the local repository workflow by removing the need for additional configuration (the `local_backend` property) and a proxy server, thanks to the [File System Access API](https://developer.chrome.com/articles/file-system-access/) available in [some modern browsers](https://developer.mozilla.org/en-US/docs/web/api/window/showopenfilepicker#browser_compatibility).
548
+ Sveltia CMS has simplified the local repository workflow by removing the need for additional configuration (the `local_backend` property) and a proxy server (`netlify-cms-proxy-server` or `decap-server`), thanks to the [File System Access API](https://developer.chrome.com/articles/file-system-access/) available in [some modern browsers](https://developer.mozilla.org/en-US/docs/web/api/window/showopenfilepicker#browser_compatibility).
541
549
 
542
550
  Basically there are only two differences from Netlify/Decap CMS: you don’t need to run the proxy server, and you need to select your project folder in the browser instead. Here are the detailed steps:
543
551
 
@@ -561,7 +569,7 @@ Keep in mind that, as with Netlify/Decap CMS, the local repository support in Sv
561
569
 
562
570
  Also, at this point, you have to reload the CMS to see the latest content after retrieving remote updates. This manual work will hopefully be unnecessary once the proposed `FileSystemObserver` API, which is being [implemented in Chromium](https://issues.chromium.org/issues/40105284) behind a flag, becomes available.
563
571
 
564
- If you have migrated from Netlify/Decap CMS and are happy with the local workflow of Sveltia CMS, you can remove the `local_backend` property from your configuration and uninstall the proxy server (`netlify-cms-proxy-server` or `decap-server`). If you have configured a custom port number with the `.env` file, you can remove it as well.
572
+ If you have migrated from Netlify/Decap CMS and are happy with the local workflow of Sveltia CMS, you can remove the `local_backend` property from your configuration and uninstall the proxy server. If you have configured a custom port number with the `.env` file, you can remove it as well.
565
573
 
566
574
  ### Enabling local development in Brave
567
575
 
@@ -743,7 +751,7 @@ It’s simple — just specify `{{uuid}}` (full UUID v4), `{{uuid_short}}` (last
743
751
 
744
752
  ### Editing data files with a top-level list
745
753
 
746
- Sveltia CMS allows you to edit and save a list at the top-level of a data file, without a field name. All you need to do is create a single List field with the new `root` option set to `true`. The configuration below reproduces a [Jekyll data file example](https://jekyllrb.com/docs/datafiles/#example-list-of-members):
754
+ Sveltia CMS allows you to edit and save a list at the top-level of a data file, without a field name. All you need to do is create a single List field with the new `root` option set to `true`. The configuration below reproduces [this Jekyll data file example](https://jekyllrb.com/docs/datafiles/#example-list-of-members):
747
755
 
748
756
  ```yaml
749
757
  collections: