Référence des blocs
Clepit fournit 12 types de blocs intégrés. Chaque bloc possède une structure JSON, un moteur de rendu et un chemin d’insertion programmatique via editor.blocks.insert.
Tous les blocs partagent la même enveloppe une fois sérialisés : id, type, data et un enregistrement tunes facultatif.
La forme du bloc
Chaque bloc est sérialisé dans la même enveloppe JSON. L'id est attribué par l'éditeur et peut être omis lors de la construction de données par programmation.
{
"id": "abc123",
"type": "paragraph",
"data": { "html": "Hello <b>world</b>" },
"tunes": {}
}alert
Encadré de mise en évidence avec 4 variantes.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| html | string | Oui | Contenu HTML du message d'alerte. Le balisage des outils en ligne est pris en charge. |
| variant | 'error' | 'info' | 'success' | 'warning' | Oui | Style visuel de l'alerte. L'une des valeurs : error, info, success, warning. |
{
"type": "alert",
"data": { "html": "Your session will expire in 5 minutes.", "variant": "warning" }
}audio
Bloc audio. Consommé via le callback audioUploader sur Editor.create.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| url | string | Oui | URL du fichier audio à intégrer. |
| caption | string | Non | Légende en texte brut affichée sous le lecteur. |
| alt | string | Non | Étiquette accessible pour l'élément audio. |
| alignment | 'center' | 'left' | 'right' | Non | Alignement horizontal du lecteur. L'une des valeurs : center, left, right. |
{
"type": "audio",
"data": { "url": "/media/podcast.mp3", "caption": "Episode 12", "alignment": "center" }
}checklist
Liste de cases à cocher interactive avec un état coché par élément.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| items | ChecklistItem[] | Oui | Tableau d'éléments de liste de contrôle, chacun avec un texte et un état coché. |
| items[].text | string | Oui | Contenu HTML de l'étiquette de l'élément. |
| items[].checked | boolean | Oui | Indique si la case est cochée. |
{
"type": "checklist",
"data": {
"items": [
{ "text": "Install the package", "checked": true },
{ "text": "Mount the editor", "checked": false }
]
}
}code
Bloc de code avec coloration syntaxique. 50 langages sont pris en charge, dont typescript, python, rust, go, ruby, swift et kotlin.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| code | string | Oui | La chaîne de code brut à afficher. |
| language | CodeLanguage | Non | Langage de coloration syntaxique. Par défaut : typescript. |
| theme | CodeTheme | Non | Thème de couleur de l'éditeur. Par défaut : github-dark. |
| showCopy | boolean | Non | Afficher un bouton de copie dans le rendu. |
{
"type": "code",
"data": { "code": "const x = 42;", "language": "typescript", "theme": "github-dark", "showCopy": true }
}delimiter
Séparateur visuel entre les sections.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| variant | 'line' | 'stars' | Oui | Style visuel du séparateur. L'une des valeurs : line, stars. |
{
"type": "delimiter",
"data": { "variant": "line" }
}header
Titres de premier niveau et titres de section (h1 à h6). Les outils en ligne fonctionnent à l’intérieur de la charge utile html.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| html | string | Oui | Contenu HTML du titre. Le balisage des outils en ligne est pris en charge. |
| level | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | Non | Niveau de titre. L'une des valeurs : h1, h2, h3, h4, h5, h6. Par défaut : h1. |
{
"type": "header",
"data": { "html": "Getting started", "level": "h2" }
}image
Bloc image avec légende et texte alt. Consommé via le callback imageUploader sur Editor.create.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| url | string | Oui | URL de l'image à intégrer. |
| caption | string | Non | Légende en texte brut affichée sous l'image. |
| alt | string | Non | Texte alt pour l'élément image. |
| alignment | 'center' | 'left' | 'right' | Non | Alignement horizontal de l'image. L'une des valeurs : center, left, right. |
{
"type": "image",
"data": { "url": "/img/hero.jpg", "caption": "Hero image", "alt": "A hero", "alignment": "center" }
}list
Liste ordonnée ou non ordonnée. Chaque élément est du html.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| type | 'ordered' | 'unordered' | Oui | Type de liste. L'une des valeurs : ordered, unordered. |
| items | string[] | Oui | Tableau de chaînes HTML, une par élément de liste. |
{
"type": "list",
"data": { "type": "unordered", "items": ["First item", "Second item"] }
}paragraph
Paragraphe en texte enrichi. Accepte le balisage des outils en ligne tels que bold, italic, code, link, marker et tooltip.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| html | string | Oui | Contenu HTML du paragraphe. Le balisage des outils en ligne est pris en charge. |
{
"type": "paragraph",
"data": { "html": "This is a <b>paragraph</b> with inline markup." }
}quote
Bloc de citation avec une attribution d’auteur facultative.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| html | string | Oui | Contenu HTML du corps de la citation. Le balisage des outils en ligne est pris en charge. |
| author | string | Non | Attribution en texte brut ou HTML affichée sous la citation. |
{
"type": "quote",
"data": { "html": "The best way to predict the future is to invent it.", "author": "Alan Kay" }
}table
Grille de données. La première ligne peut servir d’en-tête ; chaque cellule est du html.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| data | string[][] | Oui | Tableau à deux dimensions de chaînes de cellules HTML. La première ligne est la ligne d'en-tête. |
| caption | string | Non | Légende en texte brut ou HTML affichée sous le tableau. |
| showDownload | boolean | Non | Afficher un bouton de téléchargement dans le rendu. |
{
"type": "table",
"data": {
"data": [["Name", "Type"], ["html", "string"], ["variant", "AlertVariant"]],
"caption": "AlertData fields",
"showDownload": false
}
}video
Bloc vidéo. Consommé via le callback videoUploader sur Editor.create.
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
| url | string | Oui | URL du fichier vidéo ou lien d'intégration YouTube/Vimeo. |
| caption | string | Non | Légende en texte brut affichée sous le lecteur. |
| alt | string | Non | Étiquette accessible pour l'élément vidéo. |
| alignment | 'center' | 'left' | 'right' | Non | Alignement horizontal du lecteur. L'une des valeurs : center, left, right. |
{
"type": "video",
"data": { "url": "/media/demo.mp4", "caption": "Product demo", "alignment": "center" }
}