@sveltia/cms 0.32.0 → 0.34.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 +171 -47
- package/dist/sveltia-cms.js +184 -184
- package/dist/sveltia-cms.mjs +188 -188
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -16,9 +16,15 @@ Sveltia CMS is a Git-based lightweight headless CMS under active development as
|
|
|
16
16
|
|
|
17
17
|
Sveltia CMS was born in November 2022, when the progress of Netlify CMS was stalled for more than six months. [@kyoshino](https://github.com/kyoshino)’s clients wanted to replace their Netlify CMS instances without much effort, mainly to get better internationalization (i18n) support.
|
|
18
18
|
|
|
19
|
-
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
|
|
19
|
+
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.
|
|
20
20
|
|
|
21
|
-
Our
|
|
21
|
+
### Our goals
|
|
22
|
+
|
|
23
|
+
- Making Sveltia CMS a viable, definitive successor to Netlify CMS
|
|
24
|
+
- Emerging as the leading open source offering in the Git-based CMS market
|
|
25
|
+
- Empowering small businesses and individuals who need a simple, free, yet powerful CMS solution
|
|
26
|
+
- Extending its capabilities as digital asset management (DAM) software
|
|
27
|
+
- Showcasing the vast potential of the Svelte framework
|
|
22
28
|
|
|
23
29
|
## Development status
|
|
24
30
|
|
|
@@ -28,7 +34,8 @@ While we are fixing reported bugs as fast as we can, usually within 24 hours, th
|
|
|
28
34
|
|
|
29
35
|
- Ensuring maximum [compatibility with existing versions of Netlify/Decap CMS](#compatibility)
|
|
30
36
|
- Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible
|
|
31
|
-
- So far, 100+ of them have been effectively solved in Sveltia CMS
|
|
37
|
+
- So far, 100+ of them (or 180+ including duplicates) have been effectively solved in Sveltia CMS
|
|
38
|
+
- Target: 150 issues by GA, 250 in a later release
|
|
32
39
|
- [Let us know](https://github.com/sveltia/sveltia-cms/issues/new) if you have any specific issues you’d like to see solved!
|
|
33
40
|
- Responding to user feedback
|
|
34
41
|
- Implementing our own UX enhancement ideas
|
|
@@ -45,34 +52,35 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
45
52
|
|
|
46
53
|
- Ready to be used as a drop-in replacement for Netlify/Decap CMS _in some casual use case scenarios_ with a single line of code update.
|
|
47
54
|
- Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is.
|
|
48
|
-
-
|
|
55
|
+
- However, some features are still missing or will not be added — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
|
|
49
56
|
|
|
50
57
|
### Better UX
|
|
51
58
|
|
|
52
59
|
- Created and maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design and marketing. You can expect constant improvements to the user experience (UX) and developer experience (DX) across the platform.
|
|
53
60
|
- Offers a modern, intuitive user interface, including an immersive dark mode[^2], inspired in part by the Netlify CMS v3 prototype[^1].
|
|
54
61
|
- 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.
|
|
55
|
-
- 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 React
|
|
62
|
+
- 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 React application crashes[^113]. Best of all, Svelte offers great performance!
|
|
56
63
|
- The screenshots above are worth a thousand words, but read on to learn about many other improvements in detail.
|
|
57
64
|
|
|
58
65
|
### Better performance
|
|
59
66
|
|
|
60
|
-
- 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
|
|
61
|
-
- Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than
|
|
62
|
-
-
|
|
67
|
+
- Built completely from scratch with Svelte instead of forking React-based Netlify/Decap CMS. The app starts fast and stays fast. The compiled code is vanilla JavaScript — you can use it with any framework that can load static data files while building your website or application.
|
|
68
|
+
- Small footprint: The bundle size is less than 500 KB when minified and gzipped, which is much lighter than Netlify CMS (1.5 MB), Decap CMS (1.8 MB) and Static CMS (a Netlify CMS fork, 2.6 MB), even though we haven’t implemented some features yet[^57][^64].
|
|
69
|
+
- The upcoming [Svelte 5](https://svelte.dev/blog/svelte-5-release-candidate) upgrade is anticipated to deliver further performance improvements, including accelerated speed and even smaller bundle size (an estimated 70 KB reduction).
|
|
70
|
+
- Sveltia CMS is free of technical debt and [virtual DOM overhead](https://svelte.dev/blog/virtual-dom-is-pure-overhead).
|
|
63
71
|
- 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].
|
|
64
72
|
- 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/).
|
|
65
73
|
- Using caching and lazy loading techniques. A list of repository files is stored locally for faster startup and bandwidth savings.
|
|
66
74
|
- Thumbnails of assets, including PDF files, are generated and cached for faster rendering of the Asset Library and other parts of the CMS[^39].
|
|
67
|
-
-
|
|
75
|
+
- No typing lag on input widgets, especially within nested lists and objects[^77].
|
|
68
76
|
|
|
69
77
|
### Better productivity
|
|
70
78
|
|
|
71
79
|
- You can [work with a local Git repository](#working-with-a-local-git-repository) without any extra configuration or proxy server[^26].
|
|
72
|
-
- Deleting an entry or asset file also deletes the empty enclosing folder, so you don’t have to delete it manually.
|
|
73
80
|
- 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.
|
|
74
81
|
- It also avoids a number of issues, including the 30 MB file size limit[^51], an unknown error with `publish_mode`[^75], and an unused `logo_url`[^49].
|
|
75
|
-
-
|
|
82
|
+
- When you delete an entry or an asset file, the empty folder that contains it is also deleted, so you don’t have to delete it manually.
|
|
83
|
+
- Provides a smoother user experience in the Content Editor:
|
|
76
84
|
- A local backup of an entry draft is automatically created without interruption by a confirmation dialog, which annoys users and can cause a page navigation problem if dismissed[^106]. The backup can then be reliably restored without unexpected overwriting[^85].
|
|
77
85
|
- Click once (the Save button) instead of twice (Publish > Publish now) to save an entry.
|
|
78
86
|
- The editor closes automatically when an entry is saved.
|
|
@@ -87,6 +95,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
87
95
|
- Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver.
|
|
88
96
|
- Ensures sufficient contrast between the foreground text and background colours.
|
|
89
97
|
- Enabled and disabled buttons can be clearly distinguished[^105].
|
|
98
|
+
- Links are underlined by default to make them easier to recognize. This behaviour can be changed in the Accessibility Settings if you prefer.
|
|
90
99
|
- 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.
|
|
91
100
|
- We’ll continue to test and improve the application to meet [WCAG 2.2](https://w3c.github.io/wcag/guidelines/22/).
|
|
92
101
|
|
|
@@ -101,7 +110,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
|
|
|
101
110
|
|
|
102
111
|
- Some servers and frameworks remove the trailing slash from the CMS URL (`/admin`) depending on the configuration. In such cases, the config file is loaded from a root-relative URL (`/admin/config.yml`) instead of a regular relative URL (`./config.yml` = `/config.yml`) that results in a 404 Not Found error[^107].
|
|
103
112
|
- Supports a [JSON configuration file](#providing-a-json-configuration-file) that can be generated for bulk or complex collections[^60].
|
|
104
|
-
- The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if
|
|
113
|
+
- The application renders within the dimensions of a [custom mount element](https://decapcms.org/docs/custom-mounting/), if exists[^109].
|
|
105
114
|
|
|
106
115
|
### Better backend support
|
|
107
116
|
|
|
@@ -131,7 +140,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
131
140
|
- Language labels appear in human-readable display names instead of ISO 639 language codes, which not everyone is familiar with. (For example, it might be difficult to recognize `DE` as German, `NL` as Dutch, or `ZH` as Chinese.)
|
|
132
141
|
- The List widget’s `label` and `label_singular` are not converted to lowercase, which is especially problematic in German, where all nouns are capitalized[^98].
|
|
133
142
|
- Content editing
|
|
134
|
-
- [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click.
|
|
143
|
+
- [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click. More translation services will be added in the future.
|
|
135
144
|
- You can [disable non-default locale content](#disabling-non-default-locale-content)[^15].
|
|
136
145
|
- Boolean, DateTime, List and Number fields in the entry preview are displayed in a localized format.
|
|
137
146
|
- Boolean fields are updated in real time between locales like other widgets to avoid confusion[^35].
|
|
@@ -142,21 +151,23 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
142
151
|
|
|
143
152
|
### Better collections
|
|
144
153
|
|
|
145
|
-
-
|
|
146
|
-
- You can [
|
|
147
|
-
-
|
|
148
|
-
- You can
|
|
149
|
-
- You can use
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
- A folder collection filter with a boolean value works as expected[^93].
|
|
153
|
-
- Sorting entries by a DateTime field works as expected[^110].
|
|
154
|
-
- You can use the `thumbnail` option for a collection to specify the field name for an entry thumbnail displayed on the entry list. A nested field can be specified using dot notation, e.g. `images.0.src`. If omitted, the `name` of the first image field is used.
|
|
155
|
-
- Improved entry slugs
|
|
154
|
+
- Configuration
|
|
155
|
+
- You can [choose a custom icon for each collection](#using-a-custom-icon-for-a-collection) with the new `icon` collection option[^3].
|
|
156
|
+
- You can [add dividers to the collection list](#adding-dividers-to-the-collection-list) with the new `divider` collection option.
|
|
157
|
+
- You can specify the field name for a thumbnail displayed on the entry list with the new `thumbnail` collection option. A nested field can be specified using dot notation, e.g. `images.0.src`. If undefined, the `name` of the first image field is used.
|
|
158
|
+
- You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
|
|
159
|
+
- You can use Markdown in the `description` collection option[^79]. Bold, italic, strikethrough, code and links are allowed.
|
|
160
|
+
- Entry slugs
|
|
156
161
|
- You can [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug).
|
|
157
162
|
- Entry slug template tags support [filter transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags[^29].
|
|
158
163
|
- Single quotes in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed[^52].
|
|
159
164
|
- You can set the maximum number of characters for an entry slug with the new `slug_length` collection option[^25].
|
|
165
|
+
- Entry listing
|
|
166
|
+
- A folder collection filter with a boolean value works as expected[^93].
|
|
167
|
+
- Sorting entries by a DateTime field works as expected[^110].
|
|
168
|
+
- Assets stored in a [per-collection media folder](#using-a-custom-media-folder-for-a-collection) can be displayed next to the entries.
|
|
169
|
+
- The New Entry button won’t appear when a developer accidentally sets the `create: true` option on a file collection because it’s useless[^89].
|
|
170
|
+
- The Delete Entry button won’t appear when a developer accidentally sets the `delete: true` option on a file collection because the preconfigured files should not be deleted.
|
|
160
171
|
|
|
161
172
|
### Better content editing
|
|
162
173
|
|
|
@@ -199,7 +210,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
199
210
|
- You can enter spaces in a simple text-based List field[^50].
|
|
200
211
|
- You can preview variable types without having to register a preview template[^42].
|
|
201
212
|
- Markdown
|
|
202
|
-
- The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves various problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73].
|
|
213
|
+
- The rich text editor is built with [Lexical](https://github.com/facebook/lexical) instead of [Slate](https://github.com/ianstormtaylor/slate), which solves various problems found in Netlify/Decap CMS, including fatal application crashes[^53][^70][^71][^72][^73][^111].
|
|
203
214
|
- 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.
|
|
204
215
|
- Line breaks are rendered as line breaks in the preview pane according to GitHub Flavored Markdown.
|
|
205
216
|
- Object
|
|
@@ -216,8 +227,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
216
227
|
- It’s possible to select an option with value `0`[^56].
|
|
217
228
|
- `label` is displayed in the preview pane instead of `value`.
|
|
218
229
|
- String
|
|
219
|
-
- When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane.
|
|
220
|
-
- Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
|
|
230
|
+
- 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.
|
|
221
231
|
- When a regular URL is entered in a String field, it appears as a link that can be opened in a new browser tab.
|
|
222
232
|
- Supports the `type` option that accepts `url` or `email` as a value, which will validate the value as a URL or email.
|
|
223
233
|
- Supports the `prefix` and `suffix` string options, which automatically prepend and/or append the developer-defined value to the user-input value.
|
|
@@ -228,7 +238,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
228
238
|
- [Collection-specific assets](#using-a-custom-media-folder-for-a-collection) are listed for easy selection, while all assets are displayed in a separate tab[^19].
|
|
229
239
|
- A new asset can be uploaded by dragging & dropping it into the dialog[^20].
|
|
230
240
|
- A URL can also be entered in the dialog.
|
|
231
|
-
- Integration with Pexels, Pixabay and Unsplash makes it easy to select and insert a free stock photo[^8]. More
|
|
241
|
+
- 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.
|
|
232
242
|
- 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.
|
|
233
243
|
- List and Object
|
|
234
244
|
- The `summary` is displayed correctly when it refers to a Relation field[^36].
|
|
@@ -236,8 +246,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
236
246
|
- A required field containing only spaces or line breaks will result in a validation error, as if no characters were entered.
|
|
237
247
|
- Relation and Select
|
|
238
248
|
- If a dropdown list has options with long wrapping labels, they won’t overlap with the next option[^83].
|
|
239
|
-
- 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].
|
|
240
|
-
- This number can be changed with the `dropdown_threshold` option for the `relation` and `select` widgets.
|
|
249
|
+
- 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.
|
|
241
250
|
- String and Text
|
|
242
251
|
- 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.
|
|
243
252
|
|
|
@@ -255,23 +264,22 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
255
264
|
|
|
256
265
|
- A completely new Asset Library, built separately from the image selection dialog, makes it easy to manage all of your files, including images, videos and documents[^96].
|
|
257
266
|
- Navigate between the global media folder and per-collection media folders[^6].
|
|
258
|
-
- Preview image, audio, video, text and PDF files.
|
|
259
|
-
|
|
260
|
-
-
|
|
261
|
-
|
|
262
|
-
-
|
|
263
|
-
- Replace existing assets.
|
|
267
|
+
- Preview image, audio, video, text and PDF files. Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
|
|
268
|
+
- Copy the public URL[^74], file path, text data or image data of a selected asset to clipboard. The file path starts with `/` as expected[^48].
|
|
269
|
+
- Edit a plain text asset, including SVG images.
|
|
270
|
+
- Rename an existing asset. If the asset is used in any entries, the File/Image fields will be automatically updated with a new file path.
|
|
271
|
+
- Replace an existing asset.
|
|
264
272
|
- Download one or more selected assets at once.
|
|
265
273
|
- Delete one or more selected assets at once.
|
|
266
274
|
- Upload multiple assets at once, including files in nested folders, by browsing or dragging and dropping them into the library[^5].
|
|
267
275
|
- Sort or filter assets by name or file type.
|
|
268
276
|
- View asset details, including size, dimensions, commit author/date and a list of entries that use the selected asset.
|
|
269
|
-
- More features are planned so that you’ll be able to utilize Sveltia CMS as digital asset management (DAM) software.
|
|
270
277
|
- 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].
|
|
271
278
|
- Assets stored in an entry-relative media folder are automatically deleted when the associated entry is deleted because these assets are not available for other entries[^22]. When you’re [working with a local repository](#working-with-a-local-git-repository), the empty enclosing folder is also deleted.
|
|
272
279
|
- Hidden files (dot files) don’t appear in the Asset Library[^47].
|
|
273
280
|
- You can add assets using the Quick Add button in the upper right corner of the application.
|
|
274
281
|
- Files are uploaded with their original names, without converting uppercase letters and spaces to lowercase letters and hyphens[^97].
|
|
282
|
+
- No fatal application crash when uploading assets[^112].
|
|
275
283
|
|
|
276
284
|
## Compatibility
|
|
277
285
|
|
|
@@ -299,7 +307,7 @@ These limitations are expected to be resolved before GA:
|
|
|
299
307
|
| Map | Not yet supported. |
|
|
300
308
|
| Markdown | Editor components, including built-in `image` and `code-block` as well as custom components, are not yet supported. |
|
|
301
309
|
|
|
302
|
-
Missing other features? Let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues/new).
|
|
310
|
+
Missing any other features? Let us know by [filing an issue](https://github.com/sveltia/sveltia-cms/issues/new).
|
|
303
311
|
|
|
304
312
|
### Features not to be implemented
|
|
305
313
|
|
|
@@ -309,7 +317,7 @@ Missing other features? Let us know by [filing an issue](https://github.com/svel
|
|
|
309
317
|
- The deprecated Netlify Large Media service will not be supported. Consider other storage providers.
|
|
310
318
|
- Sveltia CMS has dropped the support for the deprecated Date widget following Decap CMS 3.0. Use the DateTime widget instead.
|
|
311
319
|
- Remark plugins will not be supported, as they are not compatible with our Lexical-based rich text editor.
|
|
312
|
-
- 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.
|
|
320
|
+
- 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 and custom media libraries, if any.
|
|
313
321
|
|
|
314
322
|
## Roadmap
|
|
315
323
|
|
|
@@ -323,7 +331,7 @@ Missing other features? Let us know by [filing an issue](https://github.com/svel
|
|
|
323
331
|
- Documentation
|
|
324
332
|
- Marketing site
|
|
325
333
|
- Live demo site
|
|
326
|
-
-
|
|
334
|
+
- Official starter templates for the most popular frameworks, including SvelteKit and Next.js
|
|
327
335
|
|
|
328
336
|
### After the 1.0 release
|
|
329
337
|
|
|
@@ -331,6 +339,8 @@ Missing other features? Let us know by [filing an issue](https://github.com/svel
|
|
|
331
339
|
- Roles[^23]
|
|
332
340
|
- Config editor[^10]
|
|
333
341
|
- Mobile support[^18]
|
|
342
|
+
- AI integrations
|
|
343
|
+
- Advanced digital asset management (DAM) features, including image editing and tagging[^114]
|
|
334
344
|
- and more!
|
|
335
345
|
|
|
336
346
|
## Getting started
|
|
@@ -430,7 +440,7 @@ Also, at this point, you have to reload the CMS to see the latest content after
|
|
|
430
440
|
|
|
431
441
|
### Using a custom icon for a collection
|
|
432
442
|
|
|
433
|
-
You can
|
|
443
|
+
You can specify an icon for each collection for easy identification in the collection list. You don’t need to install a custom icon set because the Material Symbols font file is already loaded for the application UI. Just pick one of the 2,500+ icons:
|
|
434
444
|
|
|
435
445
|
1. Visit the [Material Symbols](https://fonts.google.com/icons?icon.set=Material+Symbols&icon.platform=android) page on Google Fonts.
|
|
436
446
|
1. Search and select an icon, and copy the icon name displayed on the right panel.
|
|
@@ -512,8 +522,6 @@ If you have upgraded to DeepL API Pro, provide your new Authentication Key:
|
|
|
512
522
|
1. Paste your key to the DeepL API Authentication Key field.
|
|
513
523
|
1. Close the Settings dialog.
|
|
514
524
|
|
|
515
|
-
More translation service providers will be added in the future.
|
|
516
|
-
|
|
517
525
|
### Localizing entry slugs
|
|
518
526
|
|
|
519
527
|
In Sveltia CMS, it’s possible to localize entry slugs (filenames) if the i18n structure is `multiple_files` or `multiple_folders`. All you need is the `localize` filter for `slug` template tags:
|
|
@@ -763,113 +771,229 @@ Last but not least, don’t forget to star this project and spread the word so m
|
|
|
763
771
|
This software is provided “as is” without any express or implied warranty. We are not obligated to provide any support for the application. This product is not affiliated with or endorsed by Netlify, Decap CMS or any other integrated services. All product names, logos, and brands are the property of their respective owners.
|
|
764
772
|
|
|
765
773
|
[^1]: Netlify/Decap CMS [#2557](https://github.com/decaporg/decap-cms/issues/2557)
|
|
774
|
+
|
|
766
775
|
[^2]: Netlify/Decap CMS [#3267](https://github.com/decaporg/decap-cms/issues/3267)
|
|
776
|
+
|
|
767
777
|
[^3]: Netlify/Decap CMS [#1040](https://github.com/decaporg/decap-cms/issues/1040)
|
|
778
|
+
|
|
768
779
|
[^4]: Netlify/Decap CMS [#3671](https://github.com/decaporg/decap-cms/issues/3671)
|
|
780
|
+
|
|
769
781
|
[^5]: Netlify/Decap CMS [#1032](https://github.com/decaporg/decap-cms/issues/1032)
|
|
782
|
+
|
|
770
783
|
[^6]: Netlify/Decap CMS [#3240](https://github.com/decaporg/decap-cms/issues/3240)
|
|
784
|
+
|
|
771
785
|
[^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
|
|
786
|
+
|
|
772
787
|
[^8]: Netlify/Decap CMS [#2579](https://github.com/decaporg/decap-cms/issues/2579)
|
|
788
|
+
|
|
773
789
|
[^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505), [#4211](https://github.com/decaporg/decap-cms/issues/4211), [#5439](https://github.com/decaporg/decap-cms/issues/5439)
|
|
790
|
+
|
|
774
791
|
[^10]: Netlify/Decap CMS [#341](https://github.com/decaporg/decap-cms/issues/341), [#1167](https://github.com/decaporg/decap-cms/issues/1167)
|
|
792
|
+
|
|
775
793
|
[^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
|
|
794
|
+
|
|
776
795
|
[^12]: Netlify/Decap CMS [#1975](https://github.com/decaporg/decap-cms/issues/1975), [#3712](https://github.com/decaporg/decap-cms/issues/3712)
|
|
796
|
+
|
|
777
797
|
[^13]: Netlify/Decap CMS [#5112](https://github.com/decaporg/decap-cms/issues/5112), [#5653](https://github.com/decaporg/decap-cms/issues/5653)
|
|
798
|
+
|
|
778
799
|
[^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)
|
|
800
|
+
|
|
779
801
|
[^15]: Netlify/Decap CMS [#6932](https://github.com/decaporg/decap-cms/issues/6932)
|
|
802
|
+
|
|
780
803
|
[^16]: Netlify/Decap CMS [#2103](https://github.com/decaporg/decap-cms/issues/2103)
|
|
804
|
+
|
|
781
805
|
[^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333)
|
|
806
|
+
|
|
782
807
|
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441)
|
|
808
|
+
|
|
783
809
|
[^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
|
|
810
|
+
|
|
784
811
|
[^20]: Netlify/Decap CMS [#4563](https://github.com/decaporg/decap-cms/issues/4563)
|
|
812
|
+
|
|
785
813
|
[^21]: Netlify/Decap CMS [#4781](https://github.com/decaporg/decap-cms/issues/4781)
|
|
814
|
+
|
|
786
815
|
[^22]: Netlify/Decap CMS [#3615](https://github.com/decaporg/decap-cms/issues/3615), [#4069](https://github.com/decaporg/decap-cms/issues/4069), [#5097](https://github.com/decaporg/decap-cms/issues/5097), [#6642](https://github.com/decaporg/decap-cms/issues/6642)
|
|
816
|
+
|
|
787
817
|
[^23]: Netlify/Decap CMS [#2](https://github.com/decaporg/decap-cms/issues/2)
|
|
818
|
+
|
|
788
819
|
[^24]: Netlify/Decap CMS [#6831](https://github.com/decaporg/decap-cms/issues/6831)
|
|
820
|
+
|
|
789
821
|
[^25]: Netlify/Decap CMS [#526](https://github.com/decaporg/decap-cms/issues/526), [#6987](https://github.com/decaporg/decap-cms/issues/6987)
|
|
790
|
-
|
|
822
|
+
|
|
823
|
+
[^26]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/3285), [#7030](https://github.com/decaporg/decap-cms/issues/7030), [#7067](https://github.com/decaporg/decap-cms/issues/7067), [#7217](https://github.com/decaporg/decap-cms/issues/7217)
|
|
824
|
+
|
|
791
825
|
[^27]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/5617)
|
|
826
|
+
|
|
792
827
|
[^28]: Netlify/Decap CMS [#2677](https://github.com/decaporg/decap-cms/pull/2677), [#6836](https://github.com/decaporg/decap-cms/pull/6836)
|
|
828
|
+
|
|
793
829
|
[^29]: Netlify/Decap CMS [#4783](https://github.com/decaporg/decap-cms/issues/4783)
|
|
830
|
+
|
|
794
831
|
[^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565)
|
|
832
|
+
|
|
795
833
|
[^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
|
|
834
|
+
|
|
796
835
|
[^32]: Netlify/Decap CMS [#302](https://github.com/decaporg/decap-cms/issues/302), [#5549](https://github.com/decaporg/decap-cms/issues/5549)
|
|
836
|
+
|
|
797
837
|
[^33]: Netlify/Decap CMS [#6513](https://github.com/decaporg/decap-cms/issues/6513)
|
|
838
|
+
|
|
798
839
|
[^34]: Netlify/Decap CMS [#2138](https://github.com/decaporg/decap-cms/issues/2138)
|
|
840
|
+
|
|
799
841
|
[^35]: Netlify/Decap CMS [#7086](https://github.com/decaporg/decap-cms/issues/7086)
|
|
842
|
+
|
|
800
843
|
[^36]: Netlify/Decap CMS [#6325](https://github.com/decaporg/decap-cms/issues/6325)
|
|
844
|
+
|
|
801
845
|
[^37]: Netlify/Decap CMS [#1481](https://github.com/decaporg/decap-cms/issues/1481)
|
|
846
|
+
|
|
802
847
|
[^38]: Netlify/Decap CMS [#1984](https://github.com/decaporg/decap-cms/issues/1984)
|
|
848
|
+
|
|
803
849
|
[^39]: Netlify/Decap CMS [#946](https://github.com/decaporg/decap-cms/issues/946)
|
|
850
|
+
|
|
804
851
|
[^40]: Netlify/Decap CMS [#5630](https://github.com/decaporg/decap-cms/issues/5630)
|
|
852
|
+
|
|
805
853
|
[^41]: Netlify/Decap CMS [#7011](https://github.com/decaporg/decap-cms/issues/7011)
|
|
854
|
+
|
|
806
855
|
[^42]: Netlify/Decap CMS [#2307](https://github.com/decaporg/decap-cms/issues/2307)
|
|
856
|
+
|
|
807
857
|
[^43]: Netlify/Decap CMS [#4387](https://github.com/decaporg/decap-cms/issues/4387), [#5381](https://github.com/decaporg/decap-cms/issues/5381)
|
|
858
|
+
|
|
808
859
|
[^44]: Netlify/Decap CMS [#2613](https://github.com/decaporg/decap-cms/issues/2613)
|
|
860
|
+
|
|
809
861
|
[^45]: Netlify/Decap CMS [#1424](https://github.com/decaporg/decap-cms/issues/1424)
|
|
862
|
+
|
|
810
863
|
[^46]: Netlify/Decap CMS [#4726](https://github.com/decaporg/decap-cms/issues/4726)
|
|
864
|
+
|
|
811
865
|
[^47]: Netlify/Decap CMS [#2370](https://github.com/decaporg/decap-cms/issues/2370), [#5596](https://github.com/decaporg/decap-cms/issues/5596)
|
|
866
|
+
|
|
812
867
|
[^48]: Netlify/Decap CMS [#5569](https://github.com/decaporg/decap-cms/issues/5569)
|
|
868
|
+
|
|
813
869
|
[^49]: Netlify/Decap CMS [#5752](https://github.com/decaporg/decap-cms/issues/5752)
|
|
870
|
+
|
|
814
871
|
[^50]: Netlify/Decap CMS [#4646](https://github.com/decaporg/decap-cms/issues/4646), [#7167](https://github.com/decaporg/decap-cms/issues/7167)
|
|
872
|
+
|
|
815
873
|
[^51]: Netlify/Decap CMS [#6731](https://github.com/decaporg/decap-cms/issues/6731)
|
|
874
|
+
|
|
816
875
|
[^52]: Netlify/Decap CMS [#7147](https://github.com/decaporg/decap-cms/issues/7147)
|
|
876
|
+
|
|
817
877
|
[^53]: Netlify/Decap CMS [#512](https://github.com/decaporg/decap-cms/issues/512), [#5673](https://github.com/decaporg/decap-cms/issues/5673), [#6707](https://github.com/decaporg/decap-cms/issues/6707)
|
|
878
|
+
|
|
818
879
|
[^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), [#6826](https://github.com/decaporg/decap-cms/issues/6826) — 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.
|
|
880
|
+
|
|
819
881
|
[^55]: Netlify/Decap CMS [#4480](https://github.com/decaporg/decap-cms/issues/4480), [#6353](https://github.com/decaporg/decap-cms/issues/6353)
|
|
882
|
+
|
|
820
883
|
[^56]: Netlify/Decap CMS [#6515](https://github.com/decaporg/decap-cms/issues/6515)
|
|
884
|
+
|
|
821
885
|
[^57]: Netlify/Decap CMS [#328](https://github.com/decaporg/decap-cms/issues/328)
|
|
886
|
+
|
|
822
887
|
[^58]: Netlify/Decap CMS [#5125](https://github.com/decaporg/decap-cms/issues/5125)
|
|
888
|
+
|
|
823
889
|
[^59]: Netlify/Decap CMS [#1654](https://github.com/decaporg/decap-cms/issues/1654)
|
|
890
|
+
|
|
824
891
|
[^60]: Netlify/Decap CMS [#386](https://github.com/decaporg/decap-cms/issues/386)
|
|
892
|
+
|
|
825
893
|
[^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489), [#5838](https://github.com/decaporg/decap-cms/issues/5838)
|
|
894
|
+
|
|
826
895
|
[^62]: Netlify/Decap CMS [#7192](https://github.com/decaporg/decap-cms/issues/7192)
|
|
896
|
+
|
|
827
897
|
[^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
|
|
898
|
+
|
|
828
899
|
[^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
|
|
900
|
+
|
|
829
901
|
[^65]: Netlify/Decap CMS [#6034](https://github.com/decaporg/decap-cms/issues/6034)
|
|
902
|
+
|
|
830
903
|
[^66]: Netlify/Decap CMS [#3353](https://github.com/decaporg/decap-cms/issues/3353)
|
|
904
|
+
|
|
831
905
|
[^67]: Netlify/Decap CMS [#7077](https://github.com/decaporg/decap-cms/issues/7077)
|
|
906
|
+
|
|
832
907
|
[^68]: Netlify/Decap CMS [#6978](https://github.com/decaporg/decap-cms/issues/6978)
|
|
908
|
+
|
|
833
909
|
[^69]: Netlify/Decap CMS [#6994](https://github.com/decaporg/decap-cms/issues/6994)
|
|
910
|
+
|
|
834
911
|
[^70]: Netlify/Decap CMS [#6482](https://github.com/decaporg/decap-cms/issues/6482)
|
|
835
|
-
|
|
912
|
+
|
|
913
|
+
[^71]: Netlify/Decap CMS [#6999](https://github.com/decaporg/decap-cms/issues/6999), [#7000](https://github.com/decaporg/decap-cms/issues/7000), [#7001](https://github.com/decaporg/decap-cms/issues/7001), [#7152](https://github.com/decaporg/decap-cms/issues/7152), [#7220](https://github.com/decaporg/decap-cms/issues/7220)
|
|
914
|
+
|
|
836
915
|
[^72]: Netlify/Decap CMS [#7047](https://github.com/decaporg/decap-cms/issues/7047)
|
|
837
|
-
|
|
916
|
+
|
|
917
|
+
[^73]: Netlify/Decap CMS [#6993](https://github.com/decaporg/decap-cms/issues/6993), [#7123](https://github.com/decaporg/decap-cms/issues/7123), [#7127](https://github.com/decaporg/decap-cms/issues/7127), [#7128](https://github.com/decaporg/decap-cms/issues/7128)
|
|
918
|
+
|
|
838
919
|
[^74]: Netlify/Decap CMS [#4209](https://github.com/decaporg/decap-cms/issues/4209)
|
|
920
|
+
|
|
839
921
|
[^75]: Netlify/Decap CMS [#5472](https://github.com/decaporg/decap-cms/issues/5472)
|
|
922
|
+
|
|
840
923
|
[^76]: Netlify/Decap CMS [#4738](https://github.com/decaporg/decap-cms/issues/4738)
|
|
924
|
+
|
|
841
925
|
[^77]: Netlify/Decap CMS [#3415](https://github.com/decaporg/decap-cms/issues/3415), [#6565](https://github.com/decaporg/decap-cms/issues/6565)
|
|
926
|
+
|
|
842
927
|
[^78]: Netlify/Decap CMS [#2294](https://github.com/decaporg/decap-cms/issues/2294), [#3046](https://github.com/decaporg/decap-cms/issues/3046), [#4363](https://github.com/decaporg/decap-cms/issues/4363)
|
|
928
|
+
|
|
843
929
|
[^79]: Netlify/Decap CMS [#5726](https://github.com/decaporg/decap-cms/issues/5726)
|
|
930
|
+
|
|
844
931
|
[^80]: Netlify/Decap CMS [#5493](https://github.com/decaporg/decap-cms/issues/5493), [#6600](https://github.com/decaporg/decap-cms/issues/6600)
|
|
932
|
+
|
|
845
933
|
[^81]: Netlify/Decap CMS [#4645](https://github.com/decaporg/decap-cms/issues/4645)
|
|
934
|
+
|
|
846
935
|
[^82]: Netlify/Decap CMS [#6500](https://github.com/decaporg/decap-cms/issues/6500)
|
|
936
|
+
|
|
847
937
|
[^83]: Netlify/Decap CMS [#6508](https://github.com/decaporg/decap-cms/issues/6508)
|
|
938
|
+
|
|
848
939
|
[^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142)
|
|
940
|
+
|
|
849
941
|
[^85]: Netlify/Decap CMS [#5055](https://github.com/decaporg/decap-cms/issues/5055), [#5470](https://github.com/decaporg/decap-cms/issues/5470), [#6989](https://github.com/decaporg/decap-cms/issues/6989)
|
|
942
|
+
|
|
850
943
|
[^86]: Netlify/Decap CMS [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
|
|
944
|
+
|
|
851
945
|
[^87]: Netlify/Decap CMS [#5280](https://github.com/decaporg/decap-cms/issues/5280)
|
|
946
|
+
|
|
852
947
|
[^88]: Netlify/Decap CMS [#1267](https://github.com/decaporg/decap-cms/issues/1267)
|
|
948
|
+
|
|
853
949
|
[^89]: Netlify/Decap CMS [#4255](https://github.com/decaporg/decap-cms/issues/4255)
|
|
950
|
+
|
|
854
951
|
[^90]: Netlify/Decap CMS [#725](https://github.com/decaporg/decap-cms/issues/725)
|
|
952
|
+
|
|
855
953
|
[^91]: Netlify/Decap CMS [#4954](https://github.com/decaporg/decap-cms/issues/4954)
|
|
954
|
+
|
|
856
955
|
[^92]: Netlify/Decap CMS [#1466](https://github.com/decaporg/decap-cms/issues/1466)
|
|
956
|
+
|
|
857
957
|
[^93]: Netlify/Decap CMS [#1000](https://github.com/decaporg/decap-cms/issues/1000)
|
|
958
|
+
|
|
858
959
|
[^94]: Netlify/Decap CMS [#5487](https://github.com/decaporg/decap-cms/issues/5487)
|
|
960
|
+
|
|
859
961
|
[^95]: Netlify/Decap CMS [#4417](https://github.com/decaporg/decap-cms/issues/4417)
|
|
962
|
+
|
|
860
963
|
[^96]: Netlify/Decap CMS [#962](https://github.com/decaporg/decap-cms/issues/962)
|
|
964
|
+
|
|
861
965
|
[^97]: Netlify/Decap CMS [#4288](https://github.com/decaporg/decap-cms/issues/4288)
|
|
966
|
+
|
|
862
967
|
[^98]: Netlify/Decap CMS [#3856](https://github.com/decaporg/decap-cms/issues/3856)
|
|
968
|
+
|
|
863
969
|
[^99]: Netlify/Decap CMS [#1685](https://github.com/decaporg/decap-cms/issues/1685)
|
|
970
|
+
|
|
864
971
|
[^100]: Netlify/Decap CMS [#4147](https://github.com/decaporg/decap-cms/issues/4147)
|
|
972
|
+
|
|
865
973
|
[^101]: Netlify/Decap CMS [#5969](https://github.com/decaporg/decap-cms/issues/5969)
|
|
974
|
+
|
|
866
975
|
[^102]: Netlify/Decap CMS [#1270](https://github.com/decaporg/decap-cms/issues/1270)
|
|
976
|
+
|
|
867
977
|
[^103]: Netlify/Decap CMS [#6307](https://github.com/decaporg/decap-cms/issues/6307)
|
|
978
|
+
|
|
868
979
|
[^104]: Netlify/Decap CMS [#6819](https://github.com/decaporg/decap-cms/issues/6819)
|
|
980
|
+
|
|
869
981
|
[^105]: Netlify/Decap CMS [#5701](https://github.com/decaporg/decap-cms/issues/5701)
|
|
982
|
+
|
|
870
983
|
[^106]: Netlify/Decap CMS [#2822](https://github.com/decaporg/decap-cms/issues/2822)
|
|
984
|
+
|
|
871
985
|
[^107]: Netlify/Decap CMS [#332](https://github.com/decaporg/decap-cms/issues/332), [#683](https://github.com/decaporg/decap-cms/issues/683), [#999](https://github.com/decaporg/decap-cms/issues/999), [#1456](https://github.com/decaporg/decap-cms/issues/1456), [#4175](https://github.com/decaporg/decap-cms/issues/4175), [#5688](https://github.com/decaporg/decap-cms/issues/5688), [#6828](https://github.com/decaporg/decap-cms/issues/6828), [#6862](https://github.com/decaporg/decap-cms/issues/6862), [#7023](https://github.com/decaporg/decap-cms/issues/7023)
|
|
986
|
+
|
|
872
987
|
[^108]: Netlify/Decap CMS [#6829](https://github.com/decaporg/decap-cms/issues/6829)
|
|
988
|
+
|
|
873
989
|
[^109]: Netlify/Decap CMS [#7197](https://github.com/decaporg/decap-cms/issues/7197)
|
|
990
|
+
|
|
874
991
|
[^110]: Netlify/Decap CMS [#4637](https://github.com/decaporg/decap-cms/issues/4637)
|
|
875
|
-
|
|
992
|
+
|
|
993
|
+
[^111]: Netlify/Decap CMS [#7190](https://github.com/decaporg/decap-cms/issues/7190), [#7218](https://github.com/decaporg/decap-cms/issues/7218)
|
|
994
|
+
|
|
995
|
+
[^112]: Netlify/Decap CMS [#5815](https://github.com/decaporg/decap-cms/issues/5815), [#6522](https://github.com/decaporg/decap-cms/issues/6522), [#6532](https://github.com/decaporg/decap-cms/issues/6532), [#6588](https://github.com/decaporg/decap-cms/issues/6588), [#6617](https://github.com/decaporg/decap-cms/issues/6617), [#6640](https://github.com/decaporg/decap-cms/issues/6640), [#6663](https://github.com/decaporg/decap-cms/issues/6663), [#6695](https://github.com/decaporg/decap-cms/issues/6695), [#6697](https://github.com/decaporg/decap-cms/issues/6697), [#6764](https://github.com/decaporg/decap-cms/issues/6764), [#6765](https://github.com/decaporg/decap-cms/issues/6765), [#6835](https://github.com/decaporg/decap-cms/issues/6835), [#6983](https://github.com/decaporg/decap-cms/issues/6983), [#7205](https://github.com/decaporg/decap-cms/issues/7205)
|
|
996
|
+
|
|
997
|
+
[^113]: 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).
|
|
998
|
+
|
|
999
|
+
[^114]: Netlify/Decap CMS [#5029](https://github.com/decaporg/decap-cms/issues/5029), [#5048](https://github.com/decaporg/decap-cms/issues/5048)
|