@sveltia/cms 0.79.3 → 0.80.1
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 +30 -18
- package/dist/sveltia-cms.js +187 -185
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +187 -185
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/types/public.d.ts +8 -0
package/README.md
CHANGED
|
@@ -130,10 +130,10 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
130
130
|
- Ensuring substantial [compatibility with Netlify/Decap CMS](#compatibility)
|
|
131
131
|
- Providing partial [compatibility with Static CMS](#compatibility-with-static-cms)
|
|
132
132
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
133
|
-
- So far,
|
|
133
|
+
- So far, 220+ issues, or 440+ if including duplicates, have been effectively solved in Sveltia CMS
|
|
134
134
|
- Target:
|
|
135
135
|
- 200 issues, or 400 if including duplicates, by GA — We did it! 🎉
|
|
136
|
-
-
|
|
136
|
+
- 400 issues, or 800 if including duplicates, in the future 💪
|
|
137
137
|
- or every single issue that’s relevant, fixable, and worth dealing with 🔥
|
|
138
138
|
- Issues include everything from feature requests to bug reports and [issues closed as stale](https://github.com/decaporg/decap-cms/issues?q=is%3Aissue+%22Closing+as+stale%22) or without an effective solution, as well as [discussions](https://github.com/decaporg/decap-cms/discussions) and stalled [pull requests](https://github.com/decaporg/decap-cms/pulls)
|
|
139
139
|
- Many of the bugs, including the annoying crashes, have already been solved
|
|
@@ -144,12 +144,14 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
144
144
|
- Responding to requests from the maintainer’s clients
|
|
145
145
|
- Making the code clean and maintainable
|
|
146
146
|
|
|
147
|
-
<br>
|
|
148
148
|
|
|
149
149
|
## Differentiators
|
|
150
150
|
|
|
151
151
|
Netlify/Decap CMS users will definitely be pleased and surprised by the numerous improvements we have made, from the small to the large. Here’s what makes Sveltia CMS different. Look how serious we are!
|
|
152
152
|
|
|
153
|
+
Note: This lengthy section compares Sveltia CMS with both Netlify CMS and Decap CMS. Some of the listed bugs may have been fixed in the current version of Decap CMS.
|
|
154
|
+
|
|
153
155
|
### Better UX
|
|
154
156
|
|
|
155
157
|
- Created and actively maintained by an [experienced UX engineer](https://github.com/kyoshino) who loves code, design, marketing and problem solving. You can expect constant improvements to the user experience (UX) and developer experience (DX) across the platform.
|
|
@@ -199,7 +201,7 @@ Netlify/Decap CMS users will definitely be pleased and surprised by the numerous
|
|
|
199
201
|
### Better accessibility
|
|
200
202
|
|
|
201
203
|
- Improved keyboard handling lets you efficiently navigate through UI elements using the Tab, Space, Enter and arrow keys.[^17][^67]
|
|
202
|
-
- Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver. An announcement is read out when you navigate to another page.
|
|
204
|
+
- Comprehensive [WAI-ARIA](https://w3c.github.io/aria/) support enables users who rely on screen readers such as NVDA and VoiceOver.[^228] An announcement is read out when you navigate to another page.
|
|
203
205
|
- The rich text editor is built with [Lexical](https://lexical.dev/), which is said to follow accessibility best practices. The [Dragon NaturallySpeaking support](https://lexical.dev/docs/packages/lexical-dragon) is enabled.
|
|
204
206
|
- Ensures sufficient contrast between the foreground text and background colours.
|
|
205
207
|
- Enabled and disabled buttons can be clearly distinguished.[^105]
|
|
@@ -241,8 +243,9 @@ Netlify/Decap CMS users will definitely be pleased and surprised by the numerous
|
|
|
241
243
|
- Service status checks are performed frequently and an incident notification is displayed prominently.
|
|
242
244
|
- Users can quickly open the source file of an entry or asset in your repository using View on GitHub (or GitLab or Gitea) under the 3-dot menu when Developer Mode is enabled.
|
|
243
245
|
- We provide [our own OAuth client](https://github.com/sveltia/sveltia-cms-auth) for GitHub and GitLab.
|
|
246
|
+
- The GitLab backend supports Git LFS ([documentation](https://docs.gitlab.com/topics/git/lfs/)).[^231]
|
|
244
247
|
- Users won’t get a 404 Not Found error when you sign in to the GitLab backend.[^115]
|
|
245
|
-
- Our Gitea backend is high-performing because it retrieves multiple entries at once.
|
|
248
|
+
- Our Gitea backend is high-performing because it retrieves multiple entries at once. It also supports Git LFS ([documentation](https://docs.gitea.com/administration/git-lfs-setup)). Additionally, the backend won’t cause 400 Bad Request errors due to the presence of `DRAFT_MEDIA_FILES` in file paths.[^222]
|
|
246
249
|
- The OAuth access token is automatically renewed when using the GitLab or Gitea backend with PKCE authorization.[^224] Token renewal for other backend configurations will be implemented later.
|
|
247
250
|
- Features the all-new [local repository workflow](#working-with-a-local-git-repository) that boosts DX. See the [productivity section](#better-productivity) above.
|
|
248
251
|
- Developers can select the local and remote backends while working on a local server.
|
|
@@ -256,7 +259,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
256
259
|
- The [i18n limitations](https://decapcms.org/docs/i18n/#limitations) in Netlify/Decap CMS do not apply to Sveltia CMS:
|
|
257
260
|
- File collections support multiple files/folders i18n structures.[^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, and the default i18n structure for file collections remains single file.
|
|
258
261
|
- The List and Object widgets support the `i18n: duplicate` field configuration so that changes made with these widgets are duplicated between locales.[^7][^68] The `i18n` configuration can normally be used for the subfields.
|
|
259
|
-
- The new `multiple_folders_i18n_root` i18n structure allows to have locale folders below the project root: `<locale>/<folder>/<slug>.<extension>`.
|
|
262
|
+
- The new `multiple_folders_i18n_root` i18n structure allows to have locale folders below the project root: `<locale>/<folder>/<slug>.<extension>`.[^182]
|
|
260
263
|
- The new `omit_default_locale_from_filename` i18n option allows to exclude the default locale from filenames. This option applies to entry collections with the `multiple_files` i18n structure enabled, as well as to file collection items with the `file` path ending with `.{{locale}}.<extension>`, aiming to support [Zola’s multilingual sites](https://www.getzola.org/documentation/content/multilingual/). ([Discussion](https://github.com/sveltia/sveltia-cms/discussions/394))
|
|
261
264
|
- The `required` field option accepts an array of locale codes in addition to a boolean, making the field required for a subset of locales when i18n support is enabled. For example, if only English is required, you could write `required: [en]`. An empty array is equivalent to `required: false`.
|
|
262
265
|
- [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]
|
|
@@ -329,7 +332,7 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
329
332
|
- Sorting entries by a DateTime field works as expected.[^110]
|
|
330
333
|
- Entry grouping and sorting can work together. For example, it’s possible to group by year and then sort by year if configured properly.
|
|
331
334
|
- [Index file inclusion](#including-hugos-special-index-file-in-a-folder-collection) allows users to edit Hugo’s special `_index.md` file, including localized ones like `_index.en.md`, within a folder collection.[^201] If the `index_file` option is not defined, these files will be hidden in a folder collection unless the `path` option is configured to end with `_index` and the `extension` is `md`.[^120]
|
|
332
|
-
- A console error won’t be thrown when a collection doesn’t have the `title` field.[^152] In that case, an entry summary will be generated from a header in the Markdown `body` field, if exists, or from the entry slug, so the summary will never be an empty.[^161] This supports a typical VitePress setup.
|
|
335
|
+
- A console error won’t be thrown when a collection doesn’t have the `title` field.[^152] In that case, an entry summary will be generated from a header in the Markdown `body` field, if exists, or from the entry slug, so the summary will never be an empty.[^161] This supports a typical VitePress and Docusaurus setup.[^230]
|
|
333
336
|
- If there was an error while parsing an entry file, such as duplicate front matter keys, it won’t show up as a blank entry, and a clear error message will be displayed in the browser console.[^121]
|
|
334
337
|
- A single file can be used for more than one item in a file collection.[^127]
|
|
335
338
|
- User interface
|
|
@@ -424,12 +427,12 @@ Note: The Date widget has been deprecated in Netlify CMS and removed from both D
|
|
|
424
427
|
- It’s possible to omit `fields` in a variable type object.[^163] In that case, only the `typeKey` (default: `type`) is saved in the output.
|
|
425
428
|
- A collapsed List field will not display a programmatic summary like `List [ Map { "key": "value" } ]` if the `summary` option is not set.[^183]
|
|
426
429
|
- Markdown
|
|
427
|
-
- The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes,[^71][^72][^73][^111] lost formatting when pasting,[^124] an extra line break when pasting,[^169] backslash injections,[^53] dropdown visibility,[^70] and text input difficulties with IME.[^54]
|
|
430
|
+
- The rich text editor is built with the well-maintained [Lexical](https://lexical.dev/) framework, which solves various issues with a [Slate](https://github.com/ianstormtaylor/slate)-based editor in Netlify/Decap CMS, including fatal application crashes,[^71][^72][^73][^111] lost formatting when pasting,[^124] an extra line break when pasting,[^169] extra HTML comments when pasting,[^229] backslash injections,[^53] dropdown visibility,[^70] and text input difficulties with IME.[^54]
|
|
428
431
|
- The default editor mode can be set by changing the order of the `modes` option.[^58] If you want to use the plain text editor by default, add `modes: [raw, rich_text]` to the field configuration.
|
|
429
432
|
- A Markdown field plays well with a variable type List field.[^202]
|
|
430
433
|
- A combination of bold and italic doesn’t create a confusing 3-asterisk markup.[^160] In our editor, bold is 2 asterisks and italic is an underscore.
|
|
431
434
|
- The built-in `image` component can be inserted with a single click.
|
|
432
|
-
- The built-in `image` component allows users to add, edit or remove a link on an image.[^171]
|
|
435
|
+
- The built-in `image` component allows users to add, edit or remove a link on an image.[^171] To disable this feature, add `linked_images: false` to the Markdown field options.
|
|
433
436
|
- It’s possible to paste/drop local/remote images into the rich text editor to insert them as expected. Note: Pasting multiple images is [not supported in Firefox](https://bugzilla.mozilla.org/show_bug.cgi?id=864052). In Netlify/Decap CMS, pasting an image may cause the application to crash.
|
|
434
437
|
- The built-in `code-block` component is implemented just like a blockquote. You can simply convert a normal paragraph into a code block instead of adding a component.
|
|
435
438
|
- Code in a code block in the editor can be copied as expected.[^165]
|
|
@@ -551,7 +554,7 @@ However, 100% feature parity is not planned, and some features are still missing
|
|
|
551
554
|
|
|
552
555
|
### Features not to be implemented
|
|
553
556
|
|
|
554
|
-
- **Azure
|
|
557
|
+
- **Azure and Bitbucket backends**: For performance reasons. We’ll support these platforms if their APIs improve to allow the CMS to fetch multiple entries at once.
|
|
555
558
|
- **Git Gateway backend**: Also for performance reasons. [Git Gateway](https://github.com/netlify/git-gateway) has not been actively maintained since Netlify CMS was abandoned, and it’s known to be slow and prone to rate limit violations. We plan to develop a GraphQL-based high-performance alternative in the future.
|
|
556
559
|
- **Netlify Identity Widget**: It’s not useful without Git Gateway, and the Netlify Identity service itself is now [deprecated](https://www.netlify.com/changelog/deprecation-netlify-identity/). We plan to develop an alternative solution with role support in the future, most likely using [Cloudflare Workers](https://workers.cloudflare.com/) and [Auth.js](https://authjs.dev/).
|
|
557
560
|
- The deprecated client-side implicit grant for the GitLab backend: It has already been [removed from GitLab 15.0](https://gitlab.com/gitlab-org/gitlab/-/issues/344609). Use the client-side PKCE authorization instead.
|
|
@@ -582,6 +585,7 @@ These Netlify/Decap CMS features are not yet implemented in Sveltia CMS. We are
|
|
|
582
585
|
|
|
583
586
|
- Comprehensive site config validation
|
|
584
587
|
- [Localization](https://github.com/sveltia/sveltia-cms/blob/main/src/lib/locales/README.md) other than English and Japanese
|
|
588
|
+
- [Forgejo backend](https://decapcms.org/docs/gitea-backend/) ([#381](https://github.com/sveltia/sveltia-cms/issues/381))
|
|
585
589
|
- [Cloudinary](https://decapcms.org/docs/cloudinary/) and [Uploadcare](https://decapcms.org/docs/uploadcare/) media libraries ([#4](https://github.com/sveltia/sveltia-cms/discussions/4))
|
|
586
590
|
- Field-specific media folders (beta) for the [File](https://decapcms.org/docs/widgets/#file) and [Image](https://decapcms.org/docs/widgets/#image) widgets
|
|
587
591
|
- [Map](https://decapcms.org/docs/widgets/#map) widget
|
|
@@ -630,7 +634,7 @@ We have added support for features and file structures used in certain framework
|
|
|
630
634
|
### Backend support
|
|
631
635
|
|
|
632
636
|
- The GitLab backend requires GitLab 16.3 or later.
|
|
633
|
-
- The Gitea backend requires Gitea 1.24 or later. It’s not compatible with Forgejo due to API differences. Support for Forgejo is tracked in [#381](https://github.com/sveltia/sveltia-cms/issues/381). The default origin of the `base_url` and `api_root` [backend options](https://decapcms.org/docs/backends-overview/#backend-configuration) is set to `https://gitea.com` (public free service) instead of `https://try.gitea.io` (test instance).
|
|
637
|
+
- The Gitea backend requires Gitea 1.24 or later. It’s not compatible with Forgejo at this time due to API differences. Support for Forgejo is tracked in [#381](https://github.com/sveltia/sveltia-cms/issues/381). The default origin of the `base_url` and `api_root` [backend options](https://decapcms.org/docs/backends-overview/#backend-configuration) is set to `https://gitea.com` (public free service) instead of `https://try.gitea.io` (test instance).
|
|
634
638
|
|
|
635
639
|
### Browser support
|
|
636
640
|
|
|
@@ -1395,7 +1399,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1395
1399
|
|
|
1396
1400
|
[^1]: Netlify/Decap CMS [#2557](https://github.com/decaporg/decap-cms/issues/2557)
|
|
1397
1401
|
|
|
1398
|
-
[^2]: Netlify/Decap CMS [#2039](https://github.com/decaporg/decap-cms/issues/2039), [#3267](https://github.com/decaporg/decap-cms/issues/3267)
|
|
1402
|
+
[^2]: Netlify/Decap CMS [#2039](https://github.com/decaporg/decap-cms/issues/2039), [#3267](https://github.com/decaporg/decap-cms/issues/3267), [#7084](https://github.com/decaporg/decap-cms/discussions/7084)
|
|
1399
1403
|
|
|
1400
1404
|
[^3]: Netlify/Decap CMS [#1040](https://github.com/decaporg/decap-cms/issues/1040)
|
|
1401
1405
|
|
|
@@ -1427,7 +1431,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1427
1431
|
|
|
1428
1432
|
[^17]: Netlify/Decap CMS [#1333](https://github.com/decaporg/decap-cms/issues/1333), [#4216](https://github.com/decaporg/decap-cms/issues/4216)
|
|
1429
1433
|
|
|
1430
|
-
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852)
|
|
1434
|
+
[^18]: Netlify/Decap CMS [#441](https://github.com/decaporg/decap-cms/issues/441), [#1277](https://github.com/decaporg/decap-cms/issues/1277), [#1339](https://github.com/decaporg/decap-cms/issues/1339), [#2500](https://github.com/decaporg/decap-cms/issues/2500), [#2833](https://github.com/decaporg/decap-cms/issues/2833), [#2984](https://github.com/decaporg/decap-cms/issues/2984), [#3852](https://github.com/decaporg/decap-cms/issues/3852), [#7083](https://github.com/decaporg/decap-cms/discussions/7083)
|
|
1431
1435
|
|
|
1432
1436
|
[^19]: Netlify/Decap CMS [#5910](https://github.com/decaporg/decap-cms/issues/5910)
|
|
1433
1437
|
|
|
@@ -1561,7 +1565,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1561
1565
|
|
|
1562
1566
|
[^84]: Netlify/Decap CMS [#7142](https://github.com/decaporg/decap-cms/issues/7142), [#7276](https://github.com/decaporg/decap-cms/issues/7276)
|
|
1563
1567
|
|
|
1564
|
-
[^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)
|
|
1568
|
+
[^85]: Netlify/Decap CMS [#5055](https://github.com/decaporg/decap-cms/issues/5055), [#5470](https://github.com/decaporg/decap-cms/issues/5470), [#6956](https://github.com/decaporg/decap-cms/discussions/6956), [#6989](https://github.com/decaporg/decap-cms/issues/6989)
|
|
1565
1569
|
|
|
1566
1570
|
[^86]: Netlify/Decap CMS [#1609](https://github.com/decaporg/decap-cms/issues/1609), [#3557](https://github.com/decaporg/decap-cms/issues/3557), [#5253](https://github.com/decaporg/decap-cms/issues/5253), [#6759](https://github.com/decaporg/decap-cms/issues/6759), [#6901](https://github.com/decaporg/decap-cms/issues/6901)
|
|
1567
1571
|
|
|
@@ -1631,7 +1635,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1631
1635
|
|
|
1632
1636
|
[^119]: Netlify/Decap CMS [#5640](https://github.com/decaporg/decap-cms/issues/5640), [#6444](https://github.com/decaporg/decap-cms/issues/6444)
|
|
1633
1637
|
|
|
1634
|
-
[^120]: Netlify/Decap CMS [#2727](https://github.com/decaporg/decap-cms/issues/2727), [#4884](https://github.com/decaporg/decap-cms/issues/4884)
|
|
1638
|
+
[^120]: Netlify/Decap CMS [#2727](https://github.com/decaporg/decap-cms/issues/2727), [#4884](https://github.com/decaporg/decap-cms/issues/4884), [#6908](https://github.com/decaporg/decap-cms/discussions/6908)
|
|
1635
1639
|
|
|
1636
1640
|
[^121]: Netlify/Decap CMS [#7262](https://github.com/decaporg/decap-cms/issues/7262)
|
|
1637
1641
|
|
|
@@ -1761,7 +1765,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1761
1765
|
|
|
1762
1766
|
[^184]: Netlify/Decap CMS [#377](https://github.com/decaporg/decap-cms/issues/377)
|
|
1763
1767
|
|
|
1764
|
-
[^185]: Netlify/Decap CMS [#6203](https://github.com/decaporg/decap-cms/issues/6203), [#7417](https://github.com/decaporg/decap-cms/issues/7417)
|
|
1768
|
+
[^185]: Netlify/Decap CMS [#6203](https://github.com/decaporg/decap-cms/issues/6203), [#7417](https://github.com/decaporg/decap-cms/issues/7417), [#7451](https://github.com/decaporg/decap-cms/pull/7451)
|
|
1765
1769
|
|
|
1766
1770
|
[^186]: Netlify/Decap CMS [#2368](https://github.com/decaporg/decap-cms/issues/2368), [#3454](https://github.com/decaporg/decap-cms/issues/3454), [#3585](https://github.com/decaporg/decap-cms/issues/3585), [#3651](https://github.com/decaporg/decap-cms/issues/3651), [#3885](https://github.com/decaporg/decap-cms/issues/3885), [#3962](https://github.com/decaporg/decap-cms/issues/3962), [#4037](https://github.com/decaporg/decap-cms/issues/4037), [#4143](https://github.com/decaporg/decap-cms/issues/4143), [#6585](https://github.com/decaporg/decap-cms/issues/6585), [#6664](https://github.com/decaporg/decap-cms/issues/6664), [#6665](https://github.com/decaporg/decap-cms/issues/6665), [#6739](https://github.com/decaporg/decap-cms/issues/6739), [#7243](https://github.com/decaporg/decap-cms/issues/7243), [#7379](https://github.com/decaporg/decap-cms/issues/7379), [#7469](https://github.com/decaporg/decap-cms/issues/7469)
|
|
1767
1771
|
|
|
@@ -1785,7 +1789,7 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1785
1789
|
|
|
1786
1790
|
[^196]: Netlify/Decap CMS [#3057](https://github.com/decaporg/decap-cms/issues/3057), [#3260](https://github.com/decaporg/decap-cms/issues/3260) — We use Svelte though.
|
|
1787
1791
|
|
|
1788
|
-
[^197]: Netlify/Decap CMS [#3457](https://github.com/decaporg/decap-cms/issues/3457), [#3624](https://github.com/decaporg/decap-cms/issues/3624)
|
|
1792
|
+
[^197]: Netlify/Decap CMS [#3457](https://github.com/decaporg/decap-cms/issues/3457), [#3624](https://github.com/decaporg/decap-cms/issues/3624), [#6713](https://github.com/decaporg/decap-cms/discussions/6713)
|
|
1789
1793
|
|
|
1790
1794
|
[^198]: Netlify/Decap CMS [#7442](https://github.com/decaporg/decap-cms/issues/7442)
|
|
1791
1795
|
|
|
@@ -1845,4 +1849,12 @@ This software is provided “as is” without any express or implied warranty. W
|
|
|
1845
1849
|
|
|
1846
1850
|
[^226]: Netlify/Decap CMS [#7031](https://github.com/decaporg/decap-cms/pull/7031)
|
|
1847
1851
|
|
|
1848
|
-
[^227]: Netlify/Decap CMS [#
|
|
1852
|
+
[^227]: Netlify/Decap CMS [#6794](https://github.com/decaporg/decap-cms/pull/6794)
|
|
1853
|
+
|
|
1854
|
+
[^228]: Netlify/Decap CMS [#6762](https://github.com/decaporg/decap-cms/pull/6762)
|
|
1855
|
+
|
|
1856
|
+
[^229]: Netlify/Decap CMS [#6180](https://github.com/decaporg/decap-cms/issues/6180)
|
|
1857
|
+
|
|
1858
|
+
[^230]: Netlify/Decap CMS [#7486](https://github.com/decaporg/decap-cms/discussions/7486)
|
|
1859
|
+
|
|
1860
|
+
[^231]: Netlify/Decap CMS [#3704](https://github.com/decaporg/decap-cms/issues/3704)
|