biagiojs

Sintassi .biagio

La sintassi .biagio è il modo più diretto per scrivere pagine: pesi business come attributi, template HTML, script di idratazione inline. Niente import, niente graph boilerplate.

Anatomia di una pagina

<page title="Home — Il Mio Sito"
      description="Benvenuto sul mio sito."
      sitemapPriority="1.0" />

<component id="hero" seo="1" conversion="0.9" cpu="2">
  <template>
    <section class="hero">
      <h1>Titolo principale</h1>
      <p>Sottotitolo descrittivo.</p>
    </section>
  </template>
</component>

<component id="cta" conversion="1" interaction="0.85">
  <template>
    <button class="cta" id="buy">Compra ora</button>
  </template>
  <script hydrate>
    el.querySelector('#buy').addEventListener('click', () => {
      el.querySelector('#buy').textContent = 'Grazie! ✓';
    });
  </script>
</component>

<style>
  .hero { padding: 80px 24px; text-align: center; }
  .cta { background: #ff4d5a; color: #fff; border: none; padding: 16px 32px; border-radius: 999px; }
</style>

Attributi <page>

AttributoDescrizione
titleTitolo documento e meta
descriptionMeta description
sitemapPriority0.0–1.0 per sitemap.xml
typeproduct, article… per JSON-LD
imageImmagine OG
noindexEsclude dalla sitemap
overlayMetriche dev (default: on in dev, off in build)

Attributi <component>

AttributoRangeEffetto
seo0–1Priorità contenuto SEO-critical
conversion0–1Ordine nel sorgente HTML
interaction0–1Probabilità idratazione
cpu1–10Costo rendering
networkKBCosto rete per preload
hydrateinline/eager/visible/idle/neverOverride scheduler
clientpathModulo isola esterno
propsJSONProps per isola client
consentcategoriaGating GDPR

Isole esterne

Per React, Preact o moduli più grandi:

<component id="stock" conversion="0.9" interaction="0.6"
           client="/islands/stock.js" props='{"initial": 5}'>
  <template><div data-react-root>Caricamento…</div></template>
</component>

Il modulo in islands/ esporta default function (el, props) { … }.

Ordine visivo vs rendering

L'ordine nel file determina il layout CSS (domOrder). L'ordine di rendering HTML lo decide lo scheduler in base ai pesi — un CTA con conversion="1" può finire prima nel sorgente anche se è più in basso nel file.

CSS

Il blocco <style> viene purgato e minificato in build. Classi non usate nel DOM visibile vengono rimosse (PurgeCSS integrato).