@sveltia/cms 0.22.1 → 0.24.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 +120 -66
- package/dist/sveltia-cms.js +164 -164
- package/dist/sveltia-cms.mjs +171 -171
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -24,47 +24,46 @@ Our goal is to make it a viable successor to Netlify CMS, expand the Git-based h
|
|
|
24
24
|
|
|
25
25
|
**Sveltia CMS is still in beta**, so please be careful when trying it out.
|
|
26
26
|
|
|
27
|
-
While we are fixing reported bugs as fast as we can, usually within
|
|
27
|
+
While we are fixing reported bugs as fast as we can, usually within 24 hours, the 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:
|
|
28
28
|
|
|
29
29
|
- Ensuring maximum compatibility with existing versions of Netlify/Decap CMS
|
|
30
|
-
- Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far
|
|
30
|
+
- Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible (so far 70+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
|
|
31
31
|
- Implementing our own enhancement ideas
|
|
32
32
|
|
|
33
33
|
At this point, **we are aiming to ship version 1.0 in Q3 2024**. Check our [release notes](https://github.com/sveltia/sveltia-cms/releases) for updates.
|
|
34
34
|
|
|
35
35
|
## Features
|
|
36
36
|
|
|
37
|
-
We are working hard to create a **significantly better alternative to Netlify CMS
|
|
37
|
+
We are working hard to create a **significantly better alternative to Netlify CMS and Decap CMS** by improving everything. Here’s what makes Sveltia CMS different. Look how serious we are!
|
|
38
38
|
|
|
39
39
|
### Compatible with Netlify/Decap CMS
|
|
40
40
|
|
|
41
41
|
- Ready to replace Netlify/Decap CMS _in some casual use case scenarios_ by updating a single line of code.
|
|
42
42
|
- Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is.
|
|
43
|
-
- Various features are still missing though — look at the [compatibility
|
|
43
|
+
- Various features are still missing though — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
|
|
44
44
|
|
|
45
45
|
### Better UX
|
|
46
46
|
|
|
47
47
|
- Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design and marketing. You can expect constant UX improvements across the platform.
|
|
48
48
|
- Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
|
|
49
49
|
- Comes with touch device support. While the UI is not yet optimized for small screens, large tablets like iPad Pro or Pixel Tablet should work well. Mobile support is planned after the 1.0 release.
|
|
50
|
-
- Made with Svelte, not React, means we can spend more time on UX rather than tedious state management.
|
|
51
|
-
- The screenshots above are worth a thousand words
|
|
52
|
-
- Read on to learn about many other enhancements, including performance, productivity, accessibility, service integrations, and an all-new Asset Library.
|
|
50
|
+
- Made with Svelte, not React, means we can spend more time on UX rather than tedious state management. It also allows us to avoid fatal crashes in a React application[^100]. Best of all, Svelte offers great performance!
|
|
51
|
+
- The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
|
|
53
52
|
|
|
54
53
|
### Better performance
|
|
55
54
|
|
|
56
55
|
- 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 almost any framework.
|
|
57
|
-
- Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than bloated Netlify CMS (1.5 MB) and Decap CMS (1.8 MB)[^57]. Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
|
|
58
|
-
- 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]. It also avoids the slowness and potential API rate limit violations caused by hundreds of requests with Relation widgets[^14].
|
|
56
|
+
- Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than bloated Netlify CMS (1.5 MB) and Decap CMS (1.8 MB)[^57][^64]. Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
|
|
57
|
+
- 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].
|
|
59
58
|
- 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/).
|
|
60
59
|
- Using caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
|
|
61
60
|
- Thumbnails of assets, including PDF files, are generated and cached for faster rendering of the Asset Library and other parts of the CMS[^39].
|
|
62
|
-
- The upcoming [Svelte 5](https://svelte.dev/blog/
|
|
61
|
+
- The upcoming [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) upgrade is anticipated to deliver a further boost in performance, including accelerated speed and reduced code size.
|
|
63
62
|
|
|
64
63
|
### Better productivity
|
|
65
64
|
|
|
66
65
|
- You can [work with a local Git repository](#working-with-a-local-git-repository) without any configuration or proxy server[^26].
|
|
67
|
-
- In addition to a streamlined workflow, it offers great performance by loading files natively through the browser rather than using a slow, ad hoc API.
|
|
66
|
+
- In addition to a streamlined workflow, it offers great performance by loading files natively through the browser rather than using a slow, ad hoc REST API.
|
|
68
67
|
- It also allows you to bypass the 30 MB file size limit[^51].
|
|
69
68
|
- The `logo_url` defined in the configuration will be used[^49].
|
|
70
69
|
- Eliminates some workflow disruptions in the Content Editor:
|
|
@@ -78,11 +77,11 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
78
77
|
- Search for entries and assets: `Ctrl+F` (Windows/Linux) or `Command+F` (macOS)
|
|
79
78
|
- Create a new entry: `Ctrl+E` (Windows/Linux) or `Command+E` (macOS)
|
|
80
79
|
- Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
|
|
81
|
-
- Never miss out on the latest features and bug fixes by being notified when an update to the CMS is available[^31].
|
|
80
|
+
- Never miss out on the latest features and bug fixes by being notified when an update to the CMS is available[^31]. Then update to the latest version with a single click[^66].
|
|
82
81
|
|
|
83
82
|
### Better accessibility
|
|
84
83
|
|
|
85
|
-
- Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17].
|
|
84
|
+
- Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys[^17][^67].
|
|
86
85
|
- Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver.
|
|
87
86
|
- Ensures sufficient contrast between the foreground text and background colours.
|
|
88
87
|
- Honours your operating system’s [reduced motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) and [reduced transparency](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-transparency) settings.
|
|
@@ -101,6 +100,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
101
100
|
- The Git branch name is automatically set to the repository’s default branch (`main`, `master` or whatever) if not specified in the configuration file, preventing data loading errors due to a hardcoded fallback to `master`[^27].
|
|
102
101
|
- You 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].
|
|
103
102
|
- The GitLab backend support comes with background service status checking, just like GitHub.
|
|
103
|
+
- 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.
|
|
104
104
|
|
|
105
105
|
### Better i18n support
|
|
106
106
|
|
|
@@ -111,11 +111,12 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
111
111
|
- [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click.
|
|
112
112
|
- You can [disable non-default locale content](#disabling-non-default-locale-content)[^15].
|
|
113
113
|
- You can [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug), which is a good option for locales that write in non-Latin characters.
|
|
114
|
-
- Removes the [limitations in the List and Object widgets](https://decapcms.org/docs/i18n/#limitations) so that changes made with these widgets will be duplicated between locales as expected when using the `i18n: duplicate` field configuration[^7].
|
|
114
|
+
- Removes the [limitations in the List and Object widgets](https://decapcms.org/docs/i18n/#limitations) so that changes made with these widgets will be duplicated between locales as expected when using the `i18n: duplicate` field configuration[^7][^68].
|
|
115
115
|
- Raises a validation error instead of failing silently if the `single_file` structure is used and a required field is not filled in any of the locales[^55].
|
|
116
116
|
- [Entry-relative media folders](https://decapcms.org/docs/collection-folder/#media-and-public-folder) can be used in conjunction with the `multiple_folders` i18n structure[^21].
|
|
117
117
|
- Boolean fields are updated in real time between locales like other widgets to avoid confusion[^35].
|
|
118
118
|
- Solves problems with Chinese, Japanese and Korean (CJK) [IME](https://en.wikipedia.org/wiki/Input_method) text input in the rich text editor for the Markdown widget[^54].
|
|
119
|
+
- You can use the `{{locale}}` template tag in the [`preview_path`](https://decapcms.org/docs/configuration-options/#preview_path) collection option to provide site preview links for each language[^63].
|
|
119
120
|
|
|
120
121
|
### Better collections
|
|
121
122
|
|
|
@@ -125,6 +126,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
125
126
|
- Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
|
|
126
127
|
- You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
|
|
127
128
|
- Single quotes in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
|
|
129
|
+
- You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
|
|
128
130
|
|
|
129
131
|
### Better content editing
|
|
130
132
|
|
|
@@ -139,7 +141,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
139
141
|
|
|
140
142
|
- For data consistency, Boolean, List (see below) and other fields are always saved as a proper value, such as an empty string or an empty array, rather than nothing, even if it’s optional or empty.
|
|
141
143
|
- Leading and trailing spaces in text-type field values are automatically removed when you save an entry[^37].
|
|
142
|
-
- JSON/TOML/YAML data is saved with a new line at the end of the file to prevent unnecessary changes being made to the file[^11].
|
|
144
|
+
- JSON/TOML/YAML data is saved with a new line at the end of the file to prevent unnecessary changes being made to the file[^11][^69].
|
|
143
145
|
- String values in YAML files can be quoted with the new `yaml_quote: true` option for a collection, mainly for framework compatibility[^9].
|
|
144
146
|
|
|
145
147
|
### Better widgets
|
|
@@ -153,7 +155,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
153
155
|
- You can enter spaces in a simple text-based List field[^50].
|
|
154
156
|
- You can preview variable types without having to register a preview template[^42].
|
|
155
157
|
- Markdown
|
|
156
|
-
- The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves several problems found in Netlify/Decap CMS, including fatal application crashes[^53].
|
|
158
|
+
- The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves several problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73].
|
|
157
159
|
- You can set the default editor mode 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.
|
|
158
160
|
- Object
|
|
159
161
|
- Supports [variable types](https://decapcms.org/docs/variable-type-widgets/) just like the List widget. This allows you to have dependent fields in a collection[^30].
|
|
@@ -163,6 +165,8 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
163
165
|
- Select
|
|
164
166
|
- It’s possible to select an option with value `0`[^56].
|
|
165
167
|
- String
|
|
168
|
+
- When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane.
|
|
169
|
+
- Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
|
|
166
170
|
- Supports the `type` property that accepts `url` or `email` as a value, which will validate the value as a URL or email.
|
|
167
171
|
- Supports the `prefix` and `suffix` string properties, which automatically prepend and/or append the developer-defined value to the user-input value.
|
|
168
172
|
- Boolean, Number and String
|
|
@@ -177,6 +181,8 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
177
181
|
- The `summary` is displayed correctly when it refers to a Relation field[^36].
|
|
178
182
|
- Markdown, String and Text
|
|
179
183
|
- A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
|
|
184
|
+
- Relation and Select
|
|
185
|
+
- 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].
|
|
180
186
|
|
|
181
187
|
#### New widgets
|
|
182
188
|
|
|
@@ -213,7 +219,7 @@ We are trying to make Sveltia CMS as compatible as possible with Netlify/Decap C
|
|
|
213
219
|
|
|
214
220
|
### Current limitations
|
|
215
221
|
|
|
216
|
-
|
|
222
|
+
These limitations are expected to be resolved before GA:
|
|
217
223
|
|
|
218
224
|
| Feature | Status in Sveltia CMS |
|
|
219
225
|
| --- | --- |
|
|
@@ -234,14 +240,17 @@ The table below shows the current limitations of Sveltia CMS, that are expected
|
|
|
234
240
|
| Map | Not yet supported. |
|
|
235
241
|
| Markdown | Editor components are not yet supported. |
|
|
236
242
|
|
|
243
|
+
If we have missed any other features, let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues).
|
|
244
|
+
|
|
237
245
|
### Features not to be implemented
|
|
238
246
|
|
|
239
247
|
- 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.
|
|
240
248
|
- The Bitbucket, Gitea/Forgejo and Git Gateway backends will not be supported due to performance limitations. We may implement a performant Git Gateway alternative in the future.
|
|
241
|
-
- The Netlify Identity Widget will not be supported, as it’s not useful without Git Gateway.
|
|
249
|
+
- 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.
|
|
242
250
|
- The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
|
|
243
251
|
- Sveltia CMS has dropped the support for the deprecated Date widget following Decap CMS 3.0. Use the DateTime widget instead.
|
|
244
252
|
- Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
|
|
253
|
+
- Undocumented [methods available on the `window.CMS` object](https://github.com/sveltia/sveltia-cms/blob/b7f62741e02dc390c63c03291f95b2ca315d811b/src/main.js#L3-L33) will not be implemented. This includes custom backends, if any.
|
|
245
254
|
|
|
246
255
|
## Roadmap
|
|
247
256
|
|
|
@@ -249,7 +258,7 @@ The table below shows the current limitations of Sveltia CMS, that are expected
|
|
|
249
258
|
|
|
250
259
|
- Enhanced compatibility with Netlify/Decap CMS (see above for the status)
|
|
251
260
|
- Automation test coverage (Vitest + Playwright)
|
|
252
|
-
- [Svelte 5](https://svelte.dev/blog/
|
|
261
|
+
- [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) migration
|
|
253
262
|
- Localization
|
|
254
263
|
- Documentation
|
|
255
264
|
- Marketing site
|
|
@@ -281,7 +290,7 @@ Alternatively, you can probably use one of the [Netlify/Decap CMS templates](htt
|
|
|
281
290
|
|
|
282
291
|
### Migration
|
|
283
292
|
|
|
284
|
-
Have a look at the [compatibility
|
|
293
|
+
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.
|
|
285
294
|
|
|
286
295
|
From Netlify CMS:
|
|
287
296
|
|
|
@@ -307,7 +316,7 @@ For advanced users, we have also made the bundle available as an [npm package](h
|
|
|
307
316
|
|
|
308
317
|
Updating Sveltia CMS is transparent, unless you include a specific version in the `<script>` source URL or use the npm package. Whenever you (re)load the CMS, the latest version will be served via [UNPKG](https://unpkg.com/). The CMS also periodically checks for updates and notifies you when a new version is available. After the product reaches GA, you could use a semantic version range (`^1.0.0`) like Netlify/Decap CMS.
|
|
309
318
|
|
|
310
|
-
If you’ve chosen to install with npm, updating the package is your responsibility. We recommend using [`ncu`](https://www.npmjs.com/package/npm-check-updates) to keep dependencies up to date, otherwise you’ll miss important bug fixes and new features.
|
|
319
|
+
If you’ve chosen to install with npm, updating the package is your responsibility. We recommend using [`ncu`](https://www.npmjs.com/package/npm-check-updates) or a service like [Dependabot](https://github.blog/2020-06-01-keep-all-your-packages-up-to-date-with-dependabot/) to keep dependencies up to date, otherwise you’ll miss important bug fixes and new features.
|
|
311
320
|
|
|
312
321
|
## Tips & tricks
|
|
313
322
|
|
|
@@ -323,7 +332,7 @@ Alternatively, you can [manually initialize](https://decapcms.org/docs/manual-in
|
|
|
323
332
|
|
|
324
333
|
### Migrating from Git Gateway backend
|
|
325
334
|
|
|
326
|
-
Sveltia CMS does not support the Git Gateway backend
|
|
335
|
+
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.
|
|
327
336
|
|
|
328
337
|
### Moving your site from Netlify to another hosting service
|
|
329
338
|
|
|
@@ -331,7 +340,7 @@ You can host your Sveltia CMS-managed site anywhere, such as [Cloudflare Pages](
|
|
|
331
340
|
|
|
332
341
|
### Working around authentication error
|
|
333
342
|
|
|
334
|
-
If you get an “Authentication Aborted” error when trying to sign in to GitHub or GitLab using the authorization code flow, you may need to check your site’s [`Cross-Origin-Opener-Policy`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy). The COOP header is not widely used, but it
|
|
343
|
+
If you get an “Authentication Aborted” error when trying to sign in to GitHub or GitLab using the authorization code flow, you may need to check your site’s [`Cross-Origin-Opener-Policy`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cross-Origin-Opener-Policy). The COOP header is not widely used, but it’s known to break the OAuth flow with a popup window. If that’s your case, changing `same-origin` to `same-origin-allow-popups` solves the problem. ([Discussion](https://github.com/sveltia/sveltia-cms/issues/131))
|
|
335
344
|
|
|
336
345
|
### Working with a local Git repository
|
|
337
346
|
|
|
@@ -482,52 +491,81 @@ script-src 'self' https://unpkg.com;
|
|
|
482
491
|
connect-src 'self' blob: data: https://unpkg.com;
|
|
483
492
|
```
|
|
484
493
|
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
- GitHub: (If you’re running GitHub Enterprise Server, you’ll also need to add the origin to these directives.)
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
494
|
+
Then, add the following origins depending on your Git backend and enabled integrations.
|
|
495
|
+
|
|
496
|
+
- GitHub: (If you’re running a GitHub Enterprise Server, you’ll also need to add the origin to these directives.)
|
|
497
|
+
- `img-src`
|
|
498
|
+
```
|
|
499
|
+
https://*.githubusercontent.com
|
|
500
|
+
```
|
|
501
|
+
- `connect-src`
|
|
502
|
+
```
|
|
503
|
+
https://api.github.com https://www.githubstatus.com
|
|
504
|
+
```
|
|
492
505
|
- GitLab: (If you’re running a self-hosted instance, you’ll also need to add the origin to these directives.)
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
506
|
+
- `img-src`
|
|
507
|
+
```
|
|
508
|
+
https://gitlab.com https://secure.gravatar.com
|
|
509
|
+
```
|
|
510
|
+
- `connect-src`
|
|
511
|
+
```
|
|
512
|
+
https://gitlab.com https://status-api.hostedstatus.com
|
|
513
|
+
```
|
|
497
514
|
- Pexels:
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
515
|
+
- `img-src`
|
|
516
|
+
```
|
|
517
|
+
https://images.pexels.com
|
|
518
|
+
```
|
|
519
|
+
- `connect-src`
|
|
520
|
+
```
|
|
521
|
+
https://images.pexels.com https://api.pexels.com
|
|
522
|
+
```
|
|
502
523
|
- Pixabay:
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
524
|
+
- `img-src`
|
|
525
|
+
```
|
|
526
|
+
https://pixabay.com
|
|
527
|
+
```
|
|
528
|
+
- `connect-src`
|
|
529
|
+
```
|
|
530
|
+
https://pixabay.com
|
|
531
|
+
```
|
|
507
532
|
- Unsplash:
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
533
|
+
- `img-src`
|
|
534
|
+
```
|
|
535
|
+
https://images.unsplash.com
|
|
536
|
+
```
|
|
537
|
+
- `connect-src`
|
|
538
|
+
```
|
|
539
|
+
https://images.unsplash.com https://api.unsplash.com
|
|
540
|
+
```
|
|
512
541
|
- DeepL API Free:
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
542
|
+
- `connect-src`
|
|
543
|
+
```
|
|
544
|
+
https://api-free.deepl.com
|
|
545
|
+
```
|
|
516
546
|
- DeepL API Pro:
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
547
|
+
- `connect-src`
|
|
548
|
+
```
|
|
549
|
+
https://api.deepl.com
|
|
550
|
+
```
|
|
551
|
+
- YouTube:
|
|
552
|
+
- `frame-src`
|
|
553
|
+
```
|
|
554
|
+
https://www.youtube-nocookie.com
|
|
555
|
+
```
|
|
520
556
|
|
|
521
557
|
If you choose to [disable automatic deployments](#disabling-automatic-deployments) and have configured a webhook URL, you may need to add the origin to the `connect-src` directive. For example,
|
|
522
558
|
|
|
523
559
|
- Netlify:
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
560
|
+
- `connect-src`
|
|
561
|
+
```csp
|
|
562
|
+
https://api.netlify.com
|
|
563
|
+
```
|
|
527
564
|
- Cloudflare Pages
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
565
|
+
- `connect-src`
|
|
566
|
+
```csp
|
|
567
|
+
https://api.cloudflare.com
|
|
568
|
+
```
|
|
531
569
|
|
|
532
570
|
If you have image field(s) and expect that images will be inserted as URLs, you may want to allow any source using a wildcard instead of specifying individual origins:
|
|
533
571
|
|
|
@@ -547,6 +585,8 @@ Since Sveltia CMS is still in beta, we expect various problems. Please [report a
|
|
|
547
585
|
|
|
548
586
|
Tips are always welcome! The project hasn’t set up a sponsorship program, but maintainer [@kyoshino](https://github.com/kyoshino) has a [PayPal account](https://paypal.me/kohei).
|
|
549
587
|
|
|
588
|
+
Last but not least, don’t forget to star this project and spread the word so more users can benefit from the app!
|
|
589
|
+
|
|
550
590
|
## Related links
|
|
551
591
|
|
|
552
592
|
- Introducing Sveltia CMS: a short technical presentation by [@kyoshino](https://github.com/kyoshino) during the _This Week in Svelte_ online meetup on March 31, 2023 — [recording](https://youtu.be/-YjLubiieYs?t=1660) & [slides](https://docs.google.com/presentation/d/1Wi4ty-1AwOp2-zy7LctmzCV4rrdYPfke9NGhO0DdRdM)
|
|
@@ -566,17 +606,17 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
566
606
|
[^4]: Netlify/Decap CMS [#3671](https://github.com/decaporg/decap-cms/issues/3671)
|
|
567
607
|
[^5]: Netlify/Decap CMS [#1032](https://github.com/decaporg/decap-cms/issues/1032)
|
|
568
608
|
[^6]: Netlify/Decap CMS [#3240](https://github.com/decaporg/decap-cms/issues/3240)
|
|
569
|
-
[^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
|
|
609
|
+
[^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
|
|
570
610
|
[^8]: Netlify/Decap CMS [#2579](https://github.com/decaporg/decap-cms/issues/2579)
|
|
571
611
|
[^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505)
|
|
572
612
|
[^10]: Netlify/Decap CMS [#341](https://github.com/decaporg/decap-cms/issues/341), [#1167](https://github.com/decaporg/decap-cms/issues/1167)
|
|
573
|
-
[^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
|
|
613
|
+
[^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
|
|
574
614
|
[^12]: Netlify/Decap CMS [#1975](https://github.com/decaporg/decap-cms/issues/1975)
|
|
575
615
|
[^13]: Netlify/Decap CMS [#5112](https://github.com/decaporg/decap-cms/issues/5112), [#5653](https://github.com/decaporg/decap-cms/issues/5653)
|
|
576
|
-
[^14]: Netlify/Decap CMS [#4635](https://github.com/decaporg/decap-cms/issues/4635), [#
|
|
616
|
+
[^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)
|
|
577
617
|
[^15]: Netlify/Decap CMS [#6932](https://github.com/decaporg/decap-cms/issues/6932)
|
|
578
618
|
[^16]: Netlify/Decap CMS [#2103](https://github.com/decaporg/decap-cms/issues/2103)
|
|
579
|
-
[^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333)
|
|
619
|
+
[^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333)
|
|
580
620
|
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
|
|
581
621
|
[^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
|
|
582
622
|
[^20]: Netlify/Decap CMS [#4563](https://github.com/decaporg/decap-cms/issues/4563)
|
|
@@ -590,8 +630,8 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
590
630
|
[^28]: Netlify/Decap CMS [#6836](https://github.com/decaporg/decap-cms/pull/6836)
|
|
591
631
|
[^29]: Netlify/Decap CMS [#4783](https://github.com/decaporg/decap-cms/issues/4783)
|
|
592
632
|
[^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565)
|
|
593
|
-
[^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
|
|
594
|
-
[^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
|
|
633
|
+
[^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
|
|
634
|
+
[^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
|
|
595
635
|
[^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513)
|
|
596
636
|
[^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138)
|
|
597
637
|
[^35]: Netlify/Decap CMS [#7086](https://github.com/decaporg/decap-cms/issues/7086)
|
|
@@ -612,11 +652,25 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
612
652
|
[^50]: Netlify/Decap CMS [#4646](https://github.com/decaporg/decap-cms/issues/4646), [#7167](https://github.com/decaporg/decap-cms/issues/7167)
|
|
613
653
|
[^51]: Netlify/Decap CMS [#6731](https://github.com/decaporg/decap-cms/issues/6731)
|
|
614
654
|
[^52]: Netlify/Decap CMS [#7147](https://github.com/decaporg/decap-cms/issues/7147)
|
|
615
|
-
[^53]: Netlify/Decap CMS [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#
|
|
655
|
+
[^53]: Netlify/Decap CMS [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#6707](https://github.com/decaporg/decap-cms/issues/6707)
|
|
616
656
|
[^54]: Netlify/Decap CMS [#1347](https://github.com/decaporg/decap-cms/issues/1347), [#4629](https://github.com/decaporg/decap-cms/issues/4629), [#6287](https://github.com/decaporg/decap-cms/issues/6287) — Decap 3.0 updated the Slate editor in an attempt to fix the problems, but the IME issues remain unresolved when using a mobile/tablet browser.
|
|
617
657
|
[^55]: Netlify/Decap CMS [#4480](https://github.com/decaporg/decap-cms/issues/4480), [#6353](https://github.com/decaporg/decap-cms/issues/6353)
|
|
618
658
|
[^56]: Netlify/Decap CMS [#6515](https://github.com/decaporg/decap-cms/issues/6515)
|
|
619
|
-
[^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328)
|
|
659
|
+
[^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328)
|
|
620
660
|
[^58]: Netlify/Decap CMS [#5125](https://github.com/decaporg/decap-cms/issues/5125)
|
|
621
661
|
[^59]: Netlify/Decap CMS [#1654](https://github.com/decaporg/decap-cms/issues/1654)
|
|
622
662
|
[^60]: Netlify/Decap CMS [#386](https://github.com/decaporg/decap-cms/issues/386)
|
|
663
|
+
[^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489)
|
|
664
|
+
[^62]: Netlify/Decap CMS [#7192](https://github.com/decaporg/decap-cms/issues/7192)
|
|
665
|
+
[^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
|
|
666
|
+
[^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
|
|
667
|
+
[^65]: Netlify/Decap CMS [#6034](https://github.com/decaporg/decap-cms/issues/6034)
|
|
668
|
+
[^66]: Netlify/Decap CMS [#3353](https://github.com/decaporg/decap-cms/issues/3353)
|
|
669
|
+
[^67]: Netlify/Decap CMS [#7077](https://github.com/decaporg/decap-cms/issues/7077)
|
|
670
|
+
[^68]: Netlify/Decap CMS [#6978](https://github.com/decaporg/decap-cms/issues/6978)
|
|
671
|
+
[^69]: Netlify/Decap CMS [#6994](https://github.com/decaporg/decap-cms/issues/6994)
|
|
672
|
+
[^70]: Netlify/Decap CMS [#6482](https://github.com/decaporg/decap-cms/issues/6482)
|
|
673
|
+
[^71]: Netlify/Decap CMS [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7152](https://github.com/decaporg/decap-cms/issues/7152)
|
|
674
|
+
[^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
|
|
675
|
+
[^73]: Netlify/Decap CMS [#7123](https://github.com/decaporg/decap-cms/issues/7123)
|
|
676
|
+
[^100]: 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), [#6965](https://github.com/decaporg/decap-cms/issues/6965), [#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) — These `removeChild` crashes are common in React apps and seem to be caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|