@sveltia/cms 0.126.0 → 0.127.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 +32 -14
- package/dist/sveltia-cms.js +182 -182
- package/dist/sveltia-cms.js.map +1 -1
- package/dist/sveltia-cms.mjs +174 -174
- package/dist/sveltia-cms.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/sveltia-cms.json +1 -1
- package/types/public.d.ts +6 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Sveltia CMS: Netlify/Decap CMS successor
|
|
2
2
|
|
|
3
|
-
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, direct replacement for Netlify CMS (now Decap CMS). We have picked up where they left off and have already solved over
|
|
3
|
+
Sveltia CMS is a Git-based lightweight headless CMS under active development as a modern, powerful, direct replacement for Netlify CMS (now Decap CMS). We have picked up where they left off and have already solved over 280 issues reported in the predecessor’s repository, ranging from critical bugs to top feature requests.
|
|
4
4
|
|
|
5
5
|
Built from the ground up, Sveltia CMS offers excellent UX, DX, performance, security and internationalization (i18n) support. Although some features are still missing, our numerous enhancements across the board ensure smooth daily workflows for content editors and developers alike.
|
|
6
6
|
|
|
@@ -175,7 +175,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
175
175
|
- It works as a drop-in replacement for most use cases
|
|
176
176
|
- Some missing features will be implemented before or shortly after GA
|
|
177
177
|
- Tackling as many [Netlify/Decap CMS issues](https://github.com/decaporg/decap-cms/issues) as possible
|
|
178
|
-
- So far, **
|
|
178
|
+
- So far, **280+ issues, or 600+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
|
|
179
179
|
- Target:
|
|
180
180
|
- 300 issues, or 600 if including duplicates, by GA — Almost there! 🚀
|
|
181
181
|
- 450 issues, or 900 if including duplicates, in the future 💪
|
|
@@ -192,7 +192,7 @@ While we fix reported bugs as quickly as possible, usually within 24 hours, our
|
|
|
192
192
|
- Preparing top-notch [documentation](https://github.com/sveltia/sveltia-cms/issues/485)
|
|
193
193
|
- Implementing our own enhancement ideas for every part of the product
|
|
194
194
|
|
|
195
|
-
<br>
|
|
196
196
|
|
|
197
197
|
## Differentiators
|
|
198
198
|
|
|
@@ -422,6 +422,9 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
422
422
|
- Markdown is supported in the `description` collection option.[^79] Bold, italic, strikethrough, code and links are allowed.
|
|
423
423
|
- The collection `folder` can be an empty string (or `.` or `/`) if you want to store entries in the root folder. This supports a typical VitePress setup.
|
|
424
424
|
- Entry slugs
|
|
425
|
+
- The [global slug options](https://decapcms.org/docs/configuration-options/#slug-type) have the following new options:
|
|
426
|
+
- `trim`: Remove leading and trailing replacement characters, such as hyphens, from an entry slug. The default value is `true`. Set to `false` to keep them.
|
|
427
|
+
- `maxlength`: The maximum number of characters for an entry slug; avoid deployment errors with Netlify or other platforms.[^25] Default to `undefined`, meaning no limit.
|
|
425
428
|
- It’s possible to [use a random UUID for an entry slug](#using-a-random-id-for-an-entry-slug).
|
|
426
429
|
- Entry slugs are editable.[^184]
|
|
427
430
|
- To allow users to explicitly edit the entry slug in an initial entry draft, add `{{fields._slug}}` to the `slug` collection option. This will display a special slug editor UI that looks like a standard string field, but the value will be used as the entry slug.
|
|
@@ -432,8 +435,6 @@ Sveltia CMS has been built with a multilingual architecture from the very beginn
|
|
|
432
435
|
- If a collection only has the Markdown `body` field, an entry slug will be generated from a header in the `body`, if exists. This supports a typical VitePress setup.
|
|
433
436
|
- Entry slug template tags support [transformations](https://decapcms.org/docs/summary-strings/) just like summary string template tags.[^29] For example, you can use `{{fields.date | date('YYYY-MM-DD')}}` to generate a slug like `2025-01-23` from a DateTime field.
|
|
434
437
|
- Single quotes (apostrophes) in a slug will be replaced with `sanitize_replacement` (default: hyphen) rather than being removed.[^52]
|
|
435
|
-
- The [global `slug` option](https://decapcms.org/docs/configuration-options/#slug-type) accepts the `trim` option to remove leading and trailing replacement characters, such as hyphens, from an entry slug. The default value is `true`. Set to `false` to keep them.
|
|
436
|
-
- The maximum number of characters for an entry slug can be set with the new `slug_length` collection option to avoid deployment errors with Netlify or other platforms.[^25]
|
|
437
438
|
- Setting the collection `path` doesn’t affect the entry slugs stored with the Relation widget.[^137]
|
|
438
439
|
- Entry listing
|
|
439
440
|
- The [default sort field and direction](#specifying-default-entry-sort-field-and-direction) can be specified.[^172]
|
|
@@ -687,6 +688,7 @@ Sveltia CMS supports all the [built-in widgets](https://decapcms.org/docs/widget
|
|
|
687
688
|
- Inline components are supported.[^267]
|
|
688
689
|
- Field validation works as expected.[^279]
|
|
689
690
|
- No error is raised in the browser console saying `Sent invalid data to remark`[^280] or `onValidate is not a function`.[^281]
|
|
691
|
+
- A link with kramdown inline attributes (e.g. `{:.class}`) is parsed correctly.[^317]
|
|
690
692
|
- Enhancements to [event hooks](https://decapcms.org/docs/registering-events/):
|
|
691
693
|
- Missing `identifier_field` won’t cause an error when the `preSave` hook is triggered.[^306]
|
|
692
694
|
<!-- - Content can be modified in the `prePublish` hook (once we support editorial workflow).[^307] -->
|
|
@@ -806,6 +808,7 @@ These options were added to Sveltia CMS 0.x but are now deprecated and will be r
|
|
|
806
808
|
|
|
807
809
|
- The `automatic_deployments` backend option: Use the new [`skip_ci` option](#disabling-automatic-deployments) instead, which is more intuitive. `automatic_deployments: false` is equivalent to `skip_ci: true`, and `automatic_deployments: true` is equivalent to `skip_ci: false`.
|
|
808
810
|
- The `save_all_locales` i18n option: Use the [`initial_locales` option](#disabling-non-default-locale-content) instead, which provides more flexibility. `save_all_locales: false` is equivalent to `initial_locales: all`.
|
|
811
|
+
- The `slug_length` collection option: Use the `maxlength` option in the [global slug options](/en/docs/collections/entries#global-slug-options) instead.
|
|
809
812
|
- The `yaml_quote` collection option: `yaml_quote: true` is equivalent to `quote: double` in the [new YAML format options](#controlling-data-output).
|
|
810
813
|
- The `read_only` UUID widget option: Use the `readonly` common field option instead, which defaults to `true` for the UUID widget.
|
|
811
814
|
|
|
@@ -851,6 +854,8 @@ Or try one of the starter kits for popular frameworks created by community:
|
|
|
851
854
|
- Hugo
|
|
852
855
|
- [Hugo module](https://github.com/privatemaker/headless-cms) by [@privatemaker](https://github.com/privatemaker)
|
|
853
856
|
- [Hugolify](https://www.hugolify.io/) by [@sebousan](https://github.com/sebousan)
|
|
857
|
+
- Zola
|
|
858
|
+
- [Zola Sveltia Source](https://github.com/unicornfantasian/zola-sveltia-source) by [@husenunicorn](https://github.com/husenunicorn)
|
|
854
859
|
|
|
855
860
|
The Netlify/Decap CMS website has more [templates](https://decapcms.org/docs/start-with-a-template/) and [examples](https://decapcms.org/docs/examples/). You can probably use one of them and switch to Sveltia CMS. (Note: These third-party resources are not necessarily reviewed by the Sveltia CMS team.)
|
|
856
861
|
|
|
@@ -1280,20 +1285,31 @@ The configuration for a [file collection](https://decapcms.org/docs/collection-f
|
|
|
1280
1285
|
|
|
1281
1286
|
Sveltia CMS comes with a handy translation API integration so that you can translate any text field from another locale without leaving the Content Editor. Currently, the following services are supported:
|
|
1282
1287
|
|
|
1283
|
-
-
|
|
1284
|
-
-
|
|
1285
|
-
-
|
|
1288
|
+
- Neural Machine Translation (NMT)
|
|
1289
|
+
- Google: [Cloud Translation](https://cloud.google.com/translate)
|
|
1290
|
+
- Large Language Models (LLMs)
|
|
1291
|
+
- Anthropic: [Claude Haiku 4.5](https://www.anthropic.com/claude/haiku)
|
|
1292
|
+
- Google: [Gemini 2.5 Flash-Lite](https://deepmind.google/models/gemini/flash-lite/)
|
|
1293
|
+
- OpenAI: [GPT-4o mini](https://platform.openai.com/docs/models/gpt-4o-mini)
|
|
1286
1294
|
|
|
1287
|
-
|
|
1295
|
+
A few notes to help you choose a service:
|
|
1296
|
+
|
|
1297
|
+
- NMT is specialized for translations, while LLMs are more general-purpose.
|
|
1298
|
+
- NMT is fast, while LLMs may produce more natural, context-aware translations.
|
|
1299
|
+
- Google offers free tiers, while Anthropic and OpenAI require a paid plan.
|
|
1300
|
+
- With [Gemini’s free tier](https://ai.google.dev/gemini-api/docs/pricing), API input and output may be used to improve their products. As their terms state, do not send sensitive or confidential information while using the free tier. Consider using the paid plan or other services if this is a concern.
|
|
1288
1301
|
|
|
1289
1302
|
To enable the quick translation feature:
|
|
1290
1303
|
|
|
1291
1304
|
1. Update your configuration file to enable the [i18n support](https://decapcms.org/docs/i18n/) with multiple locales.
|
|
1292
1305
|
1. Create a new API key for the translation service of your choice:
|
|
1293
|
-
- Google
|
|
1306
|
+
- Google Cloud Translation
|
|
1294
1307
|
1. Sign in or sign up for [Google Cloud](https://cloud.google.com/) and create a new project.
|
|
1295
1308
|
1. Enable the [Cloud Translation API](https://console.cloud.google.com/apis/library/translate.googleapis.com). It’s free up to 500,000 characters per month.
|
|
1296
1309
|
1. Create a [new API key](https://console.cloud.google.com/apis/api/translate.googleapis.com/credentials) and copy it.
|
|
1310
|
+
- Google Gemini
|
|
1311
|
+
1. Sign in or sign up for [Google AI Studio](https://aistudio.google.com/).
|
|
1312
|
+
1. A new [API key](https://aistudio.google.com/api-keys) is created automatically for your account. Or create a new one if needed, and copy it.
|
|
1297
1313
|
- Anthropic
|
|
1298
1314
|
1. Sign in or sign up for [Claude Developer Platform](https://docs.claude.com/en/api/overview).
|
|
1299
1315
|
1. Add a credit balance (minimum $5) to your account.
|
|
@@ -1318,7 +1334,7 @@ If you don’t want some text to be translated, use the HTML [`translate`](https
|
|
|
1318
1334
|
<span class="notranslate">...</span>
|
|
1319
1335
|
```
|
|
1320
1336
|
|
|
1321
|
-
For
|
|
1337
|
+
For LLMs, you can also use the `notranslate` comment to exclude specific parts of Markdown content from translation:
|
|
1322
1338
|
|
|
1323
1339
|
```html
|
|
1324
1340
|
<!-- notranslate -->...<!-- /notranslate -->
|
|
@@ -2029,7 +2045,7 @@ Sveltia CMS powers hundreds of websites around the world. Here are some examples
|
|
|
2029
2045
|
|
|
2030
2046
|
<!-- cSpell:enable -->
|
|
2031
2047
|
|
|
2032
|
-
More projects, including small personal blogs and portfolios, can be found by [searching GitHub](https://github.com/search?q=sveltia
|
|
2048
|
+
More projects, including small personal blogs and portfolios, can be found by [searching GitHub](https://github.com/search?q=sveltia+cms&type=commits&s=committer-date&o=desc). Please note that the code search only returns 100 results, and private repositories are not included. We’ll continue to update this list as we discover more projects!
|
|
2033
2049
|
|
|
2034
2050
|
## Support & Feedback
|
|
2035
2051
|
|
|
@@ -2039,7 +2055,7 @@ Join us on [Discord](https://discord.gg/5hwCGqup5b) or ping us on [Bluesky](http
|
|
|
2039
2055
|
|
|
2040
2056
|
<!-- prettier-ignore-start -->
|
|
2041
2057
|
> [!IMPORTANT]
|
|
2042
|
-
>
|
|
2058
|
+
> Sveltia CMS is specifically designed as a replacement for Netlify/Decap CMS. We are happy to help you migrate from the legacy product, but **we cannot help you set up Sveltia CMS from scratch** through our free support channels. Questions about installation or initial configuration may go unanswered.
|
|
2043
2059
|
<!-- prettier-ignore-end -->
|
|
2044
2060
|
|
|
2045
2061
|
Planning to build a website with Sveltia CMS? Looking for professional support? Maintainer [@kyoshino](https://github.com/kyoshino) is available for hire depending on your needs. Feel free to reach out!
|
|
@@ -2411,7 +2427,7 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2411
2427
|
|
|
2412
2428
|
[^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), [#7450](https://github.com/decaporg/decap-cms/issues/7450), [#7453](https://github.com/decaporg/decap-cms/issues/7453), [#7572](https://github.com/decaporg/decap-cms/issues/7572), [#7602](https://github.com/decaporg/decap-cms/issues/7602), [#7655](https://github.com/decaporg/decap-cms/issues/7655)
|
|
2413
2429
|
|
|
2414
|
-
[^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), [#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), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571), [#7574](https://github.com/decaporg/decap-cms/issues/7574), [#7580](https://github.com/decaporg/decap-cms/issues/7580), [#7583](https://github.com/decaporg/decap-cms/issues/7583), [#7589](https://github.com/decaporg/decap-cms/issues/7589), [#7593](https://github.com/decaporg/decap-cms/issues/7593), [#7595](https://github.com/decaporg/decap-cms/issues/7595), [#7601](https://github.com/decaporg/decap-cms/issues/7601), [#7610](https://github.com/decaporg/decap-cms/issues/7610), [#7614](https://github.com/decaporg/decap-cms/issues/7614), [#7620](https://github.com/decaporg/decap-cms/issues/7620), [#7621](https://github.com/decaporg/decap-cms/issues/7621), [#7622](https://github.com/decaporg/decap-cms/issues/7622), [#7631](https://github.com/decaporg/decap-cms/issues/7631), [#7643](https://github.com/decaporg/decap-cms/issues/7643), [#7644](https://github.com/decaporg/decap-cms/issues/7644), [#7648](https://github.com/decaporg/decap-cms/issues/7648), [#7669](https://github.com/decaporg/decap-cms/issues/7669), [#7688](https://github.com/decaporg/decap-cms/issues/7688), [#7689](https://github.com/decaporg/decap-cms/issues/7689) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256)
|
|
2430
|
+
[^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), [#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), [#7244](https://github.com/decaporg/decap-cms/issues/7244), [#7278](https://github.com/decaporg/decap-cms/issues/7278), [#7301](https://github.com/decaporg/decap-cms/issues/7301), [#7342](https://github.com/decaporg/decap-cms/issues/7342), [#7348](https://github.com/decaporg/decap-cms/issues/7348), [#7354](https://github.com/decaporg/decap-cms/issues/7354), [#7376](https://github.com/decaporg/decap-cms/issues/7376), [#7408](https://github.com/decaporg/decap-cms/issues/7408), [#7412](https://github.com/decaporg/decap-cms/issues/7412), [#7413](https://github.com/decaporg/decap-cms/issues/7413), [#7422](https://github.com/decaporg/decap-cms/issues/7422), [#7427](https://github.com/decaporg/decap-cms/issues/7427), [#7434](https://github.com/decaporg/decap-cms/issues/7434), [#7438](https://github.com/decaporg/decap-cms/issues/7438), [#7454](https://github.com/decaporg/decap-cms/issues/7454), [#7464](https://github.com/decaporg/decap-cms/issues/7464), [#7471](https://github.com/decaporg/decap-cms/issues/7471), [#7485](https://github.com/decaporg/decap-cms/issues/7485), [#7499](https://github.com/decaporg/decap-cms/issues/7499), [#7515](https://github.com/decaporg/decap-cms/issues/7515), [#7564](https://github.com/decaporg/decap-cms/issues/7564), [#7571](https://github.com/decaporg/decap-cms/issues/7571), [#7574](https://github.com/decaporg/decap-cms/issues/7574), [#7580](https://github.com/decaporg/decap-cms/issues/7580), [#7583](https://github.com/decaporg/decap-cms/issues/7583), [#7589](https://github.com/decaporg/decap-cms/issues/7589), [#7593](https://github.com/decaporg/decap-cms/issues/7593), [#7595](https://github.com/decaporg/decap-cms/issues/7595), [#7601](https://github.com/decaporg/decap-cms/issues/7601), [#7610](https://github.com/decaporg/decap-cms/issues/7610), [#7614](https://github.com/decaporg/decap-cms/issues/7614), [#7620](https://github.com/decaporg/decap-cms/issues/7620), [#7621](https://github.com/decaporg/decap-cms/issues/7621), [#7622](https://github.com/decaporg/decap-cms/issues/7622), [#7631](https://github.com/decaporg/decap-cms/issues/7631), [#7643](https://github.com/decaporg/decap-cms/issues/7643), [#7644](https://github.com/decaporg/decap-cms/issues/7644), [#7648](https://github.com/decaporg/decap-cms/issues/7648), [#7669](https://github.com/decaporg/decap-cms/issues/7669), [#7688](https://github.com/decaporg/decap-cms/issues/7688), [#7689](https://github.com/decaporg/decap-cms/issues/7689), [#7690](https://github.com/decaporg/decap-cms/issues/7690) — These `removeChild` crashes are common in React apps, likely caused by a [browser extension](https://github.com/facebook/react/issues/17256) or [Google Translate](https://github.com/facebook/react/issues/11538).
|
|
2415
2431
|
|
|
2416
2432
|
[^114]: Netlify/Decap CMS [#5029](https://github.com/decaporg/decap-cms/issues/5029), [#5048](https://github.com/decaporg/decap-cms/issues/5048)
|
|
2417
2433
|
|
|
@@ -2810,3 +2826,5 @@ This project would not have been possible without the open source Netlify CMS pr
|
|
|
2810
2826
|
[^315]: Netlify/Decap CMS [#2035](https://github.com/decaporg/decap-cms/issues/2035), [#7362](https://github.com/decaporg/decap-cms/issues/7362), [#7543](https://github.com/decaporg/decap-cms/issues/7543)
|
|
2811
2827
|
|
|
2812
2828
|
[^316]: Netlify/Decap CMS [#1152](https://github.com/decaporg/decap-cms/issues/1152)
|
|
2829
|
+
|
|
2830
|
+
[^317]: Netlify/Decap CMS [#1464](https://github.com/decaporg/decap-cms/issues/1464)
|