Competenze per la creazione di temi e blocchi

Un repository di competenze per Claude Code per la creazione di temi e componenti a blocchi per Discourse:

:toolbox: Cosa è incluso

Competenza per la creazione di temi — copre un ambito completo per la costruzione di un tema Discourse: scaffolding con il CLI discourse_theme, architettura SCSS, libreria viewport, localizzazione, impostazioni, modificatori, trasformatori di valori, icone e variabili CSS. Sono inclusi separatamente file di riferimento dettagliati per icone, variabili e trasformatori, che possono essere caricati su richiesta. SKILL.md

Competenza per la creazione di blocchi — copre il lato tema della Blocks API: scrittura di componenti a blocchi con il decoratore @block, definizione degli schemi degli argomenti, rendering dei blocchi negli outlet core disponibili, condizioni, blocchi contenitore e raggruppamento del layout, e integrazione delle traduzioni e impostazioni del tema negli argomenti dei blocchi. SKILL.md

Tema di esempio — un tema funzionante con una homepage personalizzata costruita con blocchi, che dimostra pattern reali per outlet, condizioni e composizione del layout.


:jigsaw: Informazioni sulla Blocks API

La Blocks API è il nuovo framework di Discourse per la creazione di componenti UI modulari e componibili nei temi e nei plugin. I blocchi sono componenti Glimmer registrati in outlet denominati — come homepage-blocks, hero-blocks o sidebar-discovery — e possono essere visualizzati condizionalmente in base a route, utente, viewport, impostazioni del sito o disponibilità dei plugin.

Un punto di forza chiave del sistema è che i blocchi hanno un ambito ristretto e focalizzato e pattern coerenti. Questo li rende adatti allo sviluppo assistito da AI: un modello con la competenza sui blocchi può generare rapidamente un componente a blocco funzionante, registrarlo su un outlet e configurare le condizioni in un’unica passata.

Il tema di esempio in questo repository dimostra una homepage che si adatta in base ai plugin e ai contenuti disponibili. Ecco come appare la homepage di base, con un blocco hero e un elenco di argomenti in evidenza:

Quando vengono soddisfatte condizioni aggiuntive (un tag in evidenza è configurato, il plugin Discourse Events è attivo e il plugin Discourse Leaderboard è disponibile), vengono renderizzati condizionalmente ulteriori blocchi nel layout:

I blocchi non sono limitati alla homepage. Il tema di esempio utilizza anche l’outlet sidebar-blocks per aggiungere un link Home, l’outlet sidebar-discovery per aggiungere contenuti specifici per categoria nella barra laterale e un blocco category-banner nella parte superiore delle pagine delle categorie:

L’ispettore dei blocchi su DevTools mostra le etichette degli outlet e gli identificatori dei blocchi sovrapposti alla pagina. Questo rende facile comprendere la struttura del layout e debuggare dove viene renderizzato ogni elemento:


:art: Utilizzo con una piattaforma di design MCP

Le competenze si integrano perfettamente con le MCP delle piattaforme di design (come Penpot o Figma MCP). Connesso uno di questi, Claude può leggere le specifiche dei componenti e i token di design direttamente dai file di design e implementarli seguendo le convenzioni della competenza. È un ciclo più stretto tra design e codice, specialmente quando si lavora su un sistema di design strutturato.


:fork_and_knife: Fork e personalizzazione

Alcune convenzioni nelle competenze sono più una preferenza che una regola, come l’architettura delle cartelle SCSS. Puoi fare un fork del repository e adattare le competenze per allinearle al tuo flusso di lavoro e alle tue convenzioni.


:speech_balloon: Condividi ciò che crei

Prova e facci sapere come va! Siamo felici di sapere come stai utilizzando le competenze, cosa hai costruito con esse e dove mostrano limiti. Feedback, correzioni e fork sono tutti benvenuti.

Ci sarà un argomento dedicato ai Blocchi o è questo?

Se è quest’ultimo, forse alcuni frammenti di codice potrebbero essere d’aiuto? O ciò che si trova nel file plugin-api.gjs costituisce la documentazione attuale?

Grazie.

Ci sarà comunque una documentazione che copre l’intera API dei Blocchi, inclusa l’implementazione nel core e nei plugin. Per la personalizzazione con i Blocchi, il file SKILL.md dovrebbe già toccare tutti gli aspetti rilevanti. È compatto e molto leggibile.

Il tema di esempio include sia i file di inizializzazione che i blocchi. I file di inizializzazione dichiarano il layout per BlockOutlet: discourse-theme-skills/javascripts/discourse/api-initializers at main · discourse/discourse-theme-skills · GitHub.