@sveltia/cms 0.29.1 → 0.29.3

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
@@ -22,12 +22,13 @@ Our goal is to make it a viable successor to Netlify CMS, expand the Git-based h
22
22
 
23
23
  ## Development status
24
24
 
25
- **Sveltia CMS is still in beta**, so please be careful when trying it out.
25
+ Sveltia CMS is **still in beta**, so please be careful when trying it out.
26
26
 
27
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 90+ of them have been effectively solved in Sveltia CMS, with the goal of reaching 100 by GA)
30
+ - Tackling as many [issues reported to Netlify/Decap CMS](https://github.com/decaporg/decap-cms/issues) as possible
31
+ - So far 95+ of them have been effectively solved in Sveltia CMS, with the goal of solving 125 by GA
31
32
  - Responding to user feedback
32
33
  - Implementing our own enhancement ideas
33
34
 
@@ -39,7 +40,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
39
40
 
40
41
  ### Compatible with Netlify/Decap CMS
41
42
 
42
- - Ready to replace Netlify/Decap CMS _in some casual use case scenarios_ by updating a single line of code.
43
+ - 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.
43
44
  - Your existing [configuration file](https://decapcms.org/docs/configuration-options/) can be reused as is.
44
45
  - Various features are still missing though — look at the [compatibility info](#compatibility) below to see if you can migrate now or soon.
45
46
 
@@ -73,13 +74,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
73
74
  - The editor closes automatically when an entry is saved.
74
75
  - You can upload multiple assets at once[^5].
75
76
  - You can delete multiple entries and assets at once.
76
- - Some keyboard shortcuts are available for faster editing. More to come!
77
- - View the Content Library: `Alt+1`
78
- - View the Asset Library: `Alt+2`
79
- - Search for entries and assets: `Ctrl+F` (Windows/Linux) or `Command+F` (macOS)
80
- - Create a new entry: `Ctrl+E` (Windows/Linux) or `Command+E` (macOS)
81
- - Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
82
- - Cancel entry editing: `Escape`
77
+ - Some [keyboard shortcuts](#using-keyboard-shortcuts) are available for faster editing.
83
78
  - 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].
84
79
 
85
80
  ### Better accessibility
@@ -100,16 +95,18 @@ We are working hard to create a **significantly better alternative to Netlify CM
100
95
  ### Better backend support
101
96
 
102
97
  - Uses the GraphQL API where possible for better performance, as mentioned above. You don’t need to set the `use_graphql` option to enable it for GitHub and GitLab.
103
- - 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].
98
+ - 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`[^95][^27].
104
99
  - 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].
105
- - The GitLab backend support comes with background service status checking, just like GitHub.
100
+ - The GitLab backend support comes with background [service status](https://status.gitlab.com/) checking, just like GitHub. Checks are performed frequently and an incident notification is displayed prominently for both services.
106
101
  - 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.
107
102
 
108
103
  ### Better i18n support
109
104
 
110
105
  - Sveltia CMS has been built with a multilingual architecture from the very beginning. You can expect top-notch i18n support, as it’s required by clients of maintainer [@kyoshino](https://github.com/kyoshino), who himself was a long-time Japanese localizer for Mozilla and currently lives in a [city](https://en.wikipedia.org/wiki/Toronto) where 150+ languages are spoken.
106
+ - Supports multiple files/folders i18n structure for file collections[^87]. To enable it, simply use the `{{locale}}` template tag in the `file` path option, e.g. `content/pages/about.{{locale}}.json` or `content/pages/{{locale}}/about.json`. For backward compatibility, the global `structure` option only applies to folder collections as before.
107
+ - Eliminates UI confusion — the Preview pane can be displayed without toggling i18n in the Content Editor.
111
108
  - You can easily switch between locales while editing with just a click on a button instead of a dropdown list.
112
- - 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 or `NL` as Dutch.
109
+ - 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.)
113
110
  - Fields in non-default locales are validated as expected[^13].
114
111
  - Boolean, DateTime, List and Number fields in the entry preview are displayed in a localized format.
115
112
  - [Integrates DeepL](#using-deepl-to-translate-entry-fields) to allow translation of text fields from another locale with one click.
@@ -123,7 +120,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
123
120
  - 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].
124
121
  - 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].
125
122
  - You can [localize entry slugs](#localizing-entry-slugs) while linking the localized files[^80], thanks to the support for Hugo’s `translationKey`[^81].
126
- - Supports multiple files/folders i18n structure for file collections[^87]. To enable it, simply use the `{{locale}}` template tag in the `file` path option, e.g. `content/pages/about.{{locale}}.json` or `content/pages/{{locale}}/about.json`. The global `structure` option only applies to folder collections as before.
123
+ - 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].
127
124
 
128
125
  ### Better collections
129
126
 
@@ -137,7 +134,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
137
134
  - You can use nested fields (dot notation) in the `path` option for a folder collection, e.g. `{{fields.state.name}}/{{slug}}`[^62].
138
135
  - You can use Markdown in collection descriptions[^79]. Bold, italic, strikethrough, code and links are allowed.
139
136
  - 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].
140
- - The Delete Entry button won’t appear when a developer accidentally sets the `delete: true` option on a file collection because these preset files should not be deleted.
137
+ - 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.
141
138
  - A folder collection filter with a boolean value works as expected[^93].
142
139
 
143
140
  ### Better content editing
@@ -147,7 +144,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
147
144
  - You can hide the preview of a specific field with `preview: false`.
148
145
  - Fields with validation errors are automatically expanded if they are part of nested, collapsed objects[^40].
149
146
  - When you click on a field in the Preview pane, the corresponding field in the Editor pane is highlighted. It will be automatically expanded if collapsed[^41].
150
- - The Preview pane displays the titles of all fields, making it easier to see which fields are filled in.
147
+ - The Preview pane displays all fields, including each title, making it easier to see which fields are populated.
151
148
  - Provides better scroll synchronization between the panes when editing or previewing an entry[^92].
152
149
  - You can use a full regular expression, including flags, 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).
153
150
  - A long validation error message is displayed in full, without being hidden behind the field label[^59].
@@ -170,6 +167,8 @@ We are working hard to create a **significantly better alternative to Netlify CM
170
167
  - Hidden
171
168
  - The `default` value is saved when you create a file collection item, not just a folder collection item[^78].
172
169
  - List
170
+ - The Add Item button appears at the bottom of the list when the `add_to_top` option is not `true`, so you don’t have to scroll up each time to add new items.
171
+ - You can expand or collapse the entire list, while the Expand All and Collapse All buttons allow you to expand or collapse all items in the list at once.
173
172
  - A required List field with no subfield or value is marked as invalid[^43].
174
173
  - An optional List field with no subfield or value is saved as an empty array, rather than nothing[^44].
175
174
  - You can enter spaces in a simple text-based List field[^50].
@@ -185,13 +184,14 @@ We are working hard to create a **significantly better alternative to Netlify CM
185
184
  - Relation
186
185
  - Field options are displayed with no additional API requests[^14]. The confusing `options_length` option, which defaults to 20, is therefore ignored[^76].
187
186
  - `slug` can be used for `value_field` to show all available options instead of just one in some situations[^91].
188
- - `display_fields` is displayed in the Preview page instead of `value_field`.
187
+ - Template strings with a wildcard like `{{cities.*.name}}` can also be used for `value_field`[^94].
188
+ - `display_fields` is displayed in the Preview pane instead of `value_field`.
189
189
  - The redundant `search_fields` option is not required in Sveltia CMS, as it defaults to `display_fields` (and `value_field`).
190
190
  - Select
191
191
  - It’s possible to select an option with value `0`[^56].
192
- - `label` is displayed in the Preview page instead of `value`.
192
+ - `label` is displayed in the Preview pane instead of `value`.
193
193
  - String
194
- - When a YouTube video URL is entered in a String field, it appears as an embedded video in the preview pane.
194
+ - When a YouTube video URL is entered in a String field, it appears as an embedded video in the Preview pane.
195
195
  - Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
196
196
  - When a regular URL is entered in a String field, it appears as a link that can be opened in a new browser tab.
197
197
  - Supports the `type` option that accepts `url` or `email` as a value, which will validate the value as a URL or email.
@@ -227,7 +227,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
227
227
 
228
228
  ### Better asset management
229
229
 
230
- - 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.
230
+ - 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].
231
231
  - Navigate between the global media folder and per-collection media folders[^6].
232
232
  - Preview image, audio, video, text and PDF files.
233
233
  - Check your site’s [CSP](#setting-up-content-security-policy) if the preview doesn’t work.
@@ -245,6 +245,7 @@ We are working hard to create a **significantly better alternative to Netlify CM
245
245
  - 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].
246
246
  - Hidden files (dot files) don’t appear in the Asset Library[^47].
247
247
  - You can add assets using the Quick Add button in the upper right corner of the application.
248
+ - Files are uploaded with their original names, without converting uppercase letters and spaces to lowercase letters and hyphens[^97].
248
249
 
249
250
  ## Compatibility
250
251
 
@@ -367,7 +368,7 @@ Depending on your server or framework’s configuration, when you access the CMS
367
368
  - Rename `/admin/index.html` to `/admin/cms.html`, and access `/admin/cms`
368
369
  - [Specify the configuration file path](https://decapcms.org/docs/configuration-options/#configuration-file) with a `<link>` tag in `/admin/index.html`:
369
370
  ```html
370
- <link href="/admin/config.yml" type="text/yaml" rel="cms-config-url" />
371
+ <link href="/admin/config.yml" type="application/yaml" rel="cms-config-url" />
371
372
  ```
372
373
 
373
374
  ### Providing a JSON configuration file
@@ -407,7 +408,9 @@ You can use Sveltia CMS with a local Git repository like [Netlify/Decap CMS](htt
407
408
  1. Open the dev site at `http://localhost:[port]/` to check the rendered pages.
408
409
  1. Commit and push the changes if satisfied, or discard them if you’re just testing.
409
410
 
410
- Remember that the local repository support doesn’t do any Git operation. You have to fetch, pull, commit and push all changes manually with a Git client. Also, at this point, you have to reload the CMS to see the latest content after retrieving remote updates (this will be unnecessary once browsers support the proposed `FileSystemObserver` API).
411
+ Keep in mind that the local repository support doesn’t perform any Git operations. You’ll have to manually fetch, pull, commit and push all changes using a Git client. In the near future, we’ll figure out if there’s a way to do this in a browser (because `netlify-cms-proxy-server` actually has undocumented `git` mode that allows developers to create commits to a local repository).
412
+
413
+ Also, at this point, you have to reload the CMS to see the latest content after retrieving remote updates. This will be unnecessary once browsers support the proposed `FileSystemObserver` API.
411
414
 
412
415
  ### Using a custom icon for a collection
413
416
 
@@ -464,16 +467,32 @@ Rather, if you’d like to add all the media files for a collection in one singl
464
467
 
465
468
  In Sveltia CMS, those per-collection media folders are displayed prominently for easier asset management.
466
469
 
470
+ ### Using keyboard shortcuts
471
+
472
+ - View the Content Library: `Alt+1`
473
+ - View the Asset Library: `Alt+2`
474
+ - Search for entries and assets: `Ctrl+F` (Windows/Linux) or `Command+F` (macOS)
475
+ - Create a new entry: `Ctrl+E` (Windows/Linux) or `Command+E` (macOS)
476
+ - Save an entry: `Ctrl+S` (Windows/Linux) or `Command+S` (macOS)
477
+ - Cancel entry editing: `Escape`
478
+
467
479
  ### Using DeepL to translate entry fields
468
480
 
469
481
  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, quick translation feature:
470
482
 
471
483
  1. Update your configuration file to enable the [i18n support](https://decapcms.org/docs/i18n/) with multiple locales.
472
484
  1. Sign up for [DeepL API](https://www.deepl.com/pro-api/) and copy your Authentication Key from DeepL’s Account page.
473
- 1. Go back to Sveltia CMS, click on the Account button in the top right corner, then click Settings.
474
- 1. Paste your key to the DeepL API Authentication Key field, and close the Settings dialog.
475
- 1. Open any entry, and you can now translate all fields or individual fields by selecting Translate from the three-dot menu.
476
- 1. If you have upgraded to DeepL API Pro, provide your new Authentication Key in the same way.
485
+ 1. Open an entry in Sveltia CMS.
486
+ 1. Click on the Translation button on the header or each field, right next to the 3-dot menu.
487
+ 1. Paste your key when prompted.
488
+ 1. The field(s) will be automatically translated.
489
+
490
+ If you have upgraded to DeepL API Pro, provide your new Authentication Key:
491
+
492
+ 1. Click the Account button in the upper right corner, then click Settings.
493
+ 1. Select the Language tab.
494
+ 1. Paste your key to the DeepL API Authentication Key field.
495
+ 1. Close the Settings dialog.
477
496
 
478
497
  ### Localizing entry slugs
479
498
 
@@ -692,7 +711,7 @@ img-src 'self' blob: data: https://*;
692
711
 
693
712
  Visit the [Discussions](https://github.com/sveltia/sveltia-cms/discussions) page on this GitHub repository and start a new discussion. Tell us about your use cases!
694
713
 
695
- Want to build a website with Sveltia CMS? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your requirements.
714
+ Looking to build a website with Sveltia CMS? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your requirements. Feel free to reach out!
696
715
 
697
716
  ## Contributions
698
717
 
@@ -700,7 +719,7 @@ Since Sveltia CMS is still in beta, we expect various problems. Please [report a
700
719
 
701
720
  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).
702
721
 
703
- Last but not least, don’t forget to star this project and spread the word so more users can benefit from the app!
722
+ Last but not least, don’t forget to star this project and spread the word so more users can benefit from a better CMS experience!
704
723
 
705
724
  ## Related links
706
725
 
@@ -723,7 +742,7 @@ This software is provided “as is” without any express or implied warranty. W
723
742
  [^6]: Netlify/Decap CMS [#3240](https://github.com/decaporg/decap-cms/issues/3240)
724
743
  [^7]: Netlify/Decap CMS [#4386](https://github.com/decaporg/decap-cms/issues/4386)
725
744
  [^8]: Netlify/Decap CMS [#2579](https://github.com/decaporg/decap-cms/issues/2579)
726
- [^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505)
745
+ [^9]: Netlify/Decap CMS [#3505](https://github.com/decaporg/decap-cms/issues/3505), [#4211](https://github.com/decaporg/decap-cms/issues/4211)
727
746
  [^10]: Netlify/Decap CMS [#341](https://github.com/decaporg/decap-cms/issues/341), [#1167](https://github.com/decaporg/decap-cms/issues/1167)
728
747
  [^11]: Netlify/Decap CMS [#1382](https://github.com/decaporg/decap-cms/issues/1382)
729
748
  [^12]: Netlify/Decap CMS [#1975](https://github.com/decaporg/decap-cms/issues/1975), [#3712](https://github.com/decaporg/decap-cms/issues/3712)
@@ -742,7 +761,7 @@ This software is provided “as is” without any express or implied warranty. W
742
761
  [^25]: Netlify/Decap CMS [#526](https://github.com/decaporg/decap-cms/issues/526), [#6987](https://github.com/decaporg/decap-cms/issues/6987)
743
762
  [^26]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/3285)
744
763
  [^27]: Netlify/Decap CMS [#3285](https://github.com/decaporg/decap-cms/issues/5617)
745
- [^28]: Netlify/Decap CMS [#6836](https://github.com/decaporg/decap-cms/pull/6836)
764
+ [^28]: Netlify/Decap CMS [#2677](https://github.com/decaporg/decap-cms/pull/2677), [#6836](https://github.com/decaporg/decap-cms/pull/6836)
746
765
  [^29]: Netlify/Decap CMS [#4783](https://github.com/decaporg/decap-cms/issues/4783)
747
766
  [^30]: Netlify/Decap CMS [#565](https://github.com/decaporg/decap-cms/issues/565)
748
767
  [^31]: Netlify/Decap CMS [#1045](https://github.com/decaporg/decap-cms/issues/1045)
@@ -757,7 +776,7 @@ This software is provided “as is” without any express or implied warranty. W
757
776
  [^40]: Netlify/Decap CMS [#5630](https://github.com/decaporg/decap-cms/issues/5630)
758
777
  [^41]: Netlify/Decap CMS [#7011](https://github.com/decaporg/decap-cms/issues/7011)
759
778
  [^42]: Netlify/Decap CMS [#2307](https://github.com/decaporg/decap-cms/issues/2307)
760
- [^43]: Netlify/Decap CMS [#5381](https://github.com/decaporg/decap-cms/issues/5381)
779
+ [^43]: Netlify/Decap CMS [#4387](https://github.com/decaporg/decap-cms/issues/4387), [#5381](https://github.com/decaporg/decap-cms/issues/5381)
761
780
  [^44]: Netlify/Decap CMS [#2613](https://github.com/decaporg/decap-cms/issues/2613)
762
781
  [^45]: Netlify/Decap CMS [#1424](https://github.com/decaporg/decap-cms/issues/1424)
763
782
  [^46]: Netlify/Decap CMS [#4726](https://github.com/decaporg/decap-cms/issues/4726)
@@ -775,7 +794,7 @@ This software is provided “as is” without any express or implied warranty. W
775
794
  [^58]: Netlify/Decap CMS [#5125](https://github.com/decaporg/decap-cms/issues/5125)
776
795
  [^59]: Netlify/Decap CMS [#1654](https://github.com/decaporg/decap-cms/issues/1654)
777
796
  [^60]: Netlify/Decap CMS [#386](https://github.com/decaporg/decap-cms/issues/386)
778
- [^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489)
797
+ [^61]: Netlify/Decap CMS [#1489](https://github.com/decaporg/decap-cms/issues/1489), [#5838](https://github.com/decaporg/decap-cms/issues/5838)
779
798
  [^62]: Netlify/Decap CMS [#7192](https://github.com/decaporg/decap-cms/issues/7192)
780
799
  [^63]: Netlify/Decap CMS [#4877](https://github.com/decaporg/decap-cms/issues/4877)
781
800
  [^64]: Netlify/Decap CMS [#3853](https://github.com/decaporg/decap-cms/issues/3853)
@@ -791,7 +810,7 @@ This software is provided “as is” without any express or implied warranty. W
791
810
  [^74]: Netlify/Decap CMS [#4209](https://github.com/decaporg/decap-cms/issues/4209)
792
811
  [^75]: Netlify/Decap CMS [#5472](https://github.com/decaporg/decap-cms/issues/5472)
793
812
  [^76]: Netlify/Decap CMS [#4738](https://github.com/decaporg/decap-cms/issues/4738)
794
- [^77]: Netlify/Decap CMS [#6565](https://github.com/decaporg/decap-cms/issues/6565)
813
+ [^77]: Netlify/Decap CMS [#3415](https://github.com/decaporg/decap-cms/issues/3415), [#6565](https://github.com/decaporg/decap-cms/issues/6565)
795
814
  [^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)
796
815
  [^79]: Netlify/Decap CMS [#5726](https://github.com/decaporg/decap-cms/issues/5726)
797
816
  [^80]: Netlify/Decap CMS [#5493](https://github.com/decaporg/decap-cms/issues/5493), [#6600](https://github.com/decaporg/decap-cms/issues/6600)
@@ -808,4 +827,9 @@ This software is provided “as is” without any express or implied warranty. W
808
827
  [^91]: Netlify/Decap CMS [#4954](https://github.com/decaporg/decap-cms/issues/4954)
809
828
  [^92]: Netlify/Decap CMS [#1466](https://github.com/decaporg/decap-cms/issues/1466)
810
829
  [^93]: Netlify/Decap CMS [#1000](https://github.com/decaporg/decap-cms/issues/1000)
830
+ [^94]: Netlify/Decap CMS [#5487](https://github.com/decaporg/decap-cms/issues/5487)
831
+ [^95]: Netlify/Decap CMS [#4417](https://github.com/decaporg/decap-cms/issues/4417)
832
+ [^96]: Netlify/Decap CMS [#962](https://github.com/decaporg/decap-cms/issues/962)
833
+ [^97]: Netlify/Decap CMS [#4288](https://github.com/decaporg/decap-cms/issues/4288)
834
+ [^98]: Netlify/Decap CMS [#3856](https://github.com/decaporg/decap-cms/issues/3856)
811
835
  [^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).