Scribe

Changelog

Note di rilascio di scribe-cms — ogni versione è un documento di contenuto in questa pagina.

v0.0.23

Added

  • Create and edit entries from the studio: forms are generated from each content type's schema, with widgets for every field kind, inline validation errors, and slug auto-derivation. Every save is a plain file write, so a studio session reads like a hand edit in git
  • Image uploads in entry forms: files land exactly where the config says (templated {slug} destinations or the field's directory), with format and size limits enforced. Nothing is ever converted behind your back
  • Multiple asset fields: field.asset({ multiple: true }) attaches an ordered gallery of images to one entry, validated per element and covered by deletion planning and orphan detection
  • Field help text: Zod's .describe("...") on any field shows up as help text in the studio inspector and entry forms
  • Searchable relation pickers: long relation lists get a filter box with a live match count

Changed

  • The studio is now content-first: the home page shows your content types with entry counts, validation badges, and New buttons; translation dashboards live under a single Translations section, and per-entry translation status moved to a tab on the entry inspector. Old URLs redirect
  • New entries are always created as .mdx; existing .md files stay fully readable and editable

Fixed

  • .describe() on asset and relation fields no longer strips their field metadata
  • The studio's YAML editor uses js-yaml's safe schema, so YAML type tags cannot execute code

v0.0.22

Include le versioni dalla 0.0.19 alla 0.0.22.

Novità

  • Token in linea per il body: ora puoi inserire direttamente nel testo MDX link localizzati ad altri documenti, URL di asset, variabili del frontmatter e stringhe che non devono mai essere tradotte. Modificando un token, l'aggiornamento si riflette all'istante in tutte le lingue, senza bisogno di ritradurre nulla.
  • Campi asset basati su template con field.asset(): percorsi web vincolati, convalida dell'esistenza e risoluzione automatica in URL pubblici in fase di lettura.
  • Content type senza body: ora un tipo di contenuto può omettere del tutto il body MDX. La sua traducibilità verrà dedotta direttamente dallo schema.
  • scribe delete: elimina una voce insieme a tutti i suoi asset, alle traduzioni e agli snapshot. Include l'eliminazione a cascata dei riferimenti e i flag --dry-run e --yes.
  • Browser dei contenuti di Studio: elenchi di documenti divisi per tipologia, ricerca globale, tooltip di convalida in linea, un'anteprima del body con link di relazione cliccabili e asset renderizzati, oltre alla comoda navigazione con le frecce direzionali.

Modifiche

  • Breaking change: i token di relazione ora richiedono obbligatoriamente un suffisso di modalità esplicito, come :href o :slug.
  • Il prompt di traduzione integrato è stato completamente riscritto per puntare alla transcreazione: il modello ora scrive come un vero copywriter madrelingua, ricreando modi di dire e giochi di parole (anziché tradurli alla lettera) e rispettando le convenzioni tipografiche native.

Correzioni

  • scribe translate --dry-run ora mostra i token stimati reali e il costo effettivo, applicando lo sconto per i batch, invece di mostrare semplicemente $0.

v0.0.18

Include le release dalla 0.0.13 alla 0.0.18.

Aggiunte

  • Ora scribe translate utilizza l'API Gemini Batch per impostazione predefinita, riducendo i costi dei token del 50%. Le esecuzioni possono essere riprese: se interrompi il polling, ti basta lanciare di nuovo scribe translate per recuperare i lavori in sospeso. Usa --batch o --direct per scegliere la modalità in modo esplicito
  • Catene di fallback automatiche per le lingue: a una variante regionale priva di traduzione viene fornita la lingua di base prima dell'inglese (es. fr-CA ripiega su fr). L'opzione è attiva di default, ma può essere disabilitata con localeFallbacks: false
  • Le traduzioni fallite vengono ritentate automaticamente una volta alla fine del processo, inviando gli errori di validazione al modello affinché possa correggerli in autonomia
  • scribe translate --type accetta ID di tipi di contenuto separati da virgola

Modifiche

  • I prompt di traduzione condividono un prefisso inglese identico per tutte le lingue target, permettendo al caching del contesto di Gemini di scontare i token di input ripetuti. I token di ragionamento (thinking token) vengono ora inclusi nel calcolo totale dei costi

Correzioni

  • Gli errori temporanei di Gemini vengono ritentati automaticamente con una logica di backoff
  • I campi annidati generati per allucinazione dal modello vengono scartati automaticamente per non far fallire l'esecuzione
  • La lingua di destinazione viene sempre aggiunta in fondo ai prompt, anche quando si usa un translate.prompt personalizzato
  • scribe translate --force ora ritraduce anche i contenuti appena creati

v0.0.12

Risolto

  • La traduzione di contenuti che includono blocchi di codice Markdown non causa più errori di parsing JSON; il codice all'interno dei blocchi nei testi tradotti viene ora preservato correttamente.

Modificato

  • Ora scribe validate esegue la convalida MDX anche sui testi originali in inglese oltre che sulle traduzioni salvate, permettendo di intercettare eventuali errori MDX direttamente alla fonte.

v0.0.11

Copre le versioni dalla 0.0.8 alla 0.0.11.

Novità

  • I file _redirects.json per ogni tipo di contenuto sostituiscono i campi aliases e redirect_to del frontmatter: supportano reindirizzamenti verso lo stesso tipo, verso tipi diversi ed esterni, con espansione automatica degli slug tradotti.
  • Aggiunta la configurazione localeRouting e createUrlBuilder() per generare URL localizzati in base alla configurazione.
  • Aggiunti listRoutableTypes() e isRoutableType per individuare i tipi di contenuto dotati di percorsi pubblici.
  • Convalida MDX sia in fase di traduzione sia tramite scribe validate, in grado di intercettare i contenuti che causerebbero errori di prerendering.

Correzioni

  • I reindirizzamenti tra tipi diversi che utilizzano lo stesso slug inglese nei campi from e toSlug non vengono più bloccati come auto-reindirizzamenti.

Rimozioni

  • Rimossi i campi frontmatter aliases e redirect_to (sostituiti da _redirects.json) e slugPreserveTerms (usare translate.context o translate.rules).

v0.0.7

Correzioni

  • Gli slug localizzati che terminavano accidentalmente con un codice lingua (come -fr, -he, -ar) vengono ora ripuliti in automatico durante l'esecuzione di scribe translate, mantenendo gli URL puliti
  • scribe validate non fa più fallire la build se lo slug di una traduzione esistente termina con un codice lingua; ora segnala un avviso al posto di un errore

Miglioramenti

  • Gli slug localizzati vengono ora tradotti realmente nella lingua di destinazione anziché rimanere in inglese: il sistema indica al traduttore il nome della lingua e richiede di basare lo slug sul titolo tradotto, traslitterando i caratteri non latini in alfabeto latino

Novità

  • Il prompt di traduzione ora indica al modello di non aggiungere i codici lingua agli slug, poiché il routing locale è gestito dal prefisso dell'URL

v0.0.6

Modifiche

  • Sostituita la tabella revisions per le singole lingue con la tabella deduplicata en_snapshots, collegata tramite translations.snapshot_id
  • Gli snapshot memorizzano la sorgente EN al momento della traduzione; molteplici lingue condividono un singolo snapshot per ogni en_hash
  • scribe history e Studio ora mostrano i metadati degli snapshot EN invece della cronologia delle revisioni

Rimossi

  • Tabella revisions (eliminata automaticamente durante la migrazione allo schema v4)
Changelog · Scribe