Ir al contenido

Resumen de la especificación de artefacto

Un artefacto de ShareOut es un archivo HTML autocontenido publicado en ShareOut y servido en una URL estable. El archivo es dueño de sus datos: las claves de almacenamiento, los esquemas de tablas y los IDs de documentos realtime se declaran dentro del archivo mismo, en un bloque de manifest. El SDK de ShareOut lee el manifest para conectar la persistencia; el editor visual lo lee para poblar su panel de datos y el autocompletado.

Todo artefacto debe incluir cuatro cosas:

Elemento Propósito
<script type="shareout/manifest"> Declara todas las fuentes de datos — obligatorio en <head>
data-shareout-page Marca los contenedores de página — obligatorio en cada elemento de página
data-shareout-binding Conecta un elemento a un valor de datos — obligatorio para todo contenido dinámico
data-shareout-template Marca contenido repetitivo impulsado por una tabla o array JSON

Sin el manifest, el editor muestra paneles vacíos y no ofrece autocompletado. Sin data-shareout-page, la navegación por el esquema queda en blanco. Sin data-shareout-binding, el editor no puede rastrear qué valores están en uso.

La publicación nunca se bloquea por gaps de spec — los artefactos quedan en vivo igual. Cada publish HTML devuelve un perfil advisory editor_readiness (ver Publicar) que califica estos marcadores y nombra qué deshabilita cada gap en el estudio.

Atributo Ejemplo de valor Propósito
data-shareout-page "dashboard" ID del contenedor de página
data-shareout-page-title "Dashboard" Nombre visible en el esquema del editor
data-shareout-section "kpis" Sección dentro de una página
data-shareout-section-title "Key Metrics" Nombre visible de la sección
data-shareout-sortable (presente) o "x" Habilita reordenamiento por arrastre en el editor
data-shareout-tabs "views" ID del contenedor de grupo de tabs
data-shareout-tab "daily" ID de un tab individual
data-shareout-binding "json:metrics.revenue" Expresión de binding de datos
data-shareout-format "currency" Formato de visualización
data-shareout-editable "true" Habilita edición in-place
data-shareout-template "task-row" Nombre de template para ítems repetitivos
data-shareout-chart '{"type":"line"}' JSON de configuración de gráfico
data-shareout-realtime "board-sync" ID de documento Y.js realtime
data-shareout-action "navigate" Tipo de acción en elemento interactivo
data-shareout-if "json:user.loggedIn = true" Visibilidad condicional
data-shareout-nav "main" ID del contenedor de navegación
data-shareout-link "page:dashboard" Destino de un enlace de navegación
Funcionalidad del editor Lo que necesita Consecuencia si falta
Panel de datos sources en el manifest Panel vacío
Autocompletado sources en el manifest Sin sugerencias
Vista previa mock Valores default en json, tablas y conexiones Preview vacío (sin fetch en vivo en el estudio)
Esquema de páginas data-shareout-page Sin esquema
Esquema de secciones data-shareout-section Esquema plano
Rastreo de variables data-shareout-binding Variables invisibles
Edición de templates data-shareout-template No se pueden agregar/quitar filas
Diagrama de acciones data-shareout-action Sin visualización de acciones

Antes de publicar un artefacto, verificá:

  • <script type="shareout/manifest"> existe en <head> con "version": "2.0"
  • Cada key de sdk.json está declarada en sources.json
  • Cada nombre de sdk.table() está declarado en sources.tables
  • Cada elemento de página tiene data-shareout-page
  • Cada valor dinámico tiene data-shareout-binding
  • El contenido repetitivo usa data-shareout-template
  • Datos de muestra default en sources json, tablas y conexiones (los conectores live hacen preview desde defaults del manifest — sin query en el estudio)
  • Manifest — esquema completo del manifest y referencia de campos
  • Bindings — sintaxis de expresiones de binding y formatos
  • Templates — contenido repetitivo, gráficos, realtime
  • Páginas — estructura de páginas, secciones, tabs y navegación
  • JSON store — API de sdk.json
  • Tables — API de sdk.table()