Capítulo 12.3 · Parte III · La práctica
Sandbox: libros, archivos de Word y guardado
Los libros y los capítulos, la edición de páginas de cómic, la importación y la exportación de documentos de Word, y cómo guarda, exporta e importa el Sandbox tu trabajo
En pocas palabras
Esta página explica cómo organizar y conservar tu trabajo en el Sandbox. Un proyecto es un libro hecho de capítulos. Las páginas de cómic tienen sus propias herramientas para las viñetas y los diálogos. Puedes traer un archivo de Word, elegir en qué estilos de Postext se convierten sus estilos y devolver el libro a Word. Tu trabajo se guarda en tu propio navegador sobre la marcha, y puedes descargarlo en un solo archivo y volver a abrirlo más tarde.
#Libros y capítulos
Todo lo que abres en el Sandbox es un libro, igual que un archivo de libro de InDesign agrupa un documento por capítulo: la configuración, las fuentes personalizadas y el conjunto de recursos son comunes a todo el libro, y cada capítulo es su propio documento markdown. Las obras largas — un manual de quinientas páginas — se editan capítulo a capítulo, mientras que la numeración, las referencias cruzadas y la exportación siguen viendo un solo documento.
- La estructura vive en el panel de capítulos y en el selector de capítulos del panel Texto: añadir, renombrar (doble clic en una fila), reordenar, dividir un capítulo en uno por título de nivel 1, fusionar un capítulo con el anterior, eliminar. Cada capítulo conserva su propio historial de deshacer y su cursor.
- Capítulo a capítulo. Por defecto las vistas previas maquetan el capítulo activo, continuando a los capítulos anteriores: su primer número de página sigue a la última página del capítulo previo, los títulos de nivel 1 siguen contando (el capítulo 4 se numera 4 y sus figuras 4.1, 4.2, …), los folios explicativos
{chapterNumber}y{chapterTitle}acompañan, se respeta la paridad recto/verso (un inicio de capítulo añade una página en blanco exactamente igual que en mitad del libro) y una:refa una figura mencionada por primera vez en el capítulo 1 conserva ese número. El número de páginas de los capítulos anteriores procede de la maquetación que mostró cada uno por última vez; los capítulos nunca visitados (o editados desde entonces) se maquetan en segundo plano, uno tras otro, y la lista de capítulos muestra páginas pendientes hasta que llegan. Los rangos de páginas son exactos para los capítulos que abren en página nueva (lo habitual); un capítulo cuyo texto habría continuado en la página anterior se coloca al principio de su propia página. - Libro completo. El canvas, la vista HTML y la pestaña PDF pueden mostrar el libro entero como un documento continuo: elige Libro completo en el selector a la izquierda de la barra de pestañas (libros con más de un capítulo). El canvas maqueta entonces todos los capítulos en orden, cada uno a continuación de las páginas en que acabaron los anteriores, y muestra los documentos cosidos uno tras otro: una edición vuelve a maquetar solo su capítulo, y los siguientes únicamente si su primera página se movió; la lista de capítulos, las partes
chapter=ypage=del permalink y la sincronización con el editor siguen al capítulo de cada página. La elección se guarda con el libro (una novela corta se lee como un solo documento; un libro de texto, capítulo a capítulo), y un preset puede abrirse así medianteview.canvasScopeen su manifiesto. La vista HTML comparte la elección del canvas y maqueta el libro entero como un solo documento desde su primera página, con las filas del índice y el fragmento siguiendo al capítulo de cada página; la pestaña PDF conserva su propio selector. - Metadatos. Los metadatos (frontmatter) del primer capítulo son los del libro (título, autor, …). Un bloque de metadatos al principio de cualquier otro capítulo se ignora, y el panel Revisión lo indica.
buildBundlesigue la misma regla, así que un libro sale igual en el Sandbox y en tu propio programa. - Libros largos. Un libro de 120 capítulos funciona como uno corto. El menú de capítulos de la cabecera del panel Texto se desplaza dentro de la ventana y se abre en el capítulo activo; las flechas avanzan desde él. Un libro en partes (vallas
:::parten sus capítulos) agrupa los capítulos bajo sus partes, en el menú y en el panel Capítulos, y un clic en una parte del menú abre su primer capítulo. Con más de 30 capítulos el menú lleva arriba un campo de búsqueda que encuentra números de capítulo (27) y palabras de los títulos y de los nombres de las partes (埋香,卷三); Intro abre el primero que coincide. Mientras un método de entrada compone (zhuyin, cangjie, pinyin, kana), Intro y las flechas son suyos: Intro confirma la conversión y no abre nada. Los archivos de capítulo de un libro de ejemplo se cargan de ocho en ocho, y mientras los capítulos se paginan en segundo plano el panel Capítulos muestra el avance (Paginando 34/120). El canvas y la vista HTML muestran un libro de más de 200 capítulos de capítulo en capítulo, pida lo que pida el libro o su manifiesto: maquetar a la vez todos los capítulos obliga a tener el libro entero en memoria. Uno más corto puede abrirse completo: 紅樓夢 (129 capítulos, unas 2.000 páginas) tarda unos 25 segundos y ocupa unos 100 MB en el canvas. La pestaña PDF puede seguir exportando cualquier libro completo. - Recuento de páginas. Cada capítulo se maqueta como un documento propio, así que
{totalPages}cuenta las páginas del capítulo.{bookTotalPages}cuenta el libro entero: en cuanto se conocen las páginas de todos los capítulos, las vistas previas maquetan cada capítulo con ese total (solo si una cabecera, un pie o un diseño lo imprime). Hasta entonces, un capítulo imprime las páginas hasta su propio final. El Libro completo de la pestaña PDF cuenta las páginas que maqueta, así que el archivo imprime siempre el total real del libro. - Aperturas de capítulo. No se fuerza ningún salto de página entre capítulos: un capítulo cuyo primer bloque es un título de nivel 1 abre página nueva gracias al propio ajuste salto previo del título, exactamente igual que un capítulo que empieza a mitad de documento.
- Sincronización. Hacer clic en un párrafo de cualquier capítulo en la vista Canvas o HTML cambia el editor a ese capítulo y coloca el cursor; el cursor del editor se resalta en las vistas previas allí donde el capítulo quede dentro del libro. Los avisos llevan su capítulo.
- Los documentos existentes se abren como un libro de un solo capítulo; nada cambia hasta que se añade un segundo capítulo.
#Editar cómics
Un capítulo con páginas de cómic (:::page) o tiras (:::strip) se puede editar sobre las propias páginas, en la pestaña Canvas, en la pestaña HTML y en el modo Seleccionar texto de Folio. Las herramientas funcionan igual en una tira compuesta en una columna, flotante en la cabeza de una página o a lo ancho de ella, más estrecha que su medida o con un pie, y escriben en la valla de la propia tira. Cada cambio se escribe en el Markdown del capítulo, igual que si se hubiera tecleado, así que el deshacer del editor lo revierte. El marcado y las reglas de rotulación se explican en Cómics.
- Separadores. Sobre la calle que hay entre dos viñetas, el puntero se convierte en un cursor de cambio de tamaño. Arrástralo para mover la línea de corte; al soltar, el nuevo porcentaje se escribe en el atributo
splitde la página (que se añade a la valla si la página no lo tiene) y la página se vuelve a componer. Mayús ajusta la línea a pasos del 5 %, Alt mueve solo el extremo más cercano al puntero e inclina la línea, y ninguna viñeta queda más estrecha que un 5 %. Mientras arrastras, se marca, con una indicación, la viñeta cuyo dibujo dejaría de mostrar entera su zona segura. Cada separador es también un separador enfocable: las flechas lo mueven un 1 % (un 5 % con Mayús), Intro escribe la posición y Escape la deshace. - Dividir y unir. Sobre una viñeta, una pequeña barra de herramientas ofrece Dividir con una línea horizontal, Dividir con una línea vertical (se añade una línea
::panelvacía para la nueva celda, justo después de esta viñeta) y Unir con la viñeta siguiente: la línea que las separa desaparece, y la viñeta unida conserva el dibujo de la primera y recibe las líneas de guion de las dos. A las viñetas también se llega con Tab: la viñeta con el foco se resalta, H la divide con una línea horizontal, V con una vertical y M la une con la siguiente; el foco sigue en la viñeta cuando la página se vuelve a componer. Intro abre la barra de herramientas, y Escape vuelve de ella a la viñeta. - Bocadillos. Arrastra un bocadillo para fijarlo: al soltar, su línea de guion recibe
at="x% y%", el punto en porcentajes del dibujo de la viñeta (de la celda si la viñeta no tiene dibujo), de modo que el bocadillo sigue en el mismo sitio del dibujo cuando cambian el recorte, los separadores o el idioma. Un grupo unido se mueve entero, fijado por su primer bocadillo. Las flechas desplazan un 1 % (un 5 % con Mayús) el bocadillo que tiene el foco, y un doble clic sobre un bocadillo fijado le quita elaty lo devuelve a la colocación automática. Un solo clic pone el cursor del editor en la línea del bocadillo. - Aviso de desbordamiento. Mientras un bocadillo se mueve, con el puntero o con las flechas, la vista previa comprueba dónde quedaría. Si taparía una cara o una zona libre, o se saldría de su viñeta más de lo que se sale ahora, el contorno que se mueve se vuelve naranja, las caras y las zonas libres de la viñeta se dibujan discontinuas y la etiqueta dice qué pasa: Aquí taparía una cara, Aquí taparía una zona de la imagen que debe quedar libre, Aquí se saldría de la viñeta. Una línea con
breakno se señala por salirse de su viñeta. El aviso no prevé cómo se moverán los demás bocadillos de la viñeta para hacerle sitio. - Rabillos. Sobre la punta de un rabillo el puntero se convierte en una cruz. Arrastra la punta hacia donde debe apuntar el rabillo: al soltar, la línea recibe
to="x% y%", el punto en porcentajes del dibujo de la viñeta, y el rabillo se vuelve hacia él y se detiene antes de llegar, como hace ante una boca. Escape cancela el arrastre, y un doble clic en la punta quita elto, de modo que el rabillo vuelve a apuntar a su personaje. Con el teclado, T en un bocadillo con el foco pasa a su rabillo: las flechas mueven el punto al que apunta un 1 % (un 5 % con Mayús), Intro lo escribe, Escape lo devuelve a su sitio, Suprimir quita eltoy T vuelve al bocadillo. - Personajes y zonas libres. En una imagen del panel de Recursos, el campo Zona segura y rotulación abre un diálogo con tres modos. Zona segura marca la parte del dibujo que tiene que verse siempre. Personajes pone un punto por personaje: un clic en el dibujo añade ahí un personaje y pone el foco en su id, que debe ser la clave de personaje que usa el guion (
maya: …); su boca, su cabeza (adonde apuntan las burbujas de pensamiento) y su cara (que ningún bocadillo tapa) se arrastran a su sitio. Las Zonas libres son rectángulos que ningún bocadillo tapa y se trazan arrastrando sobre el dibujo. En el mismo modo se marcan las caras de quienes no hablan (Añadir cara de quien no habla, o el interruptor Es una cara de la fila de una zona): ningún bocadillo tapa una cara así, mientras que una zona libre cede cuando a la viñeta no le queda otro sitio. Cada marca se mueve con las flechas (con Mayús, a pasos mayores) y se borra con Suprimir; el diálogo tiene su propio deshacer, y señala el personaje que queda fuera de la zona segura. - Ajustes. El grupo Cómic del panel Diseño reúne la configuración de los cómics: el sentido de lectura y el reflejo de los dibujos, el marco y las calles, la viñeta por defecto y los estilos de viñeta con nombre, la rotulación y los estilos de globo, cada uno con una vista previa de su contorno.
- Editor y revisión. El editor de texto colorea
:::page,:::strip, las líneas::panely las claves y los atributos de las líneas de guion. El panel Revisión enumera los avisos de cómic (una división ilegible, viñetas y celdas que no coinciden, un globo que no cabe…) en la línea a la que se refieren; véase Cómics › Avisos de cómic.
#Documentos de Word
Los manuscritos suelen llegar como archivos de Word. El panel Texto importa un .docx directamente, sin agentes de IA y sin instalar nada, y asigna sus estilos como lo hace Colocar en InDesign. Importar un documento de Word lee el archivo en el navegador (nunca se sube) y abre un diálogo; el libro solo cambia cuando pulsas Importar. Un archivo que no es un documento de Word, como un .doc binario antiguo, se rechaza con un mensaje que lo indica; guárdalo antes desde Word como .docx.
El diálogo tiene estas partes, y cada una se puede plegar:
- Calidad del original. Un diagnóstico de cómo se preparó el manuscrito: Estilos bien aplicados (se convierte sin retoques), Estilos aplicados en parte (algunos párrafos tienen formato puesto a mano) o Sin estilos (todo está en Normal, así que el texto entra como párrafos simples). Debajo, los recuentos (párrafos, cuántos están en un estilo distinto de Normal, imágenes, tablas, notas) y lo que se ha encontrado, cada cosa con las primeras palabras de algunos párrafos donde aparece: párrafos con formato puesto a mano (fuentes, tamaños, colores, alineación; se descarta, porque lo fija el diseño), párrafos cortos en negrita que parecen títulos escritos a mano, números o viñetas tecleados en lugar de listas de Word, saltos de línea manuales, saltos de página manuales, párrafos vacíos usados para dejar espacio, tabuladores y dobles espacios, cambios registrados (se conservan las inserciones y se descartan las eliminaciones; acéptalos o recházalos antes en Word), comentarios (no se importan), cuadros de texto (el texto de cada uno va detrás del párrafo al que está anclado), ecuaciones (se convierten a TeX; revísalas), texto oculto e imágenes en formatos que el navegador no puede mostrar (EMF, WMF, TIFF).
- Plantilla de importación. La asignación en uso: Automática (por nombre de estilo), una plantilla guardada o, en un archivo exportado desde el Sandbox, Guardada en este documento. Guardar como plantilla nueva pide un nombre y guarda en el navegador la asignación, con todos los estilos de este documento; Guardar cambios actualiza la plantilla seleccionada; el botón de descarga la escribe como archivo
.jsony el de carga lee uno, de modo que todo un equipo puede compartir la misma plantilla. Eliminar una plantilla pide confirmación. La última plantilla usada se ofrece primero la vez siguiente. - Estilos de párrafo. Cada estilo de párrafo que usa el documento, con cuántos párrafos lo usan y las primeras palabras de uno, y en qué se convierte: Texto base, Título (un nivel del 1 al 6 y, si el diseño tiene estilos de título, uno de ellos), Estilo de párrafo (uno de los estilos de párrafo del diseño; los párrafos consecutivos en ese estilo forman un grupo
:::paragraphs), Recuadro (los párrafos consecutivos forman un recuadro de ese tipo), Título de recuadro (abre un recuadro con el texto del párrafo como título), Cita, Leyenda de la imagen o tabla contigua, Comienzo de un capítulo nuevo, Markdown de Postext, tal como está escrito (el texto se copia tal cual, para directivas escritas en Word) o Descartar. Los párrafos de las listas numeradas y con viñetas de Word se convierten en listas de Postext, sea cual sea su estilo, con su numeración y su anidamiento. Poema (:::verse, línea a línea) compone los párrafos del estilo como un poema:::verse, si se quiere en uno de los estilos de párrafo del diseño: Mayús+Intro corta un verso, un párrafo es una estrofa, varios párrafos de una línea seguidos forman una estrofa y un párrafo vacío separa estrofas; se propone para los estilos llamados Verso, Poema o Poesía. - Estilos de carácter. Lo mismo para los estilos de carácter: Texto sin formato, Negrita, Cursiva, Negrita cursiva, Versalitas, Superíndice, Subíndice, Etiqueta (uno de los estilos de etiqueta del diseño), Markdown de Postext, tal como está escrito o Descartar.
- Opciones. Los saltos de línea manuales (Mayús+Intro) se conservan como saltos dentro del párrafo (una barra invertida al final de la línea de Markdown, lo predeterminado), se unen con un espacio o empiezan un párrafo nuevo; la negrita, la cursiva, las versalitas, los superíndices y los subíndices puestos a mano se conservan o se descartan; los párrafos cortos en negrita siguen siendo párrafos o pasan a ser títulos de un nivel; los saltos de página manuales se descartan (el diseño decide dónde cambia la página) o se conservan como
:::pagebreak; las imágenes y las tablas se añaden como recursos o no. - Vista previa del Markdown, que se actualiza a medida que cambia la asignación.
El pie del diálogo elige adónde va el texto: Sustituir este capítulo, Capítulos nuevos detrás de este o Sustituir el libro entero; las dos últimas opciones empiezan un capítulo en cada título de nivel 1. Las imágenes (PNG, JPEG, GIF, WebP, SVG) pasan a ser recursos de figura y las tablas, recursos de tabla (se conservan las filas de cabecera, las celdas combinadas, los anchos de columna y los rellenos de celda); cada recurso se coloca con ::resource{id="…"} donde estaba y lleva como leyenda el párrafo de leyenda contiguo, sin el rótulo escrito a mano (Figura 3.), porque Postext numera los recursos. Las notas al pie y las notas al final pasan a ser notas al pie de Postext ([^1]), las entradas de índice de Word (campos XE), marcas :index; los enlaces siguen siendo enlaces y las ecuaciones pasan a $…$ / $$…$$. Un tabulador del texto pasa a ser :tab con la tabulación que Word le fijó (:tab{at=432pt align=end leader="."}), o un :tab a secas cuando el párrafo va a un estilo de párrafo del libro con tabulaciones propias; los rellenos de puntos, de guiones y de puntos centrados de Word pasan a ., - y ·, y los de subrayado y subrayado grueso, a una línea. Un tabulador en un título, en una celda de tabla o en una nota pasa a ser un espacio.
Antes de emparejar estilos por su nombre, la asignación automática reconoce los papeles propios de Word en cualquier idioma de la interfaz (Título 1–6, Título, Cita, Descripción; los párrafos de tabla de contenido, índice, encabezado y pie de página se descartan) y los estilos del diseño: un estilo de Word que se llame como un estilo de párrafo, un tipo de recuadro, un estilo de título o un estilo de etiqueta del libro (por id o por nombre, sin distinguir mayúsculas ni acentos) se asigna a ese estilo.
Exportar a Word descarga el capítulo abierto, o el libro entero, como un .docx para que otra persona trabaje en él con Word. La misma plantilla se aplica a la inversa: los títulos reciben los estilos de título de Word; los estilos de párrafo, los recuadros, las citas y las etiquetas reciben estilos de Word propios (con el nombre de los estilos del diseño: Recuadro: Nota, Etiqueta: Tecla); las listas pasan a ser listas de Word, las notas al pie, notas al pie de Word, y los enlaces siguen siendo enlaces. :tab pasa a ser un tabulador de Word, un :tab{…} con su propia tabulación se conserva tal como está escrito, y las tabulaciones de un estilo de párrafo fijadas con una longitud pasan a ser las tabulaciones de su estilo de Word, con el relleno de Word más parecido (una tabulación en 'end' o en un porcentaje depende de la página en la que Word compone el texto, y se descarta). Lo que Word no puede mostrar (el frontmatter, las vallas, las directivas, :ref, las matemáticas, las marcas :index, las líneas de recurso) se conserva tal como está escrito en los estilos grises Postext Markup. Un libro se exporta con un párrafo Postext Chapter al principio de cada capítulo. La plantilla viaja dentro del archivo, así que el documento editado se vuelve a importar con la misma asignación, y como libro entero si contiene párrafos de capítulo. Si el texto gris se deja como está, el texto vuelve tal como salió; los identificadores de las notas al pie se renumeran ([^1], [^2]…), lo que se imprime igual, y _italic_ vuelve como *italic*.
Para las conversiones que este diálogo no cubre (originales en PDF, PowerPoint, EPUB o IDML, o reproducir las reglas de maquetación de un original), usa la skill para agentes.
#Persistencia
El Sandbox guarda automáticamente tu trabajo en el navegador:
- Libro y configuración — Los capítulos, el capítulo activo y el alcance del canvas se guardan automáticamente en
localStoragebajopostext-sandbox-book(un documento único guardado por una versión anterior se lee depostext-sandbox-markdowncomo libro de un capítulo y se migra en el primer guardado); la configuración se guarda tras 1 segundo de inactividad con los valores por defecto eliminados para que solo se almacenen tus ajustes personalizados, junto con su versión (postext-sandbox-config-version); una configuración guardada antes de que existiera la versión se lee como se explica más abajo en Saltos de encabezado guardados con postext 1.4 o anterior - Estado de la interfaz — El panel y la pestaña de viewport activos, el ancho de la barra lateral, el grupo abierto del panel Diseño (
postext-sandbox-settings-group), su interruptor Mostrar todas las explicaciones (postext-sandbox-settings-help) y el estado abierto/cerrado de las secciones, los libros de ejemplo ocultos, los modos de zoom/ajuste/vista del canvas, la escala de fuente y el modo de columnas del HTML, la maquetación de la pestaña EPUB (postext-sandbox-epub-layout) y el estado de anclaje de las barras de herramientas se guardan enlocalStorage - Libro abierto — El id del libro propio abierto (un proyecto) se guarda en
localStoragebajopostext-sandbox-project; los proyectos en sí (capítulos, configuración y registros de recursos; registrosversion: 9, elCONFIG_VERSIONdel motor, con el que se marcan también la configuración de trabajo y las exportacionespostext-config.json, de modo que cada una se migra una sola vez cuando cambian las reglas del motor; al leer se migran los registros de documento único de versiones anteriores y se fijan, como se explica más abajo, los saltos de encabezado de los registros anteriores a la versión 3, el tamaño de las fórmulas de los anteriores a la versión 4, el espacio bajo las figuras en línea de los anteriores a la versión 5, el espacio en torno a las figuras en línea de los recuadros, las marcas de los títulos, el tamaño de las letras capitulares, el sitio bajo una línea de dos puntos y los cortes de los recuadros de los anteriores a la versión 6, los cortes tras una raya y la composición del texto en bandera de los anteriores a la versión 7, y la división bajo un título, los cortes tras el guion de un compuesto y el espacio bajo los contenedores:::paragraphsde los anteriores a la versión 8) viven en el almacénprojectsde la base de datos IndexedDB del sandbox, y sus contenidos binarios comparten los almacenes de blobs y fuentes con el documento de trabajo. Los contenidos se recolectan cuando ni el documento de trabajo ni ningún proyecto los referencian - Libros de ejemplo editados — Tu versión de un libro de ejemplo (sus capítulos, el capítulo activo, el alcance del lienzo, la configuración y los registros de recursos, junto con lo que aplicó el ejemplo al abrirlo) se guarda en el almacén
presetDraftsde la base de datos IndexedDB del sandbox, un registro por ejemplo e idioma del contenido, y la recolección de basura conserva sus archivos igual que los de un proyecto. Restaurar el original la borra - Portadas de los libros de ejemplo — La portada tomada de la primera página de un libro de ejemplo que no trae miniatura se guarda en el almacén
presetCoversde la base de datos IndexedDB del sandbox, un registro por ejemplo e idioma del contenido (consulta Panel de libros). Un libro propio guarda su portada en su registro de proyecto. - Guardado al salir — Los cambios pendientes se escriben en el acto cuando la página se oculta o se cierra, cuando sales del sandbox por un enlace (el logotipo) y antes de abrir otro libro, sin esperar la pausa de 1 segundo
- Libro de ejemplo abierto — El id del último preset cargado se guarda en
localStoragebajopostext-sandbox-preset, de modo que los botones Restablecer de los paneles siguen restaurando ese preset entre sesiones (un preset que ya no se sirve aparece como no disponible). Lo que ese preset aplicó — la huella del paquete más los hashes del markdown, la configuración y el conjunto de recursos — se guarda bajopostext-sandbox-preset-applied, que es como la siguiente visita distingue un documento intacto de uno editado - Recursos y fuentes — Los registros de recursos, sus blobs binarios (mapas de bits y SVG) y los archivos de fuentes personalizadas persisten en IndexedDB; cuando IndexedDB no está disponible (p. ej. algunos modos de navegación privada), aparece un aviso de almacenamiento no disponible en el panel Revisión (en Navegador)
- Permalink — El fragmento de la URL nombra lo que hay en pantalla, de modo que una recarga, un marcador o un enlace pasado a otra persona aterriza en la misma página del mismo libro en el mismo visor:
#preset=bioquimica-feduchi&lang=es&view=canvas&chapter=1&page=7abre el preset de Bioquímica en español en la pestaña Canvas, en el capítulo 1, página 7 (el número impreso en la página).viewescanvas,pdf,folio,htmloepub; en la pestaña Folio, la página es la de la derecha del pliego abierto. Un proyecto local se nombra comoproject=ID— su id de almacenamiento, así que solo el navegador que guarda el proyecto puede seguir ese enlace. El sandbox mantiene el fragmento al día al cambiar de libro, pestaña o capítulo y al desplazarte. Una parte omitida significa lo que haya (sin página: la primera del capítulo; sin libro: el último abierto), y un libro que el navegador no puede abrir se pasa por alto. Pegar un enlace en la barra de direcciones de un sandbox abierto lo abre en el sitio. Si la página se abre con un enlace a un libro distinto del último abierto, el sandbox muestra su estado de carga hasta que el libro enlazado está listo, nunca el anterior. Quien integra el sandbox puede enlazar también libros propios con la prophashBundles(consulta Props): la web abre una receta del Recetario con#recipe=<slug>&lang=es. La primera visita importa el archivo.postextde la receta como uno de tus libros. Una visita posterior con el mismo enlace pregunta antes (Ya tienes este libro): Abrir mi copia abre ese libro, con tus cambios, y Sustituir por la versión publicada vuelve a importar la receta, que puede haberse corregido después, y borra tu copia en cuanto la nueva está abierta; Escape conserva tu copia. Después el fragmento pasa a nombrar el proyecto. El idioma de la interfaz sigue en la ruta (/en/sandbox,/es/sandbox);langes el idioma del contenido de un paquete bilingüe, cualquier etiqueta BCP 47, que se conserva con las mayúsculas canónicas (lang=zh-hantse leezh-Hant). Una etiqueta que el paquete no lista abre la edición que le corresponde:zh-TWyzh-HKabren la de chino tradicional (zh-Hant),zhyzh-CNla de chino simplificado (zh-Hans),en-GBla inglesa. La otra escritura del chino solo se lee cuando el paquete no tiene edición en la del lector: un enlacezh-TWa un libro enzh-Hanse inglés abre el texto simplificado, no el inglés. Un enlace sinlangabre elopenLocaledel paquete si lo indica y, si no, la edición en el idioma de la interfaz. El capítulo y la página del enlace se aplican a la edición que abre, y el fragmento pasa a nombrarla con su propia etiqueta (lang=zh-TW&chapter=28queda enlang=zh-Hant&chapter=28).
Saltos de encabezado guardados con postext 1.4 o anterior. Hasta postext 1.4, una configuración con un objeto headings componía sus encabezados de nivel 1 sin salto de página salvo que fijara explícitamente el interruptor Romper antes de H1 (y al guardar se perdía un salto de H1 desactivado), un salto de H1 parcial completaba el campo que le faltaba con el valor sin salto, y el salto de un estilo de encabezado hacía lo mismo en lugar de combinarse con el de su nivel. El motor conserva ahora el valor por defecto de cada nivel — H1 abre en una página impar nueva (always-odd) — y combina con él un salto parcial. Para que un libro guardado entonces conserve sus páginas, el Sandbox escribe esos saltos al leer un registro de proyecto anterior a la versión 3 o una configuración de trabajo sin versión: enabled: false en H1 donde el salto estaba desactivado, y parity: 'any' junto a un enabled: true que no indicaba paridad, en H1 y en los estilos de encabezado. El panel Diseño muestra entonces el salto con el que se compusieron las páginas. Desde postext 1.5 los archivos también registran la versión: un archivo .postext cuyo manifiesto no tiene configVersion, y un postext-config.json sin ella, los escribió postext 1.4 o anterior, y se leen de la misma manera al importarlos o abrirlos (ver Paquetes escritos por postext 1.4 o anterior).
Tamaño de las fórmulas guardado antes de postext 1.5. Hasta postext 1.4, cada fórmula salía 1,131 veces más grande de lo que dice su Escala de tamaño (ver Tamaño de las fórmulas). Para que un libro guardado entonces conserve sus páginas, el Sandbox fija ese tamaño al leer un registro de proyecto anterior a la versión 4, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 4 o un postext-config.json exportado antes: la Escala de tamaño pasa a ser la escala guardada × 1,1312, y un margen de las fórmulas en bloque en em se divide por 1,1312, de modo que las fórmulas y el espacio a su alrededor quedan como estaban. Un libro cuyos capítulos no tienen ningún $ se queda como estaba (un postext-config.json no lleva capítulos, así que su tamaño se fija siempre que las matemáticas estén activadas), y también uno con Activar LaTeX desactivado. La sección Fórmulas muestra entonces los valores con los que se compone el libro; restablece Escala de tamaño, Margen superior de las fórmulas en bloque y Margen inferior de las fórmulas en bloque para componerlo al tamaño actual. La fijación se escribe una sola vez: el registro se vuelve a guardar con la versión actual y desde entonces se lee tal cual. Un preset aplicado entonces y nunca editado sigue contando como intacto (el Sandbox lo compara con sus valores fijados, y lo mismo vale para la fijación de los saltos de encabezado): recargarlo o cambiar de libro no pide descartar cambios que no hiciste, y una versión más nueva del preset, como la de la guía integrada, lo sigue sustituyendo.
Figuras en línea guardadas antes de postext 1.5. Hasta postext 1.4, una figura o tabla compuesta en línea en el texto (colocación En línea (aquí)) conservaba una línea de espacio solo encima: el texto que la seguía continuaba en la siguiente línea de la rejilla, por cerca que quedara. Ahora conserva la misma línea debajo (Columnas → Espacio en torno a las figuras en línea, Encima y debajo). Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Espacio en torno a las figuras en línea en Solo encima al leer un registro de proyecto anterior a la versión 5, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 5 o un postext-config.json exportado antes, cuando una línea del libro inserta un recurso —::resource{id="…"} sola en su línea, no una mención en el texto—. Un postext-config.json no lleva capítulos, así que en él se pone siempre que el archivo sea anterior. Elige Encima y debajo para componer el libro con el espaciado actual.
Figuras en línea de los recuadros guardadas antes de postext 1.5. Hasta postext 1.4, una figura o tabla compuesta en línea dentro de un recuadro quedaba pegada al texto del recuadro que la rodea. Ahora conserva encima una línea del texto del recuadro y, con Encima y debajo, también debajo (Columnas → Espacio en torno a las figuras de los recuadros). Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Espacio en torno a las figuras de los recuadros al leer un registro de proyecto anterior a la versión 6, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 6 o un postext-config.json exportado antes, cuando un recuadro del libro inserta un recurso en una línea propia. Un postext-config.json no lleva capítulos, así que en él se desactiva siempre que el archivo sea anterior. Actívalo para componer el libro con el espaciado actual.
Marcas de los títulos y letras capitulares guardadas antes de postext 1.5. Hasta postext 1.4, un título imprimía las palabras de su *cursiva*, su **negrita** y sus otras marcas con su propio estilo, sin marcas, y una letra capitular sin tamaño era tan alta como todas las líneas que abarca, con la parte alta por encima de la primera línea. Ahora un título compone sus marcas (Títulos → Marcas en línea en los títulos) y la parte alta de una capitular se enrasa con las mayúsculas de la primera línea. Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Marcas en línea en los títulos al leer un registro de proyecto anterior a la versión 6, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 6 o un postext-config.json exportado antes, cuando algún título del libro lleva una marca (un postext-config.json no lleva capítulos, así que en él se desactiva siempre que el archivo sea anterior); y escribe en el Tamaño de la capitular de cada letra el tamaño con el que se componía. Activa el interruptor, o borra el tamaño, para componer el libro con las reglas actuales. Ten en cuenta que un título en cursiva con todo el título marcado con *…* sale entonces en redonda.
Listas tras dos puntos guardadas antes de postext 1.5. Hasta postext 1.4, Mantener los dos puntos con la lista daba por bueno para la lista una línea de sitio bajo la línea que termina en dos puntos, así que un primer ítem de dos líneas que las reglas de huérfanas y viudas mantienen entero pasaba a la columna siguiente y dejaba sola al pie la línea de los dos puntos. Ahora pide el sitio que necesita el primer ítem (Tipografía → Texto base → Viudas, huérfanas y líneas cortas → Sitio bajo los dos puntos, El que necesita el primer ítem). Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Sitio bajo los dos puntos en Una línea (1.4) al leer un registro de proyecto anterior a la versión 6, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 6 o un postext-config.json exportado antes, cuando una lista del libro sigue a una línea que termina en dos puntos. Un postext-config.json no lleva capítulos, así que en él se pone siempre que el archivo sea anterior. Elige El que necesita el primer ítem para componer el libro con la regla actual.
Cortes de los recuadros guardados antes de postext 1.5. Hasta postext 1.4, un recuadro que se partía dentro de un párrafo o de un ítem de lista podía dejar una sola línea suya a un lado, siempre que cada lado del recuadro sumara sus Líneas a cada lado del corte. Ahora el corte deja al menos dos líneas del párrafo o del ítem a cada lado (Columnas → Líneas de un párrafo en el corte de un recuadro). Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Líneas de un párrafo en el corte de un recuadro en 1 al leer un registro de proyecto anterior a la versión 6, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 6 o un postext-config.json exportado antes, cuando algún capítulo del libro abre un :::callout. Un postext-config.json no lleva capítulos, así que en él se pone siempre que el archivo sea anterior. Vuelve a ponerlo en 2 para componer el libro con la regla actual.
Rayas y texto en bandera guardados antes de postext 1.5. Hasta postext 1.4, la ruptura de línea óptima nunca terminaba una línea tras una raya o una semirraya puesta entre dos palabras sin espacios (Madrid–Barcelona, I.—Que trata), y el texto en bandera se componía siempre línea a línea, llenando cada línea antes de pasar a la siguiente. Ahora una línea puede terminar tras esa raya (Tipografía → Texto base → Párrafos → Cortar tras raya), y el texto corrido en bandera también se compone con Knuth-Plass (Ruptura óptima del texto en bandera). Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Cortar tras raya al leer un registro de proyecto anterior a la versión 7, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 7 o un postext-config.json exportado antes, cuando algún capítulo del libro tiene una raya así (un postext-config.json no lleva capítulos, así que en él se desactiva siempre que el archivo sea anterior); y desactiva Ruptura óptima del texto en bandera cuando la configuración pone en bandera algún texto corrido: el texto base, un estilo de párrafo, el cuerpo de un recuadro, el de una parte o el de un estilo de sección. Actívalos para componer el libro con las reglas actuales.
Divisiones bajo un título guardadas antes de postext 1.5. Hasta postext 1.4, el párrafo que sigue a un título al pie de una columna conservaba allí todas las líneas que cupieran, aunque pasaran muy pocas a la columna siguiente. Ahora respeta también el mínimo de huérfanas, o el título pasa a la columna siguiente con él (Títulos e índice → Títulos → División bajo un título). Para que un libro guardado entonces conserve sus páginas, el Sandbox pone División bajo un título en Llenar la columna al leer un registro de proyecto anterior a la versión 8, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 8 o un postext-config.json exportado antes, cuando algún capítulo del libro tiene un título (un postext-config.json no lleva capítulos, así que en él se fija siempre que el archivo sea anterior) y la configuración mantiene activados No dejar títulos sueltos y el control de huérfanas. Ponlo en Según las reglas para componer el libro con la regla actual.
Contenedores de párrafos guardados antes de postext 1.5. Hasta postext 1.4, el espacio bajo un contenedor :::paragraphs era el del propio estilo (el mayor entre su espacio entre párrafos y su margen inferior), puesto bajo la última línea antes de que el texto volviera a la rejilla; el espacio que un encabezado deja sobre sí se sumaba debajo, y la separación entre párrafos del texto base no contaba, así que un encabezado quedaba más lejos de una bibliografía que de un párrafo, y el párrafo que seguía a un grupo de entradas apretadas quedaba más pegado a él que a cualquier otro. Ahora ese espacio se funde con el del bloque siguiente y es al menos la separación entre párrafos del texto (Tipografía → Estilos de párrafo → Espacio bajo un contenedor, Fusionar). Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Espacio bajo un contenedor en Sumar (1.4) al leer un registro de proyecto anterior a la versión 8, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 8 o un postext-config.json exportado antes, cuando la configuración declara algún estilo de párrafo y algún capítulo del libro abre un contenedor :::paragraphs. Un postext-config.json no lleva capítulos, así que en él se pone siempre que el archivo sea anterior y declare algún estilo de párrafo. Elige Fusionar para componer el libro con la regla actual.
Compuestos guardados antes de postext 1.5. Hasta postext 1.4, la ruptura de línea óptima nunca terminaba una línea justificada tras el guion de un compuesto (físico-química) en un párrafo sin negritas, cursivas ni otro formato, y sí lo hacía en uno con formato. Ahora una línea puede terminar ahí en todo párrafo (Tipografía → Texto base → Párrafos → Cortar tras guion). Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Cortar tras guion al leer un registro de proyecto anterior a la versión 8, una configuración de trabajo guardada con una marca anterior (o sin ella), un archivo .postext cuyo manifiesto es anterior a configVersion: 8 o un postext-config.json exportado antes, cuando algún capítulo del libro tiene un guion entre dos letras (un postext-config.json no lleva capítulos, así que en él se desactiva siempre que el archivo sea anterior). Actívalo para componer el libro con la regla actual.
Poemas y estilos con sangría francesa guardados antes de postext 1.23. Hasta postext 1.22 un poema :::verse cuyas líneas no llevaban || se componía en hemistiquios sueltos, cada línea centrada, y la sangría francesa de un estilo de párrafo sustituía a su sangría de primera línea. Ahora un poema así se compone línea a línea (Tipografía → Texto base → Verso → Poemas sin separador, Línea a línea), y un estilo que fija las dos sangrías empieza la primera línea en la de primera línea. Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Poemas sin separador en Como hemistiquios (1.22) cuando lee un registro de proyecto anterior a la versión 9, una configuración de trabajo o una exportación postext-config.json marcada por debajo de 9 cuyos capítulos tengan un poema así, y quita la sangría de primera línea de un estilo que también cuelga. También desactiva Saltos de línea forzados (Tipografía → Texto base → Párrafos) cuando los capítulos de ese registro terminan una línea con una barra invertida o ponen \\ ante un espacio, que hasta postext 1.22 se imprimían (en una exportación postext-config.json, que no lleva capítulos, siempre). Y desactiva Bloques de código (Tipografía → Código) cuando los capítulos tienen una valla ``` o ~~~, cuyas líneas se leían como Markdown hasta postext 1.22 (en una exportación, siempre).
Poemas guardados con postext 1.23. En postext 1.23 un verso de un poema compuesto verso a verso que fuera aunque sea un poco más ancho que la caja se partía. Ahora aprieta sus espacios entre palabras, hasta el espaciado mínimo, y cabe en una línea cuando eso basta (Tipografía → Texto base → Verso → Apretar antes de partir). Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Apretar antes de partir cuando lee un registro de proyecto, una configuración de trabajo o una exportación postext-config.json marcados con 9 o menos cuyos capítulos componen un poema verso a verso (en una exportación, que no lleva capítulos, siempre).
Textos de diseño guardados con postext 1.23. Hasta postext 1.23 un elemento de texto de un diseño de título o de una página de parte que no fijaba el desbordamiento se cortaba en una línea con puntos suspensivos. Ahora pasa a más líneas, y Añadir texto deja el Desbordamiento en manos del hueco. Para que un libro guardado entonces conserve sus páginas, el Sandbox pone Desbordamiento en Elipsis al final (…) en cada uno de esos elementos al leer un registro de proyecto, una configuración de trabajo, un archivo .postext o una exportación postext-config.json con sello 9 o inferior.
Tablas en línea y columnas guardadas con postext 1.24. Hasta postext 1.24 una tabla colocada here que no cabía en lo que quedaba de su columna pasaba entera a la siguiente, una valla :::columns fuera de un recuadro se ignoraba y un recuadro nunca cortaba dentro de un grupo :::columns. Ahora la tabla se corta entre filas, y el grupo compone sus bloques en columnas y sigue en la columna o la página siguiente. Para que un libro guardado entonces conserve sus páginas, el Sandbox desactiva Aplicar a las tablas colocadas en el texto (Tablas) cuando lee un registro de proyecto, una configuración de trabajo o una exportación postext-config.json con sello inferior a 11 cuyos capítulos insertan un recurso, y Columnas en el texto y grupos que se parten (Columnas) cuando tienen una valla :::columns (en una exportación, que no lleva capítulos, siempre).
Estas fijaciones evitan lo que movería cada uno de esos cambios de reglas. La 1.5 corrige además errores de composición, y una corrección no tiene fijación, así que en un libro guardado aún puede moverse alguna página donde se aplique: la banda de un título de capítulo a toda la página sin diseño, una capitular en un diseño de título, un párrafo dentro de un recuadro, un párrafo flojo que estira el equilibrado de columnas, un recuadro flotante con un margen mayor que una línea, un titulillo centrado o a la derecha con tracking, la segunda columna bajo una apertura a toda la página, un titulillo tomado de un título cortado tras un guion, una palabra más ancha que su línea cortada junto a su propio guion, el resto de una palabra más ancha que su línea, que ahora conserva sus propios puntos de corte, el ítem que sigue a una lista anidada en otra (la lista está en Tamaño de las fórmulas).
El almacenamiento se comparte entre los idiomas de la interfaz. Un documento por defecto intacto cambia al markdown por defecto del idioma actual y vuelve a sembrar los recursos de ejemplo cuando cambia el idioma — así, abrir el sandbox en español muestra ejemplos en español. Cualquier edición del usuario desactiva este comportamiento. Todas las vistas previas derivan además la configuración regional de separación silábica del idioma de la interfaz cuando la configuración no nombra ningún idioma (ni uno de separación silábica ni locale).
#Exportar e importar
Un libro completo viaja como archivo .postext: un zip con exactamente la estructura de un directorio de paquete de preset — preset.json, chapters/*.md, resources/* y fonts/* (consulta Formato de paquete de preset). El archivo lleva además la paginación del libro como layouts.json — el número de páginas y la numeración de cada capítulo, marcados con la versión del motor, la configuración y los recursos con los que se calculó —, de modo que un libro importado se abre paginado y solo se vuelve a componer lo que esas marcas ya no avalan. Un paquete en varios idiomas compone cada uno con su propia configuración, así que puede llevar en su lugar una por idioma, layouts.<idioma>.json (layouts.zh-Hant.json), que se lee antes que layouts.json. El documento activo exporta la paginación que tiene en memoria; un proyecto o un preset exportado desde su fila lleva la registrada la última vez que fue el documento de trabajo. La portada se escribe como el thumbnail del manifiesto, así que sobrevive al viaje de ida y vuelta. El menú Nuevo del panel Libros (Abrir un archivo .postext…) importa un archivo como libro nuevo; el menú ⋯ de cada fila tiene su propio Descargar (.postext), y el del libro abierto exporta el documento de trabajo. La importación acepta los archivos en la raíz del zip o bajo una única carpeta de primer nivel (como al comprimir la propia carpeta; las entradas __MACOSX y los archivos ocultos se ignoran). Las fuentes se escriben como archivos separados, nunca dentro de config.customFonts; las caras .woff se omiten con un aviso en ambos sentidos, igual que los recursos cuyos bytes faltan. Descomprime un archivo exportado en <raíz-de-presets>/<dir>/ y añade una entrada en index.json para servirlo como preset. Los archivos escritos por versiones anteriores (un manifiesto versión 1 con un único document.md) se importan como libro de un capítulo. Un libro en un solo idioma conserva los rótulos de figuras y tablas de ese idioma, sea cual sea el de la interfaz: un archivo en inglés abierto desde /es/sandbox imprime Figure y Table, salvo que su configuración nombre otros tipos de recurso. El idioma es el que nombra el archivo o, si no nombra ninguno, el que fija su configuración (locale y, si falta, el de la separación silábica).
El paquete postext lee y escribe estos mismos archivos (openBundle, createBundle, buildBundle; consulta Paquetes). Un libro exportado aquí se abre en tu propio programa, y un libro que escribe tu programa se abre aquí. Eso convierte al Sandbox en el lugar donde revisar y ajustar lo que compone un programa: expórtalo desde el programa, impórtalo aquí, corrígelo con la vista previa en vivo, vuelve a exportarlo y cárgalo de nuevo en el programa. El skill para agentes también entrega sus adaptaciones como archivos .postext.
El texto y el diseño también se exportan por separado desde las cabeceras de los paneles Texto y Diseño.
La cabecera del panel Diseño descarga postext-config.json con los valores por defecto eliminados:
{
"type": "postext-config",
"version": 1,
"config": { ... }
}La cabecera del panel Texto descarga el capítulo activo como un archivo .md y su botón Importar sustituye el capítulo activo por el contenido de un archivo .md. El botón Importar del panel Diseño abre un selector de archivos .json validados contra el type y la version esperados; los archivos inválidos se ignoran silenciosamente. El envoltorio postext-markdown.json y el formato combinado postext-sandbox.json de versiones anteriores ya no existen.