Trabajar con contenido

En esta página

Usa el administrador de EmDash para llevar una entrada desde su primer borrador hasta una página publicada. El editor mantiene los cambios del borrador separados de la versión que pueden ver los visitantes, de modo que guardar y publicar son dos acciones distintas.

Abrir una colección

Abre /_emdash/admin en tu sitio e inicia sesión. Selecciona una colección, como Posts o Pages, en la barra lateral.

La página de la colección enumera sus entradas. Desde aquí puedes:

  • seleccionar Add New para crear una entrada;
  • buscar por el título de la entrada, el slug y los campos marcados como buscables;
  • filtrar por estado de publicación, autor, firma, fecha y configuración regional;
  • seleccionar entradas para publicarlas en bloque, devolverlas a borrador o moverlas a la papelera; y
  • abrir Trash para restaurar o eliminar definitivamente una entrada.

Los campos y las funciones de publicación disponibles en el editor dependen del modelo de contenido de la colección. Por ejemplo, una colección puede admitir revisiones, vistas previas, taxonomías o búsqueda.

Crear y publicar una entrada

  1. Selecciona Add New en la página de la colección.

  2. Completa los campos obligatorios. Si la colección tiene un campo de título, EmDash lo usa para sugerir un slug. Puedes editar el slug antes de publicar.

  3. Añade el cuerpo y los campos de apoyo, como un extracto, una imagen destacada, una firma, categorías o etiquetas.

  4. Selecciona Save. El primer guardado crea la entrada como borrador y abre su URL de editor permanente.

  5. Revisa el borrador. Si la colección admite vistas previas, selecciona Preview para ver la página renderizada antes de publicar.

  6. Selecciona Publish now y confirma. El borrador guardado se convierte en la versión en vivo que devuelven las consultas de contenido públicas.

La entrada tiene un ID de contenido estable y un slug independiente. El ID sigue identificando la misma entrada aunque cambie su slug. Las plantillas normalmente usan el identificador orientado a la URL que devuelve getEmDashCollection(); la guía de consulta de contenido explica ambos valores.

Escribir texto enriquecido

Los campos de Portable Text ofrecen un editor de bloques para encabezados, párrafos, citas, listas, enlaces, imágenes, galerías, bloques de código, tablas, bloques HTML y secciones reutilizables. Los plugins instalados pueden añadir más bloques.

Usa la barra de herramientas para dar formato al texto seleccionado. Para insertar un bloque, selecciona el control de añadir bloque junto a un párrafo o escribe / y busca un bloque por su nombre. Los bloques de imagen y de galería abren el mismo selector de medios que usan los campos de imagen.

También puedes arrastrar archivos de imagen al editor o pegar una imagen copiada o una captura de pantalla. Cada imagen se sube a la Biblioteca de medios y aparece entre los bloques circundantes cuando termina la subida. Si una subida falla, el motivo aparece donde habría ido la imagen.

Al seleccionar un bloque de imagen, aparece una barra de herramientas encima. Úsala para reemplazar la imagen, editar su texto alternativo, alinearla, añadir un enlace o eliminar el bloque. El botón Alt text se resalta cuando la imagen tiene una descripción, y al pasar el cursor por encima se muestra la descripción. El texto alternativo que sea solo el nombre de archivo de una imagen de la Biblioteca de medios no cuenta. Escribe un pie de foto en el campo bajo la imagen y pulsa Intro para seguir escribiendo debajo. Desde una imagen seleccionada, Tab pasa al pie de foto y luego a la barra de herramientas.

Image settings en la barra de herramientas abre todos los ajustes de ese uso de la imagen, incluidos su tamaño de visualización y un tooltip opcional. Edit asset abre allí el elemento subyacente de la Biblioteca de medios, donde cambiar o reemplazar el recurso puede afectar a otras entradas que lo usan. Consulta Biblioteca de medios para ver esa distinción.

Añadir HTML, CSS y JavaScript

Un bloque HTML contiene código que los demás bloques no pueden expresar, como un contenido incrustado, un formulario de suscripción o un pequeño widget. Sus pestañas son HTML, CSS, JS y Preview. Cada pestaña de código es un editor de código en el que Tab sangra; pulsa Escape para volver al texto circundante. Las pestañas CSS y JS son opcionales: también puedes pegar un fragmento completo, con sus elementos <style> y <script>, en la pestaña HTML.

Preview muestra el bloque tal como lo renderiza tu sitio. Al abrir una entrada, un bloque que ejecuta JavaScript espera hasta que selecciones Run preview, de modo que un script defectuoso no pueda bloquear el editor.

El menú del bloque establece cómo lo renderiza tu sitio:

  • Isolated frame ejecuta el HTML, el CSS y el JavaScript del bloque en un marco en sandbox que crece con su contenido. El marco no puede leer las cookies, el almacenamiento ni las páginas de tu sitio, y los estilos de tu sitio no lo alcanzan. Los enlaces relativos se resuelven desde la raíz de tu sitio. Después de que un visitante hace clic dentro del marco, este puede abrir otras páginas en la pestaña del visitante o en una nueva. Los bloques HTML nuevos usan este modo, pero los bloques pegados desde otro sitio web o pestaña del navegador no. No dimensiones el contenido según el viewport del marco, como con height: 100vh: el marco crece para ajustarse a él, lo que vuelve a hacer más alto el contenido, hasta que el marco alcanza los 20 000 píxeles.
  • Inline coloca el HTML en la página, donde usa los estilos de tu sitio. Tu sitio conserva el formato de texto, los enlaces, las listas, las tablas, las imágenes y los iframes, y elimina el resto del marcado, como scripts, elementos <style>, atributos style, medios y controles de formulario. Los iframes de sitios distintos de YouTube y Vimeo se vacían. Un bloque inline no tiene pestaña CSS ni JS.

Es posible que los motores de búsqueda no traten el texto de un marco aislado como parte de la página. Coloca el texto importante para las búsquedas en párrafos o en un bloque inline.

Incrustar una página de otro sitio

Un bloque iframe muestra una página de otro sitio, como un vídeo, un mapa o un formulario. Escribe /iframe y luego pega el código de incrustación del sitio o un enlace en la pestaña Code. Los enlaces de YouTube y Vimeo se convierten en sus reproductores, y cualquier otro enlace https se incrusta tal cual. Preview muestra la página incrustada. Al abrir una entrada, un bloque guardado espera hasta que selecciones Load preview, de modo que el administrador no cargue las páginas de otros sitios hasta que lo pidas. Los bloques iframe pegados desde otro sitio web o pestaña del navegador llegan vacíos.

Solo se pueden incrustar páginas https, y el bloque conserva únicamente las partes de un código de incrustación que necesita: la dirección, el título, el tamaño, la compatibilidad con pantalla completa y los permisos que usan los reproductores. Algunos sitios se niegan a aparecer dentro de la página de otro sitio; su vista previa permanece en blanco o muestra un error de ese sitio.

Un código de incrustación que ejecuta un script en lugar de un iframe, como algunas publicaciones de redes sociales, va en un bloque HTML.

Guardar los cambios del borrador

Después del primer guardado, el editor guarda automáticamente los cambios dos segundos después de que dejes de escribir. El botón Save pasa por Saving… hasta Saved para que puedas confirmar que el servidor aceptó el borrador. El guardado automático reemplaza la revisión de guardado automático actual en lugar de llenar el historial de revisiones con un punto de control por cada pausa.

Selecciona Save cuando quieras que un punto de la secuencia de edición permanezca en el historial de revisiones. Si un guardado falla, el editor conserva los campos sin guardar y muestra el error. No abandones la página hasta que el botón vuelva a Saved o hayas copiado en otro lugar el trabajo sin guardar.

En una entrada publicada, guardar los cambios actualiza solo su borrador. Los visitantes siguen recibiendo la revisión en vivo anterior. Usa Preview draft para comprobar la versión pendiente, Live View para comprobar la versión pública y Publish changes cuando el borrador esté listo para reemplazarla.

Cambiar el slug de una entrada publicada sigue el mismo flujo de borrador. La URL pública cambia cuando publicas el borrador, no cuando se ejecuta el guardado automático.

Trabajar con otro editor

Abrir una entrada toma un bloqueo de edición para esa entrada y configuración regional. Si otra persona ya la tiene abierta, EmDash identifica a quien tiene el bloqueo y ofrece dos opciones:

  • Open read-only muestra la entrada sin aceptar ediciones, para que no escribas trabajo que se descartaría.
  • Take over te da el bloqueo. La otra persona conserva lo que escribió, pero en dos minutos su editor informa de que tú tienes la entrada. Su siguiente guardado se rechaza.

El bloqueo se renueva mientras la entrada está abierta y se libera cuando sales del editor o cierras la pestaña. Si el navegador o el ordenador se cierra sin liberarlo, el bloqueo caduca siete minutos después de su última renovación.

Los bloqueos son independientes para cada configuración regional, así que dos personas pueden editar traducciones distintas de la misma entrada. Un script, un cliente de API o un cliente MCP también son rechazados mientras otro editor tenga el bloqueo, a menos que use la anulación documentada. Consulta Bloqueo de edición de entradas para ver el comportamiento completo de la API y Ciclo de vida del contenido y firmas para las herramientas de MCP.

Un administrador puede desactivar el bloqueo de una colección en Content Types, luego en la colección y después en Edit locking.

Publicar o programar cambios

Publicar y programar usan controles distintos:

  • Publish now pone en vivo un borrador nuevo tras la confirmación.
  • Publish changes pone en vivo los cambios pendientes de una entrada publicada tras la confirmación.
  • Schedule establece cuándo una entrada nueva o unos cambios pendientes pasan a estar en vivo.
  • Change schedule actualiza una programación existente.
  • Remove schedule cancela una programación existente.
  • Unpublish quita la revisión en vivo de las consultas públicas, cancela cualquier programación y conserva un borrador editable.

Para programar una entrada, guárdala primero, selecciona Schedule debajo del resumen de publicación y elige una fecha y hora futuras. El editor muestra la zona horaria usada para la programación. Hasta ese momento, la revisión en vivo actual sigue siendo pública; en una entrada nueva, todavía no hay nada público.

Los despliegues en Node.js ejecutan automáticamente el barrido de publicación programada. Cloudflare Workers requiere un Cron Trigger. Las plantillas iniciales de Cloudflare lo incluyen; los despliegues existentes pueden seguir Publicación programada para verificar el trigger.

Revisar el calendario de publicación

El calendario muestra lo que se publicó y lo que está programado en todas tus colecciones. Los Contributors y los roles superiores pueden abrir Calendar desde la barra lateral o la paleta de comandos. Cuando hay algo programado, el contador Scheduled del panel también enlaza a él.

El calendario tiene dos vistas:

  • Month muestra una cuadrícula de días. Las entradas publicadas aparecen como líneas simples y las programadas como tarjetas. Pasa el cursor o enfoca una entrada para ver su título completo, estado, hora y colección. Cuando un día tiene más entradas de las que caben, selecciona +N more para listarlas todas.
  • Agenda lista el mes por días, con la hora de cada entrada. En el mes actual, los días anteriores a hoy aparecen contraídos salvo que alguno tenga una entrada vencida, y una línea roja marca el presente.

En un teléfono u otra pantalla estrecha, el calendario se abre en Agenda, y Month muestra un selector de fecha con puntos en los días que tienen entradas. Selecciona un día para listar sus entradas.

Selecciona una entrada para abrir sus detalles en un panel lateral, o haz clic con Ctrl (Cmd en macOS) para abrirla en el editor en una pestaña nueva. El panel muestra el estado, la hora, la colección, la configuración regional y las traducciones de la entrada, sus firmas y cuándo se editó por última vez. Desde el panel puedes abrir la entrada en el editor, previsualizar los cambios programados o ver en el sitio una entrada publicada. Si puedes publicar la entrada (los Authors las suyas, y los Editors y roles superiores cualquier entrada), también puedes reprogramarla, quitar su programación o publicar ahora una entrada vencida. En un teléfono, el panel se abre como una hoja en la parte inferior de la pantalla.

Usa Filter para acotar ambas vistas por colección y estado, y por configuración regional en los sitios multilingües. Los filtros, la vista, el mes y la entrada abierta se conservan en la URL de la página, así que puedes guardarla como marcador o compartirla.

Las entradas se sitúan en los días según la zona horaria del sitio, que el calendario indica junto al mes. Si tu navegador usa otra zona horaria, el calendario lo indica, y las horas de las entradas también aparecen en tu propia zona horaria.

El calendario muestra:

  • las entradas publicadas en la fecha en que se publicaron;
  • las entradas programadas en su fecha programada; y
  • los cambios programados de una entrada publicada en su fecha programada, marcados con Update. Cuando los cambios pasan a estar en vivo, la entrada aparece solo en su fecha de publicación original.

Una programación que supera en más de dos minutos su hora se marca como Overdue. Esto suele significar que el barrido de publicación programada no se está ejecutando; consulta Publicar o programar cambios.

El calendario omite los borradores sin programación, las entradas de la papelera y las colecciones ocultas de la barra lateral. El contador Scheduled del panel abarca todos los meses e incluye las colecciones ocultas, por lo que puede ser mayor que lo que el calendario muestra para un mes.

El calendario carga como máximo 1000 entradas por mes, incluidos los días de los meses vecinos que muestra la cuadrícula. Cuando hay más, indica en qué día terminan las entradas cargadas y marca los días posteriores como no cargados.

Restaurar una revisión

Las colecciones con compatibilidad con revisiones muestran Revisions en el panel de ajustes. Expándelo para ver las versiones guardadas y los campos que cambiaron entre ellas. Selecciona una revisión para inspeccionar su contenido y luego selecciona Restore si quieres volver a usar esa versión.

Restaurar crea una nueva revisión con el contenido seleccionado. No borra las revisiones anteriores, así que después sigues pudiendo inspeccionar la secuencia completa.

Traducir una entrada

Cuando la internacionalización está habilitada, el panel Translations muestra las configuraciones regionales definidas para la entrada actual.

  1. Abre la entrada de origen y busca Translations en el panel de ajustes.

  2. Selecciona Translate para una configuración regional que todavía no tenga una entrada.

  3. Edita el título copiado, el slug, el cuerpo y otros campos traducibles.

  4. Selecciona Save y luego publica o programa la traducción cuando esté lista.

Cada traducción tiene su propio slug, estado de publicación, programación e historial de revisiones. Usa el selector de configuración regional de la página de la colección para ver un idioma a la vez.

Mover contenido a la papelera

Abre las acciones de una entrada o selecciona una o más filas en la página de la colección y luego elige Move to Trash. Las entradas en la papelera dejan de aparecer en las consultas de contenido normales, pero siguen disponibles en la pestaña Trash de la colección.

Desde Trash, selecciona Restore para devolver una entrada a la colección. Una entrada restaurada vuelve como borrador y sin programación. Publícala para hacerla pública.

Automatizar el trabajo con contenido

La API REST y la CLI de EmDash admiten el mismo flujo de borrador y publicación. Los campos de la colección van dentro del objeto data de la solicitud. Una actualización guarda una revisión de borrador; publicar es una acción independiente. Pasa el último valor de _rev al actualizar o publicar para que el servidor rechace una escritura obsoleta en lugar de reemplazar trabajo más reciente.

Usa la referencia del ciclo de vida del contenido para las transiciones de estado, los permisos, los conflictos y los hooks. La referencia de la API REST define los cuerpos de solicitud y respuesta, y la referencia de la CLI cubre los comandos de terminal equivalentes.

Continúa con Consulta de contenido para renderizar entradas publicadas en un sitio de Astro, o con la Biblioteca de medios para añadir y gestionar archivos reutilizables.