@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 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 275 issues reported in the predecessor’s repository, ranging from critical bugs to top feature requests.
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, **275+ issues, or 600+ if including duplicates, have been effectively solved** in Sveltia CMS (Yes, you read it right)
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
- ![275 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20251204)<br>
195
+ ![280 Netlify/Decap CMS issues solved in Sveltia CMS](https://raw.githubusercontent.com/sveltia/sveltia-cms/main/docs/headline-1.webp?20251228)<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
- - Google’s [Cloud Translation](https://cloud.google.com/translate)
1284
- - Anthropic’s [Claude Haiku 4.5](https://www.anthropic.com/claude/haiku)
1285
- - OpenAI’s [GPT-4o mini](https://platform.openai.com/docs/models/gpt-4o-mini)
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
- Google’s API is very fast and offers a free tier. Other LLMs may produce more natural translations, but they are slower and require a paid plan. Choose the one that best fits your needs.
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 Anthropic and OpenAI, you can also use the `notranslate` comment to exclude specific parts of Markdown content from translation:
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/cms&type=pullrequests). 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!
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
- > As described throughout this README, Sveltia CMS is specifically designed as a replacement for Netlify/Decap CMS. At this point, we assume that most developers and users are moving from the other product. We are happy to help you migrate, but **we cannot help you set up Sveltia CMS from scratch** through our free support channels.
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), [#7690](https://github.com/decaporg/decap-cms/issues/7690) or [Google Translate](https://github.com/facebook/react/issues/11538).
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)