@sveltia/cms 0.53.2 → 0.53.4

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
@@ -4,6 +4,8 @@ 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
+ Welcome to the only Netlify CMS successor you can bank on!
8
+
7
9
  ![Screenshot: Open Source Git-based Headless CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-1-20240507.webp)<br>
8
10
 
9
11
  ![Screenshot: Fast and Lightweight; Modern UX with Dark Mode](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/screenshot-2-20240507.webp)<br>
@@ -31,6 +33,7 @@ The free, open source alternative to Netlify/Decap CMS is now in public beta, tu
31
33
  - [Better i18n support](#better-i18n-support)
32
34
  - [Better collections](#better-collections)
33
35
  - [Better content editing](#better-content-editing)
36
+ - [Better content preview](#better-content-preview)
34
37
  - [Better data output](#better-data-output)
35
38
  - [Better widgets](#better-widgets)
36
39
  - [New widgets](#new-widgets)
@@ -82,11 +85,13 @@ Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stal
82
85
 
83
86
  To achieve radical improvements in UX, performance, i18n and other areas, it was decided to build an alternative from the ground up, while ensuring an easy migration path from the other. After proving the concept 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.
84
87
 
88
+ We loved the concept of Netlify CMS — a single page app served from a CDN, plus a single YAML config file — and we wanted to revive it, modernize it, and take it to the next level.
89
+
85
90
  ### Our advantage
86
91
 
87
- Due to its unfortunate abandonment, Netlify CMS spawned 3 successors:
92
+ Due to its unfortunate abandonment in early 2022, Netlify CMS spawned 3 successors:
88
93
 
89
- - [Static CMS](https://github.com/StaticJsCMS/static-cms): a community fork, initial commit made in September 2022, discontinued in September 2024
94
+ - [Static CMS](https://github.com/StaticJsCMS/static-cms): a community fork, initial commit made in September 2022 discontinued in September 2024 after doing a great job
90
95
  - **Sveltia CMS**: a total reboot, started in November 2022, first appeared on GitHub in March 2023
91
96
  - [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 inactive
92
97
 
@@ -110,11 +115,10 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
110
115
 
111
116
  - Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
112
117
  - Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
113
- - So far, 150+ of them, or 300+ including duplicates, have been effectively solved in Sveltia CMS
114
- - Target: 250 or all relevant, fixable and worthwhile issues in the future; 500 including duplicates
115
- - Note: Issues include both feature requests and bug reports; we also track their [stale issues](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) and [discussions](https://github.com/decaporg/decap-cms/discussions)
116
- - Most 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 Some are already implemented in Sveltia CMS
117
- - [Let us know](https://github.com/sveltia/sveltia-cms/issues/new?labels=enhancement) if you have any specific issues you’d like to see solved!
118
+ - So far, 155+ of them, or 305+ including duplicates, have been effectively solved in Sveltia CMS
119
+ - Target: 300 or all relevant, fixable and worthwhile issues in the future; 500 including duplicates
120
+ - Note: Issues include feature requests, bug reports, [stale issues](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) and [discussions](https://github.com/decaporg/decap-cms/discussions)
121
+ - 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
118
122
  - Solving [our own issues](https://github.com/sveltia/sveltia-cms/issues)
119
123
  - Implementing our own enhancement ideas for every part of the product
120
124
  - Responding to requests from the maintainer’s clients
@@ -148,7 +152,7 @@ We are working hard to create a **tremendously better alternative to Netlify CMS
148
152
  - 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/).
149
153
  - Our [local repository workflow](#working-with-a-local-git-repository) utilizes the modern File System Access API to read and write files natively through the web browser, rather than using a slow, ad hoc REST API through a proxy server.
150
154
  - Sorting, filtering and grouping of entries is done instantly without reloading the entire content.
151
- - Uses caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
155
+ - Uses caching, lazy loading and infinite scrolling techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
152
156
  - 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].
153
157
  - No typing lag on input widgets, especially within nested lists and objects[^77].
154
158
 
@@ -169,7 +173,7 @@ We are working hard to create a **tremendously better alternative to Netlify CMS
169
173
  ### Better accessibility
170
174
 
171
175
  - Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17][^67].
172
- - Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver.
176
+ - Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver. An announcement is read out when you open another page.
173
177
  - The rich text editor is built with [Lexical](https://lexical.dev/), which is said to follow accessibility best practices. The [Dragon NaturallySpeaking support](https://lexical.dev/docs/packages/lexical-dragon) is enabled.
174
178
  - Ensures sufficient contrast between the foreground text and background colours.
175
179
  - Enabled and disabled buttons can be clearly distinguished[^105].
@@ -223,7 +227,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
223
227
  - When the `clean_accents` option is enabled for [entry slugs](https://decapcms.org/docs/configuration-options/#slug-type), certain characters, such as German umlauts, will be [transliterated](https://en.wikipedia.org/wiki/Transliteration)[^99].
224
228
  - It’s possible to embed the locale code in an entry by using `widget: hidden` along with `default: '{{locale}}'`[^101].
225
229
  - User interface
226
- - Eliminates UI confusion: The preview pane can be displayed without toggling i18n in the Content Editor. Both panes are scrollable. There is no condition where both panes are edited in the same language at the same time.
230
+ - Eliminates UI confusion: The Preview pane can be displayed without toggling i18n in the Content Editor. Both panes are scrollable. There is no condition where both panes are edited in the same language at the same time.
227
231
  - Users can easily switch between locales while editing by clicking a button instead of a dropdown list.
228
232
  - 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.
229
233
  - Content editing
@@ -290,17 +294,22 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
290
294
  - Required fields, not optional fields, are marked for efficient data entry.
291
295
  - Users can revert changes to all fields or a specific field.
292
296
  - If you revert changes and there are no unsaved changes, the Save button is disabled as expected[^118].
293
- - The preview of a specific field can be hidden with `preview: false`[^126].
294
297
  - Fields with validation errors are automatically expanded if they are part of nested, collapsed objects[^40].
295
- - When you click on a field in the preview pane, the corresponding field in the edit pane is highlighted[^41]. It will be automatically expanded if collapsed.
296
- - The preview pane displays all fields, including each label, making it easier to see which fields are populated.
297
- - Provides better scroll synchronization between the panes when editing or previewing an entry[^92].
298
- - The preview pane won’t cause a scrolling issue[^136].
299
298
  - A full regular expression, including flags, can be used for the widget `pattern` option[^82]. For example, if you want to allow 280 characters or less in a multiline text field, you could write `/^.{0,280}$/s` (but you can now use the `maxlength` option instead.)
300
299
  - A long validation error message is displayed in full, without being hidden behind the field label[^59].
301
300
  - Any links to other entries will work as expected, with the Content Editor being updated for the other[^100].
302
301
  - In the Boolean and Select widgets, you don’t have to update a value twice to re-enable the Save button after saving an entry[^139].
303
302
 
303
+ ### Better content preview
304
+
305
+ - The Preview pane comes with a minimal default style[^168]. It looks nice without a custom preview style or template.
306
+ - The Preview pane displays all fields, including each label, making it easier to see which fields are populated.
307
+ - When you click on a field in the Preview pane, the corresponding field in the Edit pane is highlighted[^41]. It will be automatically expanded if collapsed.
308
+ - The Preview pane won’t cause a scrolling issue[^136].
309
+ - Provides better scroll synchronization between the panes when editing or previewing an entry[^92].
310
+ - Developers can hide the preview of a specific field using a new field option: `preview: false`[^126].
311
+ - [See below](#better-widgets) for widget-specific enhancements, including support for variable types[^42] and YouTube videos.
312
+
304
313
  ### Better data output
305
314
 
306
315
  - Keys in generated JSON/TOML/YAML content are always sorted by the order of configured fields, making Git commits clean and consistent[^86].
@@ -311,7 +320,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
311
320
  - Leading and trailing spaces in text-type field values are automatically removed when you save an entry[^37].
312
321
  - YAML string folding (maximum line width) is disabled, mainly for framework compatibility[^119].
313
322
  - DateTime field values in ISO 8601 format are stored in native date/time format instead of quoted strings when the data output is TOML[^147].
314
- - Provides JSON/YAML format options as part of the [data output options](#controlling-data-output), including indentation and quotes[^9][^155].
323
+ - Provides JSON/YAML format options as part of the [data output options](#controlling-data-output), including indentation[^155] and quotes[^9].
315
324
  - The `yaml_quote` collection option added in [v0.5.10](https://github.com/sveltia/sveltia-cms/releases/tag/v0.5.10) is now deprecated and will be removed in v1.0.0. `yaml_quote: true` is equivalent to `quote: double` in the new YAML format options.
316
325
 
317
326
  ### Better widgets
@@ -344,10 +353,12 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
344
353
  - It’s possible to omit `fields` in a variable type object[^163]. In that case only the `typeKey` (default: `type`) is saved in the output.
345
354
  - Markdown
346
355
  - The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes[^71][^72][^73][^111], lost formatting when pasting[^124], backslash injections[^53], dropdown visibility[^70], and text input difficulties with IME[^54].
347
- - The built-in `image` editor component can be inserted with a single click.
348
356
  - The default editor mode can be set by changing the order of the `modes` option[^58]. If you want to use the plain text editor by default, add `modes: [raw, rich_text]` to the field configuration.
349
357
  - A combination of bold and italic doesn’t create a confusing 3-asterisk markup[^160]. In our editor, bold is 2 asterisks and italic is an underscore.
350
- - Line breaks are rendered as line breaks in the preview pane according to GitHub Flavored Markdown (GFM).
358
+ - The built-in `image` component can be inserted with a single click.
359
+ - The built-in `code-block` component is implemented just like a blockquote. You can simply convert a normal paragraph into a code block instead of adding a component.
360
+ - Code in a code block in the editor can be copied as expected[^165].
361
+ - Line breaks are rendered as line breaks in the Preview pane according to GitHub Flavored Markdown (GFM).
351
362
  - Number
352
363
  - 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.
353
364
  - Object
@@ -358,14 +369,14 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
358
369
  - Field options are displayed with no additional API requests[^14]. The confusing `options_length` option, which defaults to 20, is therefore ignored[^76].
359
370
  - `slug` can be used for `value_field` to show all available options instead of just one in some situations[^91].
360
371
  - Template strings with a wildcard like `{{cities.*.name}}` can also be used for `value_field`[^94].
361
- - `display_fields` is displayed in the preview pane instead of `value_field`.
372
+ - `display_fields` is displayed in the Preview pane instead of `value_field`.
362
373
  - The redundant `search_fields` option is not required in Sveltia CMS, as it defaults to `display_fields` (and `value_field`).
363
374
  - A new item created in a referenced collection is immediately available in the options[^138].
364
375
  - Select
365
376
  - It’s possible to select an option with value `0`[^56].
366
- - `label` is displayed in the preview pane instead of `value`.
377
+ - `label` is displayed in the Preview pane instead of `value`.
367
378
  - String
368
- - When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane. Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
379
+ - When a YouTube video URL is entered in a String field, it appears as an embedded video in the Preview pane. Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
369
380
  - When a regular URL is entered in a String field, it appears as a link that can be opened in a new browser tab.
370
381
  - Supports the `type` option that accepts `url` or `email` as a value, which will validate the value as a URL or email.
371
382
  - Supports the `prefix` and `suffix` string options, which automatically prepend and/or append the developer-defined value to the user-input value.
@@ -379,7 +390,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
379
390
  - A URL can also be entered in the dialog.
380
391
  - Integration with Pexels, Pixabay and Unsplash makes it easy to select and insert a free stock photo[^8]. More stock photo providers will be added in the future.
381
392
  - Users can also simply drag and drop a file onto a File/Image field to attach it without having to open the Select File dialog.
382
- - Large images automatically fit in the preview pane instead of being displayed at their original size, which can easily exceed the width of the pane.
393
+ - Large images automatically fit in the Preview pane instead of being displayed at their original size, which can easily exceed the width of the pane.
383
394
  - 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].
384
395
  - List and Object
385
396
  - The `summary` is displayed correctly when it refers to a Relation field[^36] or a simple List field.
@@ -388,7 +399,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
388
399
  - A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
389
400
  - Relation and Select
390
401
  - If a dropdown list has options with long wrapping labels, they won’t overlap with the next option[^83].
391
- - When there are 5 or fewer options, the UI switches from a dropdown list to radio buttons (single-select) or checkboxes (multi-select) for faster data entry[^61]. This number can be changed with the `dropdown_threshold` option for the `relation` and `select` widgets.
402
+ - When there are 5 or fewer options, the UI automatically switches from a dropdown list to radio buttons (single-select) or checkboxes (multi-select) for faster data entry[^61]. This number can be changed with the `dropdown_threshold` option for the `relation` and `select` widgets.
392
403
  - String and Text
393
404
  - Supports the `minlength` and `maxlength` options, which allow developers to specify the minimum and maximum number of characters required for input without having to write a custom regular expression with the `pattern` option. A character counter is available when one of the options is given, and a user-friendly validation error is displayed if the condition is not met.
394
405
 
@@ -399,7 +410,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
399
410
  - The `value` property also supports a value of `{{index}}`, which can hold the index of a list item ([example](https://github.com/sveltia/sveltia-cms/issues/172)).
400
411
  - KeyValue (Dictionary)
401
412
  - The new `keyvalue` widget allows users to add arbitrary key-value string pairs to a field[^123].
402
- - The implementation is compatible with [Static CMS](https://staticjscms.netlify.app/docs/widget-keyvalue), but we provide a more intuitive UI. You can press Enter to move focus or add a new row while editing, and the preview is displayed in a clean table.
413
+ - While the implementation is compatible with [Static CMS](https://staticjscms.netlify.app/docs/widget-keyvalue), we provide a more intuitive UI. You can press Enter to move focus or add a new row while editing, and the preview is displayed in a clean table.
403
414
  - UUID
404
415
  - In addition to [generating UUIDs for entry slugs](#using-a-random-id-for-an-entry-slug), Sveltia CMS supports the proposed `uuid` widget with the following properties[^12]:
405
416
  - `prefix`: A string to be prepended to the value. Default: an empty string.
@@ -455,8 +466,9 @@ However, 100% feature parity is not planned, and some features are still missing
455
466
  - 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.
456
467
  - The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
457
468
  - The deprecated Date widget will not be supported, as it has already been removed from Decap CMS 3.0. Use the DateTime widget with the `time_format: false` option instead.
469
+ - The theme and keymap inline settings of the Code widget will not be supported, and some minor languages may be dropped, as we use the [Prism](https://prismjs.com/)-powered code block functionality in Lexical instead of [CodeMirror](https://codemirror.net/).
458
470
  - Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
459
- - [Undocumented methods](https://github.com/sveltia/sveltia-cms/blob/c69446da7bb0bab7405be741c0f92850c5dddfa8/src/main.js#L14-L37) exposed on the `window.CMS` object will not be implemented. This includes custom backends and custom media libraries, if any; we may support these features in the future, but our implementation would likely be incompatible with Netlify/Decap CMS.
471
+ - [Undocumented methods](https://github.com/sveltia/sveltia-cms/blob/c69446da7bb0bab7405be741c0f92850c5dddfa8/src/main.js#L14-L37) exposed on the `window.CMS` object will not be implemented. This includes custom backends and custom media libraries, if any. We may support these features in the future, but our implementation would likely be incompatible with Netlify/Decap CMS.
460
472
 
461
473
  ### Features to be implemented before GA
462
474
 
@@ -473,11 +485,11 @@ These limitations are expected to be resolved before the 1.0 release:
473
485
 
474
486
  | Widget | Status in Sveltia CMS |
475
487
  | --- | --- |
476
- | [Code](https://decapcms.org/docs/widgets/#code) | Not yet supported. |
477
- | [DateTime](https://decapcms.org/docs/widgets/#datetime) | The `date_format` and `time_format` options with Moment.js tokens are not yet supported. Note that [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced Moment.js with [Day.js](https://day.js.org/), and [Decap CMS 3.3.0](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.3.0) made other changes to the widget behaviour; we’ll follow these changes where it makes sense. |
488
+ | [Code](https://decapcms.org/docs/widgets/#code) | Coming soon. |
489
+ | [DateTime](https://decapcms.org/docs/widgets/#datetime) | The `date_format` and `time_format` options with Moment.js tokens are not yet supported. Note that [Decap CMS 3.1.1](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.1.1) replaced [Moment.js](https://momentjs.com/) with [Day.js](https://day.js.org/), and [Decap CMS 3.3.0](https://github.com/decaporg/decap-cms/releases/tag/decap-cms%403.3.0) made other changes to the widget behaviour; we’ll follow these changes where it makes sense. |
478
490
  | [File](https://decapcms.org/docs/widgets/#file) / [Image](https://decapcms.org/docs/widgets/#image) | Field-specific media folders (beta) and media library options are not yet supported other than `media_library.config.max_file_size` for the default media library. |
479
- | [Map](https://decapcms.org/docs/widgets/#map) | Not yet supported. |
480
- | [Markdown](https://decapcms.org/docs/widgets/#markdown) | The built-in `code-block` component and custom components are not yet supported. |
491
+ | [Map](https://decapcms.org/docs/widgets/#map) | Coming soon. |
492
+ | [Markdown](https://decapcms.org/docs/widgets/#markdown) | Custom components are not yet supported. There is no language selection and syntax highlighting yet in the built-in `code-block` component. |
481
493
 
482
494
  ### Features to be implemented after GA
483
495
 
@@ -491,17 +503,21 @@ Due to the complexity, the following features are planned for after the 1.0 rele
491
503
 
492
504
  We plan to provide partial compatibility with [Static CMS](https://github.com/StaticJsCMS/static-cms), a now-defunct fork of Netlify CMS. This README will be updated with more details as our development progresses.
493
505
 
506
+ - Static CMS made [some breaking changes](https://staticjscms.netlify.app/docs/decap-migration-guide) to sortable fields, view filters/groups, List widget, etc. while Sveltia CMS follows Netlify/Decap CMS, so you should review your configuration carefully.
494
507
  - The KeyValue widget is implemented in Sveltia CMS with the same options.
495
508
  - The UUID widget is also implemented, but with different options.
496
509
  - The `prefix` and `suffix` options for the Boolean, Number and String widgets are implemented as `before_input` and `after_input` in Sveltia CMS. Our `prefix` and `suffix` options for the String widget are literally a prefix and suffix to the value.
497
- - `CMS.registerIcon()` won’t be supported, as Sveltia CMS includes Material Symbols for [custom collection icons](#using-a-custom-icon-for-a-collection).
510
+ - The `multiple` option for the File and Image widgets will be implemented in Sveltia CMS soon. ([#10](https://github.com/sveltia/sveltia-cms/issues/10))
511
+ - Directory navigation in the Asset Library is partially supported in Sveltia CMS. If you define [collection-specific `media_folder`s](#using-a-custom-media-folder-for-a-collection), these folders will be displayed in the Asset Library and Select File/Image dialog. Display of subfolders within a configured folder will be implemented soon. ([#301](https://github.com/sveltia/sveltia-cms/issues/301))
512
+ - `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.
513
+ - The `enforce_required_non_default` i18n option will not be supported. Sveitia CMS enforces required fields in all locales by default. However, the `save_all_locales` i18n option allows users to [disable non-default locales](#disabling-non-default-locale-content) if needed. Developers can also specify a subset of locales with the `required` field option, e.g. `required: [en]`.
498
514
 
499
515
  ### Other notes
500
516
 
501
- - Make sure you’re using the latest stable version of a web browser. Firefox ESR and its derivatives, including Tor Browser and Mullvad Browser, are not supported, although they may still work. The [local repository workflow](#working-with-a-local-git-repository) requires Chrome, Edge or another Chromium-based browser.
502
- - 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 it’s served over HTTP, get a TLS certificate from [Let’s Encrypt](https://letsencrypt.org/).
517
+ - 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.
518
+ - 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/).
503
519
  - The GitLab backend requires GitLab 16.3 or later.
504
- - 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!
520
+ - 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.
505
521
 
506
522
  ## Getting started
507
523
 
@@ -691,6 +707,8 @@ In Sveltia CMS, those collection media folders are displayed prominently for eas
691
707
  - Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
692
708
  - Cancel entry editing: `Escape`
693
709
 
710
+ Standard keyboard shortcuts are also available in the Markdown editor, including `Ctrl+B`/`Command+B` for bold text, `Ctrl+I`/`Command+I` for italics, and `Tab` to indent a list item.
711
+
694
712
  ### Using DeepL to translate entry fields
695
713
 
696
714
  Sveltia CMS comes with a handy DeepL integration so that you can translate any text field from another locale without leaving the Content Editor. To enable the high quality, AI-powered, quick translation feature:
@@ -708,7 +726,7 @@ If you have upgraded to DeepL API Pro, provide your new Authentication Key:
708
726
 
709
727
  1. Click the Account button in the upper right corner, then click Settings.
710
728
  1. Select the Language tab.
711
- 1. Replace your free API key with the new paid API key in the DeepL API Authentication Key field.
729
+ 1. Replace your free API key ending with `:fx` with the new paid API key in the DeepL API Authentication Key field.
712
730
  1. Close the Settings dialog.
713
731
 
714
732
  ### Localizing entry slugs
@@ -980,7 +998,7 @@ img-src 'self' blob: data: https://*;
980
998
 
981
999
  While we don’t have dedicated developer/user support resources, [quick questions](https://github.com/sveltia/sveltia-cms/discussions/new?category=q-a) and [feedback](https://github.com/sveltia/sveltia-cms/discussions/new?category=general) are welcome on the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page of our GitHub repository. We also have a [Discord channel](https://discord.gg/5hwCGqup5b) for casual chat.
982
1000
 
983
- As described throughout this README, Sveltia CMS is being built as a replacement for Netlify/Decap CMS. At this point, we assume that most developers and users are migrating from the other product. We are happy to help you migrate, but we cannot help you set up Sveltia CMS from scratch through our free support channels.
1001
+ As described throughout this README, Sveltia CMS is being built as a replacement for Netlify/Decap CMS. At this point, we assume that most developers and users are migrating from the other product or Static CMS. We are happy to help you migrate, but **we cannot help you set up Sveltia CMS from scratch** through our free support channels.
984
1002
 
985
1003
  Planning to build a website with Sveltia CMS? Looking for professional support? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your needs. Feel free to reach out!
986
1004
 
@@ -1003,16 +1021,16 @@ See [Contributing to Sveltia CMS](https://github.com/sveltia/sveltia-cms/blob/ma
1003
1021
 
1004
1022
  ### After the 1.0 release
1005
1023
 
1006
- - Implementing the remaining Netlify/Decap CMS features: Editorial Workflow, Open Authoring and Nested Collections
1007
- - Tackling more Netlify/Decap CMS issues, including MDX support[^122], manual entry sorting[^125], roles[^23], mobile optimization[^18] and config editor[^10] Some [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc) are already implemented in Sveltia CMS
1008
- - Exploring further [compatibility with Static CMS](#compatibility-with-static-cms)
1024
+ - Implementing the [remaining Netlify/Decap CMS features](#features-to-be-implemented-after-ga)
1025
+ - Tackling more Netlify/Decap CMS issues, including MDX support[^122], manual entry sorting[^125], mobile optimization[^18], config editor[^10] and other [top-voted features](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc)
1026
+ - 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]
1027
+ - Considering further [compatibility with Static CMS](#compatibility-with-static-cms)
1009
1028
  - More integration options: stock photos, stock videos, cloud storage providers, translation services, maps, analytics tools
1010
1029
  - AI integrations for image generation and content writing
1011
1030
  - Advanced digital asset management (DAM) features, including image editing and tagging[^114]
1012
1031
  - End-user documentation
1013
1032
  - Contributor documentation
1014
1033
  - Marketplace for custom widgets, etc.
1015
- - Git Gateway alternative
1016
1034
  - VS Code extension for `config.yml` schema validation
1017
1035
  - and so much more!
1018
1036
 
@@ -1275,7 +1293,7 @@ This software is provided “as is” without any express or implied warranty. W
1275
1293
 
1276
1294
  [^122]: Netlify/Decap CMS [#1776](https://github.com/decaporg/decap-cms/issues/1776), [#2064](https://github.com/decaporg/decap-cms/issues/2064), [#7158](https://github.com/decaporg/decap-cms/issues/7158), [#7259](https://github.com/decaporg/decap-cms/issues/7259)
1277
1295
 
1278
- [^123]: Netlify/Decap CMS [#5489](https://github.com/decaporg/decap-cms/issues/5489)
1296
+ [^123]: Netlify/Decap CMS [#961](https://github.com/decaporg/decap-cms/issues/961), [#5489](https://github.com/decaporg/decap-cms/issues/5489)
1279
1297
 
1280
1298
  [^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)
1281
1299
 
@@ -1358,3 +1376,11 @@ This software is provided “as is” without any express or implied warranty. W
1358
1376
  [^163]: Netlify/Decap CMS [#7322](https://github.com/decaporg/decap-cms/issues/7322)
1359
1377
 
1360
1378
  [^164]: Netlify/Decap CMS [#756](https://github.com/decaporg/decap-cms/issues/756) — The Expand All and Collapse All buttons cannot be found in the current version of Decap CMS.
1379
+
1380
+ [^165]: Netlify/Decap CMS [#7143](https://github.com/decaporg/decap-cms/issues/7143)
1381
+
1382
+ [^166]: Netlify/Decap CMS [#277](https://github.com/decaporg/decap-cms/issues/277)
1383
+
1384
+ [^167]: Netlify/Decap CMS [#263](https://github.com/decaporg/decap-cms/issues/263)
1385
+
1386
+ [^168]: Netlify/Decap CMS [#1948](https://github.com/decaporg/decap-cms/issues/1948)