Referència de blocs
Els blocs són unitats tipades de contingut: { id, type, order, data }. La forma de data es descriu mitjançant un JSON Schema i es valida en desar mitjançant un hook validate del costat del servidor: un tipus desconegut o una càrrega no vàlida es rebutja, de manera que un node mai no pot referenciar quelcom que el renderitzador no sap gestionar. Tot seguit tens tots els blocs integrats i els seus camps.
Estructura i contingut
hero
Un titular, un subtítol i una crida a l'acció principal.
title— cadena, obligatori.subtitle— cadena.cta_text— cadena.cta_url— cadena.
rich_text
Prosa de format llarg com a document ProseMirror.
doc— objecte, obligatori. Ha de ser un document ProseMirror:doc.type == "doc"amb un arraycontent.
cta
Un avís enfocat amb un botó.
title— cadena, obligatori.cta_text— cadena, obligatori.cta_url— cadena, obligatori.subtitle— cadena.
columns
Una fila multicolumna de columnes de text pla (com a mínim dues).
columns— array, obligatori (≥2).columns[].body— cadena, obligatori.
code
Un fragment amb ressaltat de sintaxi.
code— cadena, obligatori.language— cadena.filename— cadena.
Mitjans
image
src— cadena, obligatori.alt— cadena.caption— cadena.
gallery
Una graella d'imatges (com a mínim una).
images— array, obligatori.images[].src— cadena, obligatori.images[].alt,images[].caption— cadena.
embed
url— cadena, obligatori.provider,title— cadena.
divider
style— enumsolid | dashed | dotted. Sense camps obligatoris.
Màrqueting
Aquests impulsen pàgines de màrqueting a mida des del CMS. Eviten deliberadament els objectes imbricats i els arrays de cadenes perquè l'editor genèric basat en esquemes de l'admin els pugui renderitzar, i per això mkt_pricing.features és una cadena delimitada per salts de línia, no un array. Cadascun (excepte mkt_ui) requereix un key no buit pel qual el renderitzador el situa.
mkt_section
key— cadena, obligatori.eyebrow,title,body— cadena.
mkt_items
key— cadena, obligatori.kind— cadena (pista de disposició).items[]— objectes amblabel,title,body,meta(totes cadenes).
mkt_pricing
key— cadena, obligatori.note— cadena.tiers[]— objectes:name,sub,price_m,price_a(els preus són cadenes),per,access,cta,tag,features(una línia per característica).
mkt_ui
Cadenes de chrome clau/valor (nav, botons, peu, modal…); els valors són el que es tradueix.
items[]— objectes ambkeyivalue. Sense validació del costat del servidor.