Pular para o conteúdo principal

Capítulo 12.3 · Parte III · Na prática

Sandbox: livros, arquivos do Word e salvamento

Livros e capítulos, edição de páginas de quadrinhos, importação e exportação de documentos do Word, e como o Sandbox salva, exporta e importa o seu trabalho

Atualizado 2026-10-1637 minNo capítulo 12 Sandboxenescadefritptzhjaar

Em poucas palavras

Esta página trata de como você organiza e guarda o seu trabalho no Sandbox. Um projeto é um livro feito de capítulos. As páginas de quadrinhos têm ferramentas próprias para os quadros e as falas. Você pode trazer um arquivo do Word, escolher em quais estilos do Postext os estilos dele se transformam e mandar o livro de volta para o Word. O trabalho é salvo no seu próprio navegador à medida que você avança, e você pode baixá-lo como um só arquivo e abri-lo de novo depois.

#Livros e capítulos

Tudo o que você abre no Sandbox é um livro, do mesmo jeito que um arquivo de livro do InDesign agrupa um documento por capítulo: a configuração, as fontes personalizadas e o conjunto de recursos são compartilhados pelo livro inteiro, e cada capítulo é um documento markdown próprio. Obras longas, como um livro didático de quinhentas páginas, são editadas um capítulo por vez, enquanto a numeração, as referências cruzadas e a exportação continuam vendo um único documento.

  • A estrutura fica no painel Capítulos e no seletor de capítulos do painel Texto: adicionar, renomear (clique duplo em uma linha), reordenar, dividir um capítulo em um por título de nível 1, juntar um capítulo ao anterior, excluir. Cada capítulo mantém o seu próprio histórico de desfazer e o seu cursor.
  • Um capítulo por vez. Por padrão, as visualizações diagramam o capítulo ativo, continuado depois dos capítulos anteriores: o número da sua primeira página segue a última página do capítulo anterior, os títulos de nível 1 continuam a contagem (o capítulo 4 recebe o número 4, as suas figuras 4.1, 4.2, …), os cabeços {chapterNumber} e {chapterTitle} acompanham, a paridade recto/verso é mantida (uma abertura de capítulo acrescenta uma página em branco exatamente como faria no meio do livro), e um :ref a uma figura mencionada pela primeira vez no capítulo 1 mantém esse número. As contagens de páginas dos capítulos anteriores vêm da diagramação que mostrou cada um deles por último; os capítulos nunca visitados (ou editados desde então) são diagramados em segundo plano, um depois do outro, e a lista de capítulos mostra páginas pendentes até que eles cheguem. Os intervalos de páginas são exatos para capítulos que abrem em página nova (o padrão); um capítulo cujo texto continuaria a partir da página anterior é colocado no alto da sua própria página.
  • Livro inteiro. O canvas, a visualização HTML e a aba PDF podem mostrar o livro inteiro como um único documento contínuo: escolha Livro inteiro no seletor à esquerda da barra de abas (em livros com mais de um capítulo). O canvas então diagrama todos os capítulos em ordem, cada um depois das páginas a que os anteriores chegaram, e mostra os documentos emendados. Uma edição diagrama de novo apenas o seu capítulo, e os capítulos seguintes só quando a primeira página deles mudou de lugar; a lista de capítulos, as partes chapter= e page= do permalink e a sincronização com o editor seguem o capítulo da página. A escolha fica guardada com o livro (um romance curto se lê como um único documento, um livro didático um capítulo por vez), e uma predefinição pode abrir assim por meio do view.canvasScope do manifesto. A visualização HTML compartilha a escolha do canvas e diagrama o livro inteiro como um único documento a partir da primeira página, com as linhas do sumário e o fragmento seguindo o capítulo de cada página; a aba PDF mantém o seu próprio seletor.
  • Livros longos. Um livro de 120 capítulos funciona como um curto. O menu de capítulos no cabeçalho do painel Texto rola dentro da janela e abre no capítulo ativo; as setas se movem a partir dele. Um livro dividido em partes (blocos :::part nos seus capítulos) lista os capítulos sob as suas partes, no menu e no painel Capítulos, e um clique em uma parte no menu abre o primeiro capítulo dela. Acima de 30 capítulos, o menu tem um campo de busca no alto que encontra números de capítulo (27) e palavras dos títulos e dos nomes das partes (埋香, 卷三); Enter abre o primeiro resultado. Enquanto um método de entrada está compondo (Zhuyin, Cangjie, pinyin, kana), o Enter e as setas pertencem a ele: o Enter confirma a conversão e não abre nada. Os arquivos de capítulo de um livro de exemplo carregam de oito em oito, e enquanto os capítulos são paginados em segundo plano o painel Capítulos mostra o progresso (Paginando 34/120). O canvas e a visualização HTML mostram um livro de mais de 200 capítulos um capítulo por vez, seja o que for que o livro ou o seu manifesto peçam: diagramar todos os capítulos de uma vez mantém o livro inteiro na memória. Um livro abaixo disso pode abrir inteiro: 紅樓夢 (129 capítulos, umas 2.000 páginas) leva cerca de 25 segundos e 100 MB no canvas. A aba PDF continua podendo exportar qualquer livro inteiro.
  • Front matter. O front matter do primeiro capítulo é o front matter do livro (título, autor, …). Um bloco de front matter no alto de qualquer outro capítulo é ignorado, e o painel Verificações avisa. O buildBundle segue a mesma regra, então um livro é renderizado da mesma forma no Sandbox e no seu próprio programa.
  • Contagens de páginas. Cada capítulo é diagramado como um documento próprio, então {totalPages} conta as páginas do capítulo. {bookTotalPages} conta o livro inteiro: assim que as páginas de todos os capítulos são conhecidas, as visualizações diagramam cada capítulo com esse total (só quando um cabeçalho, um rodapé ou um design o imprime). Até lá, um capítulo imprime as páginas até o seu próprio fim. O Livro inteiro da aba PDF conta as páginas que diagrama, então o arquivo sempre imprime o total real do livro.
  • Aberturas de capítulo. Nenhuma quebra de página é forçada entre capítulos: um capítulo cujo primeiro bloco é um título de nível 1 abre em página nova pela própria configuração de quebra antes do título, exatamente como um capítulo que começa no meio do documento.
  • Sincronização. Clicar em um parágrafo de qualquer capítulo na visualização Canvas ou HTML leva o editor para aquele capítulo e posiciona o cursor; o cursor do editor fica destacado nas visualizações onde quer que o capítulo esteja no livro. Os avisos indicam o seu capítulo.
  • Documentos existentes abrem como um livro com um capítulo; nada muda até que um segundo capítulo seja adicionado.

#Editar quadrinhos

Um capítulo com páginas de quadrinhos (:::page) ou tiras (:::strip) pode ser editado nas próprias páginas, na aba Canvas, na aba HTML e no modo de seleção do Folio. As ferramentas funcionam do mesmo modo em uma tira composta em uma coluna, flutuando no alto de uma página ou atravessando-a, mais estreita que a sua medida ou sob uma legenda, e gravam no bloco da própria tira. Cada mudança é gravada no Markdown do capítulo, como seria uma edição digitada, então o desfazer do editor a reverte. A marcação e as regras de letreiramento estão explicadas em Quadrinhos.

  • Divisores. Sobre a sarjeta entre dois quadros, o ponteiro vira um cursor de redimensionamento. Arraste-o para mover a linha de divisão; ao soltar, a nova porcentagem é gravada no atributo split da página (acrescentado ao bloco quando a página não tem um) e a página é diagramada de novo. Shift encaixa a linha em passos de 5 %, Alt move só a ponta mais próxima do ponteiro, inclinando a linha, e nenhum quadro fica mais estreito que 5 %. Enquanto você arrasta, um quadro cuja imagem deixaria de manter a sua área segura à vista é marcado, com uma dica. Cada divisor também é um separador que recebe foco: as setas o movem 1 % (5 % com Shift), Enter grava a posição e Escape a devolve ao lugar.
  • Dividir e juntar. Sobre um quadro, uma pequena barra de ferramentas oferece Dividir com uma linha horizontal, Dividir com uma linha vertical (uma linha ::panel vazia é acrescentada para a nova célula, logo depois deste quadro) e Juntar com o próximo quadro: a linha entre eles some, e o quadro resultante mantém a imagem do primeiro quadro e recebe as linhas de roteiro dos dois. Os quadros também podem ser alcançados com Tab: um quadro em foco ganha contorno, H o divide com uma linha horizontal, V com uma vertical, e M o junta com o próximo quadro; o foco fica no quadro depois que a página é diagramada de novo. Enter abre a barra de ferramentas, e Escape volta dela para o quadro.
  • Balões. Arraste um balão para fixá-lo: ao soltar, a sua linha de roteiro recebe at="x% y%", o ponto em porcentagens da imagem do quadro (da célula, para um quadro sem imagem), de modo que o balão fica no mesmo ponto do desenho apesar de recortes, arrastes de divisores e traduções. Um grupo unido se move inteiro, fixado pelo seu primeiro balão. As setas deslocam um balão em foco 1 % (5 % com Shift), e um clique duplo em um balão fixado remove o seu at, devolvendo-o à colocação automática. Um clique simples coloca o cursor do editor na linha do balão.
  • Dica de transbordamento. Enquanto um balão se move, pelo ponteiro ou pelas setas, a visualização verifica onde ele cairia. Se ele cobrir um rosto ou uma zona a evitar, ou sair do quadro mais do que já sai, o contorno em movimento fica laranja, os rostos e as zonas a evitar do quadro são desenhados tracejados, e a dica diz qual é o caso: Aqui cobriria um rosto, Aqui cobriria uma parte da imagem mantida livre, Aqui sairia do quadro. Uma linha com break não é sinalizada por sair do seu quadro. A dica não prevê como os outros balões do quadro vão se mover para abrir espaço.
  • Rabichos. Sobre a ponta de um rabicho, o ponteiro vira uma mira. Arraste a ponta para onde o rabicho deve apontar: ao soltar, a linha recebe to="x% y%", o ponto em porcentagens da imagem do quadro, e o rabicho se vira para ele, parando um pouco antes, como faz diante de uma boca. Escape cancela o arraste, e um clique duplo na ponta remove to, de modo que o rabicho volta a apontar para o seu personagem. Pelo teclado, T em um balão em foco passa para o seu rabicho: as setas movem o ponto para onde ele aponta 1 % (5 % com Shift), Enter o grava, Escape o devolve ao lugar, Delete remove to, e T volta ao balão.
  • Personagens e zonas a evitar. Em uma imagem no painel Recursos, o campo Área segura e letreiramento abre uma caixa de diálogo com três modos. Área segura marca a parte da imagem que precisa ficar à vista. Personagens coloca um ponto por personagem: um clique na imagem acrescenta ali um personagem e põe o foco no seu id, que deve ser a chave de personagem usada no roteiro (maya: …); a boca, a cabeça (para onde apontam os balões de pensamento) e o rosto (nunca coberto por um balão) são arrastados até o lugar. Zonas a evitar são retângulos que nenhum balão cobre, desenhados arrastando sobre a imagem. No mesmo modo se marcam os rostos de quem não fala (Adicionar rosto de quem não fala, ou a chave É um rosto na linha de uma zona): nenhum balão cobre um rosto assim, enquanto uma zona a evitar cede quando o quadro não tem outro lugar. Toda marca pode ser movida com as setas (Shift para passos maiores) e removida com Delete; a caixa de diálogo tem o seu próprio desfazer, e um personagem fora da área segura é sinalizado.
  • Configurações. O grupo Quadrinhos do painel Design reúne a configuração dos quadrinhos: o sentido de leitura e as imagens espelhadas, a moldura e as sarjetas, o quadro padrão e os estilos de quadro com nome, o letreiramento e os estilos de balão, cada um com uma visualização do seu contorno.
  • Editor e verificações. O editor de texto colore :::page, :::strip, as linhas ::panel e as chaves e os atributos das linhas de roteiro. O painel Verificações lista os avisos de quadrinhos (uma divisão ilegível, quadros e células que não coincidem, um balão que não cabe…) na linha a que se referem; veja Quadrinhos › Avisos de quadrinhos.

#Documentos do Word

Os originais costumam chegar como arquivos do Word. O painel Texto importa um .docx diretamente, sem agentes de IA e sem instalar nada, e mapeia os estilos dele como faz o comando Inserir do InDesign. Importar um documento do Word lê o arquivo no navegador (ele nunca é enviado) e abre uma caixa de diálogo; o livro só muda quando você clica em Importar. Um arquivo que não é um documento do Word, como um .doc binário antigo, é recusado com uma mensagem que diz isso; salve-o antes no Word como .docx.

A caixa de diálogo tem estas partes, e cada uma pode ser recolhida:

  • Qualidade do original. Um diagnóstico de como o original foi preparado: Estilos bem aplicados (a conversão sai limpa), Estilos aplicados em parte (alguns parágrafos têm formatação feita à mão) ou Sem estilos (tudo está em Normal, então o texto entra como parágrafos simples). Abaixo, as contagens (parágrafos, quantos estão em um estilo diferente de Normal, imagens, tabelas, notas) e o que foi encontrado, cada item com as primeiras palavras de alguns parágrafos em que ele aparece: parágrafos com formatação feita à mão (fontes, tamanhos, cores, alinhamento; ela é descartada, porque quem a define é o design), parágrafos curtos em negrito que parecem títulos digitados à mão, números ou marcadores digitados em vez de listas do Word, quebras de linha manuais, quebras de página manuais, parágrafos vazios usados para dar espaço, tabulações e espaços duplos, alterações controladas (as inserções são mantidas e as exclusões, descartadas; aceite-as ou rejeite-as antes no Word), comentários (não são importados), caixas de texto (o texto de cada uma entra depois do parágrafo ao qual ela está ancorada), equações (convertidas para TeX; confira-as), texto oculto e imagens em formatos que o navegador não consegue mostrar (EMF, WMF, TIFF).
  • Modelo de importação. O mapeamento em uso: Automático (pelo nome do estilo), um modelo salvo ou, num arquivo exportado pelo Sandbox, Salvo neste documento. Salvar como novo modelo pede um nome e guarda o mapeamento no navegador, com todos os estilos deste documento; Salvar alterações atualiza o modelo selecionado; o botão de download grava o modelo como um arquivo .json e o de upload carrega um, de modo que uma equipe inteira pode compartilhar o mesmo modelo. Excluir um modelo pede confirmação. O último modelo usado é oferecido primeiro na vez seguinte.
  • Estilos de parágrafo. Cada estilo de parágrafo que o documento usa, com quantos parágrafos o usam e as primeiras palavras de um deles, e o que ele vira: Texto do corpo, Título (um nível de 1 a 6 e, se o design tiver estilos de título, um deles), Estilo de parágrafo (um dos estilos de parágrafo do design; os parágrafos consecutivos nesse estilo formam um grupo :::paragraphs), Boxe (os parágrafos consecutivos formam um boxe desse tipo), Título de boxe (abre um boxe com o texto do parágrafo como título), Citação, Legenda da imagem ou tabela vizinha, Início de um novo capítulo, Markdown do Postext, como está escrito (o texto é copiado como está, para diretivas digitadas no Word) ou Descartar. Os parágrafos das listas numeradas e com marcadores do Word viram listas do Postext, qualquer que seja o estilo deles, com a numeração e o aninhamento. Poema (:::verse, linha a linha) compõe os parágrafos do estilo como um poema :::verse, se quiser num dos estilos de parágrafo do design: Shift+Enter quebra um verso, um parágrafo é uma estrofe, vários parágrafos de uma linha seguidos formam uma estrofe e um parágrafo vazio separa estrofes; é sugerido para estilos chamados Verso, Poema ou Poesia.
  • Estilos de caractere. O mesmo para os estilos de caractere: Texto sem formatação, Negrito, Itálico, Negrito itálico, Versaletes, Sobrescrito, Subscrito, Chip (um dos estilos de chip do design), Markdown do Postext, como está escrito ou Descartar.
  • Opções. As quebras de linha manuais (Shift+Enter) são mantidas como quebras dentro do parágrafo (uma barra invertida no fim da linha de Markdown, o padrão), unidas com um espaço ou começam um novo parágrafo; o negrito, o itálico, os versaletes, os sobrescritos e os subscritos aplicados à mão são mantidos ou descartados; os parágrafos curtos em negrito continuam parágrafos ou viram títulos de um nível; as quebras de página manuais são descartadas (o design decide onde a página muda) ou mantidas como :::pagebreak; as imagens e as tabelas são adicionadas como recursos ou não.
  • Visualização do Markdown, atualizada à medida que o mapeamento muda.

O rodapé da caixa de diálogo escolhe para onde vai o texto: Substituir este capítulo, Novos capítulos depois deste ou Substituir o livro inteiro; as duas últimas opções começam um capítulo em cada título de nível 1. As imagens (PNG, JPEG, GIF, WebP, SVG) viram recursos de figura e as tabelas, recursos de tabela (com as linhas de cabeçalho, as células mescladas, as larguras das colunas e os preenchimentos das células); cada recurso é posto com ::resource{id="…"} onde estava e recebe como legenda o parágrafo de legenda vizinho, sem o rótulo digitado à mão (Figura 3.), porque o Postext numera os recursos. As notas de rodapé e as notas de fim viram notas de rodapé do Postext ([^1]), as entradas de índice do Word (campos XE) viram marcas :index, os links continuam links e as equações viram $…$ / $$…$$. Uma tabulação no texto corrido vira :tab com a parada que o Word definiu para ela (:tab{at=432pt align=end leader="."}), ou um :tab simples quando o parágrafo vai para um estilo de parágrafo do livro que tem paradas próprias; os preenchimentos de pontos, de hifens e de pontos médios do Word viram ., - e ·, e os de sublinhado e de traço grosso, uma linha. Uma tabulação num título, numa célula de tabela ou numa nota vira um espaço.

Antes de associar estilos pelo nome, o mapeamento automático reconhece os papéis do próprio Word em qualquer idioma da interface (Título 1–6, Título, Citação, Legenda; os parágrafos de sumário, índice, cabeçalho e rodapé são descartados) e os estilos do design: um estilo do Word com o mesmo nome de um estilo de parágrafo, tipo de boxe, estilo de título ou estilo de chip do livro (pelo id ou pelo nome, sem diferenciar maiúsculas nem acentos) é mapeado para ele.

Exportar para o Word baixa o capítulo aberto, ou o livro inteiro, como um .docx para alguém trabalhar no Word. O mesmo modelo é aplicado no sentido inverso: os títulos recebem os estilos de título do Word; os estilos de parágrafo, os boxes, as citações e os chips recebem estilos do Word próprios (com o nome dos estilos do design: Boxe: Nota, Chip: Tecla); as listas viram listas do Word, as notas de rodapé viram notas de rodapé do Word e os links continuam links. :tab vira uma tabulação do Word, um :tab{…} com parada própria é mantido como está escrito, e as paradas de tabulação de um estilo de parágrafo definidas por um comprimento viram as paradas de tabulação do seu estilo do Word, com o preenchimento do Word mais próximo (uma parada em 'end' ou numa porcentagem depende da página em que o Word compõe o texto, e fica de fora). O que o Word não consegue mostrar (o front matter, as cercas de código, as diretivas, :ref, a matemática, as marcas :index, as linhas de recurso) é mantido como está escrito, nos estilos cinza Postext Markup. Um livro é exportado com um parágrafo Postext Chapter no início de cada capítulo. O modelo vai dentro do arquivo, então o documento editado é importado de novo com o mesmo mapeamento, como livro inteiro quando contém parágrafos de capítulo. Se você deixar o texto cinza como está, o texto volta como saiu; os rótulos das notas de rodapé são renumerados ([^1], [^2]…), o que imprime igual, e _italic_ volta como *italic*.

Para as conversões que esta caixa de diálogo não cobre (originais em PDF, PowerPoint, EPUB ou IDML, ou reproduzir as regras de diagramação de um original), use a skill para agentes.

#Persistência

O Sandbox salva automaticamente o seu trabalho no navegador:

  • Livro e configuração: os capítulos, o capítulo ativo e a abrangência do canvas são salvos automaticamente no localStorage sob postext-sandbox-book (um documento único salvo por uma versão anterior é lido de postext-sandbox-markdown como um livro de um capítulo e migrado no primeiro salvamento); a configuração é salva depois de 1 segundo de inatividade, sem os valores padrão, de modo que só as suas alterações ficam guardadas, junto com a sua versão (postext-sandbox-config-version); uma configuração salva antes de existir a versão é lida como descrito em Quebras de título salvas pelo postext 1.4 ou anterior, mais abaixo
  • Estado da interface: o painel e a aba de visualização ativos, a largura da barra lateral, o grupo aberto do painel Design (postext-sandbox-settings-group), a sua chave Mostrar todas as explicações (postext-sandbox-settings-help) e o estado aberto ou fechado das seções, os livros de exemplo ocultos, os modos de zoom, ajuste e exibição do canvas, a escala da fonte e o modo de coluna do HTML, a diagramação da aba EPUB (postext-sandbox-epub-layout) e o estado fixado das barras de ferramentas ficam todos guardados no localStorage
  • Livro aberto: o id do livro seu que está aberto (um projeto) fica guardado no localStorage sob postext-sandbox-project; os projetos em si (capítulos, configuração e registros de recursos; registro version: 9, o CONFIG_VERSION do motor, que também carimba a configuração de trabalho e as exportações postext-config.json, para que cada um seja migrado uma vez quando as regras do motor mudam; os registros de documento único de versões anteriores são migrados ao serem lidos, e as quebras de título dos registros anteriores à versão 3, o tamanho das fórmulas dos registros anteriores à versão 4, o espaço sob as figuras na linha dos registros anteriores à versão 5, o espaço em torno das figuras na linha dentro de boxes, as marcas nos títulos, os tamanhos de capitular, o espaço sob uma linha com dois-pontos e os cortes de boxe dos registros anteriores à versão 6, as quebras em travessões e a quebra do texto em bandeira dos registros anteriores à versão 7, e as divisões sob um título, as quebras nos hífens de palavras compostas e o espaço sob os contêineres :::paragraphs dos registros anteriores à versão 8 são fixados como descrito abaixo) ficam no armazenamento projects do banco de dados IndexedDB do Sandbox, e os seus conteúdos binários compartilham os armazenamentos de blobs e de fontes com o documento de trabalho. Os conteúdos são removidos pela coleta de lixo quando nem o documento de trabalho nem nenhum projeto faz referência a eles
  • Livros de exemplo editados: a sua versão de um livro de exemplo (os capítulos, o capítulo ativo, a abrangência do canvas, a configuração e os registros de recursos, com o que o exemplo aplicou quando você o abriu) é salva no armazenamento presetDrafts do banco de dados IndexedDB do Sandbox, um registro por exemplo e idioma do conteúdo, e os seus arquivos são preservados pela coleta de lixo como os de um projeto. Restaurar o original o exclui
  • Capas dos livros de exemplo: a capa tirada da primeira página de um livro de exemplo que não traz miniatura fica no armazenamento presetCovers do banco de dados IndexedDB do Sandbox, um registro por exemplo e idioma do conteúdo (veja Painel Livros). Um livro seu guarda a capa no seu registro de projeto.
  • Salvar ao sair: as edições pendentes são gravadas na hora quando a página é ocultada ou fechada, quando você sai do Sandbox por um link (o logotipo) e antes que outro livro abra, em vez de esperar a pausa de 1 segundo
  • Livro de exemplo aberto: o id da última predefinição carregada fica guardado no localStorage sob postext-sandbox-preset, para que os botões Redefinir dos painéis continuem restaurando essa predefinição entre sessões (uma predefinição que deixou de ser servida aparece como indisponível). O que essa predefinição aplicou (a impressão digital do seu pacote mais os hashes do markdown, da configuração e do conjunto de recursos) fica guardado sob postext-sandbox-preset-applied, e é assim que a visita seguinte distingue um documento intocado de um editado
  • Recursos e fontes: os registros de recursos, os seus blobs binários (bitmaps e SVGs) e os arquivos de fonte personalizados persistem no IndexedDB; quando o IndexedDB não está disponível (por exemplo, em alguns modos de navegação privada), um aviso de armazenamento indisponível aparece no painel Verificações (em Navegador)
  • Permalink: o fragmento da URL indica o que está na tela, então uma recarga, um favorito ou um link passado a outra pessoa chega à mesma página do mesmo livro no mesmo visualizador: #preset=bioquimica-feduchi&lang=es&view=canvas&chapter=1&page=7 abre a predefinição Bioquímica em espanhol na aba Canvas, no capítulo 1, página 7 (o número impresso na página). view é canvas, pdf, folio, html ou epub; na aba Folio a página é a da direita da página dupla aberta. Um projeto local é indicado como project=ID, o seu id de armazenamento, então só o navegador que tem o projeto consegue seguir esse link. O Sandbox mantém o fragmento atualizado enquanto você troca de livro, de aba e de capítulo e enquanto rola a página. Uma parte omitida significa o que estiver ali (sem página: a primeira página do capítulo; sem livro: o último aberto), e um livro que o navegador não consegue abrir é ignorado. Colar um link na barra de endereços de um Sandbox aberto o abre ali mesmo. Quando a página é aberta por um link para um livro diferente do último aberto, o Sandbox mostra o estado de carregamento até o livro do link chegar, nunca o anterior. Um hospedeiro também pode criar links para livros próprios com a prop hashBundles (veja Props): o site abre uma receita das Receitas com #recipe=<slug>&lang=es. A primeira visita importa o arquivo .postext da receita como um dos seus livros. Uma visita posterior pelo mesmo link pergunta antes (Você já tem este livro): Abrir minha cópia abre esse livro, com as suas edições, e Substituir pela versão publicada importa a receita de novo, que pode ter sido corrigida desde então, e exclui a sua cópia assim que a nova estiver aberta; Escape mantém a sua cópia. O fragmento passa então a indicar o projeto. O idioma da interface fica no caminho (/en/sandbox, /es/sandbox); lang é o idioma do conteúdo de um pacote bilíngue, qualquer tag BCP 47, mantida com a capitalização canônica (lang=zh-hant é lido como zh-Hant). Uma tag que o pacote não lista abre a edição que a atende: zh-TW e zh-HK abrem a edição em chinês tradicional (zh-Hant), zh e zh-CN a simplificada (zh-Hans), en-GB a inglesa. A outra escrita chinesa só é lida quando o pacote não tem edição na do leitor: um link zh-TW para um livro em zh-Hans e em inglês abre o texto simplificado, não o inglês. Um link sem lang abre o openLocale do pacote quando ele indica um; caso contrário, a edição no idioma da interface. O capítulo e a página de um link valem para a edição que ele abre, e o fragmento passa a indicar essa edição pela sua própria tag (lang=zh-TW&chapter=28 vira lang=zh-Hant&chapter=28).

Quebras de título salvas pelo postext 1.4 ou anterior. Até o postext 1.4, uma configuração com um objeto headings diagramava os títulos de nível 1 sem quebra de página, a menos que ligasse explicitamente a chave Quebra antes do H1 (e salvar descartava uma quebra de H1 desligada); uma quebra de H1 parcial tirava o campo que faltava do padrão sem quebra, e a quebra de um estilo de título fazia o mesmo em vez de se mesclar com a do seu nível. O motor agora mantém o padrão de cada nível (o H1 abre em um recto novo, always-odd) e mescla nele uma quebra parcial. Para que um livro salvo naquela época mantenha as páginas que tinha, o Sandbox grava essas quebras por extenso quando lê um registro de projeto anterior à versão 3 ou uma configuração de trabalho sem versão: enabled: false no H1 onde a quebra estava desligada, e parity: 'any' ao lado de um enabled: true que não indicava paridade, no H1 e nos estilos de título. O painel Design então mostra a quebra com que as páginas foram diagramadas. Desde o postext 1.5 os arquivos também registram a versão: um arquivo .postext cujo manifesto não tem configVersion, e um postext-config.json sem ela, foram gravados pelo postext 1.4 ou anterior, e são lidos do mesmo modo quando importados ou abertos (veja Pacotes gravados pelo postext 1.4 ou anterior).

Tamanho das fórmulas salvo antes do postext 1.5. Até o postext 1.4, toda fórmula saía 1,131 vez maior do que diz a sua Escala de tamanho (veja Tamanho das fórmulas). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox fixa esse tamanho quando lê um registro de projeto anterior à versão 4, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 4 ou um postext-config.json exportado antes disso: a Escala de tamanho passa a ser a escala salva × 1,1312, e uma margem de destaque em em é dividida por 1,1312, de modo que as fórmulas e o espaço em volta delas ficam como estavam. Um livro cujos capítulos não têm $ fica como estava (um postext-config.json não traz capítulos, então o seu tamanho é fixado sempre que as fórmulas estão ligadas), e o mesmo vale para um com Ativar LaTeX desligado. A seção Fórmulas então mostra os valores com que o livro é diagramado; redefina Escala de tamanho, Margem acima (destaque) e Margem abaixo (destaque) para compô-lo no tamanho atual. A fixação é gravada uma única vez: o registro é salvo de novo com a versão atual e daí em diante é lido como está. Uma predefinição aplicada naquela época e nunca editada continua contando como intocada (o Sandbox a compara com os seus valores fixados, e isso vale também para a fixação das quebras de título): recarregá-la ou trocar de livro não pede para descartar edições que você nunca fez, e uma versão mais nova da predefinição, como a do guia embutido, continua substituindo-a.

Figuras na linha salvas antes do postext 1.5. Até o postext 1.4, uma figura ou tabela composta na linha do texto (posição No texto (aqui)) mantinha uma linha de espaço só acima dela: o texto seguinte retomava na próxima linha da grade, por mais perto que ela estivesse. Agora ela mantém a mesma linha abaixo (Colunas → Espaço em torno das figuras na linha, Acima e abaixo). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox define Espaço em torno das figuras na linha como Só acima quando lê um registro de projeto anterior à versão 5, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 5 ou um postext-config.json exportado antes disso, quando uma linha do livro incorpora um recurso (::resource{id="…"} sozinho na sua linha, não uma menção no texto). Um postext-config.json não traz capítulos, então ali ele é definido sempre que o arquivo é mais antigo. Escolha Acima e abaixo para diagramar o livro com o espaçamento atual.

Figuras na linha dentro de boxes salvas antes do postext 1.5. Até o postext 1.4, uma figura ou tabela composta na linha dentro de um boxe ficava encostada no texto do boxe em volta. Agora ela mantém uma linha do texto do boxe acima, e abaixo também com Acima e abaixo (Colunas → Espaço em torno das figuras nos boxes). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox desliga Espaço em torno das figuras nos boxes quando lê um registro de projeto anterior à versão 6, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 6 ou um postext-config.json exportado antes disso, quando um boxe do livro incorpora um recurso em uma linha própria. Um postext-config.json não traz capítulos, então ali ele é desligado sempre que o arquivo é mais antigo. Ligue-o para diagramar o livro com o espaçamento atual.

Marcas nos títulos e capitulares salvas antes do postext 1.5. Até o postext 1.4, um título imprimia as palavras dos seus *italic*, **bold** e outras marcas no seu próprio estilo simples, e uma capitular sem tamanho era tão alta quanto todas as linhas que abrange, com o topo acima da primeira linha. Agora um título aplica as suas marcas (Títulos → Marcas no texto dos títulos), e o topo de uma capitular fica no nível das maiúsculas da primeira linha. Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox desliga Marcas no texto dos títulos quando lê um registro de projeto anterior à versão 6, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 6 ou um postext-config.json exportado antes disso, quando um título do livro traz uma marca (um postext-config.json não traz capítulos, então ali ela é desligada sempre que o arquivo é mais antigo); e grava o tamanho com que cada capitular era composta no seu Tamanho da capitular. Ligue a chave, ou apague o tamanho, para compor o livro com as regras atuais. Atenção: um título em itálico cujo texto inteiro esteja marcado *…* passa então a sair em redondo.

Listas depois de dois-pontos salvas antes do postext 1.5. Até o postext 1.4, Manter dois-pontos com a lista considerava suficiente para a lista uma linha de espaço sob a linha terminada em dois-pontos, de modo que um primeiro item de duas linhas que as regras de órfãs e viúvas mantêm inteiro ia para a coluna seguinte e deixava a linha com dois-pontos sozinha no pé. Agora ele pede o espaço de que o primeiro item precisa (Tipografia → Texto do corpo → Viúvas, órfãs e linhas curtas → Espaço sob os dois-pontos, O que o primeiro item precisa). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox define Espaço sob os dois-pontos como Uma linha (1.4) quando lê um registro de projeto anterior à versão 6, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 6 ou um postext-config.json exportado antes disso, quando uma lista do livro vem depois de uma linha terminada em dois-pontos. Um postext-config.json não traz capítulos, então ali ele é definido sempre que o arquivo é mais antigo. Escolha O que o primeiro item precisa para diagramar o livro com a regra atual.

Cortes de boxe salvos antes do postext 1.5. Até o postext 1.4, um boxe dividido no meio de um parágrafo ou de um item de lista podia deixar uma única linha dele de um lado, desde que cada lado do boxe mantivesse as suas Linhas de cada lado da divisão. Agora um corte deixa pelo menos duas linhas do parágrafo ou do item de cada lado (Colunas → Linhas de parágrafo no corte de um boxe). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox define Linhas de parágrafo no corte de um boxe como 1 quando lê um registro de projeto anterior à versão 6, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 6 ou um postext-config.json exportado antes disso, quando um capítulo do livro abre um :::callout. Um postext-config.json não traz capítulos, então ali ele é definido sempre que o arquivo é mais antigo. Volte a 2 para diagramar o livro com a regra atual.

Travessões e texto em bandeira salvos antes do postext 1.5. Até o postext 1.4, a quebra de linha ideal nunca terminava uma linha depois de um travessão ou meia-risca colado entre palavras (say—that’s), e o texto em bandeira era sempre composto linha a linha, cada linha preenchida antes da seguinte. Agora uma linha pode terminar depois desse travessão (Tipografia → Texto do corpo → Parágrafos → Quebrar após travessão), e o texto corrido em bandeira também é quebrado com Knuth-Plass (Quebra ideal do texto em bandeira). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox desliga Quebrar após travessão quando lê um registro de projeto anterior à versão 7, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 7 ou um postext-config.json exportado antes disso, quando um capítulo do livro compõe um travessão desse tipo (um postext-config.json não traz capítulos, então ali ele é desligado sempre que o arquivo é mais antigo); e desliga Quebra ideal do texto em bandeira quando a configuração compõe algum texto corrido em bandeira: o texto do corpo, um estilo de parágrafo, o corpo de um boxe, o corpo de uma parte ou o corpo de um estilo de seção. Ligue-os para diagramar o livro com as regras atuais.

Divisões sob um título salvas antes do postext 1.5. Até o postext 1.4, o parágrafo sob um título no pé de uma coluna mantinha ali tantas linhas quantas coubessem, por poucas que passassem para a coluna seguinte. Agora ele também respeita o mínimo de órfãs, ou o título segue junto com ele (Títulos e sumário → Títulos → Divisão sob um título). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox define Divisão sob um título como Preencher a coluna quando lê um registro de projeto anterior à versão 8, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 8 ou um postext-config.json exportado antes disso, quando um capítulo do livro tem um título (um postext-config.json não traz capítulos, então ali ele é definido sempre que o arquivo é mais antigo) e a configuração mantém ligados Manter com o seguinte e o controle de órfãs. Defina-o como Pelas regras para diagramar o livro com a regra atual.

Contêineres de parágrafos salvos antes do postext 1.5. Até o postext 1.4, o espaço sob um contêiner :::paragraphs era o do próprio estilo (o maior entre o seu espaço entre parágrafos e a sua margem inferior), colocado sob a última linha antes de o texto voltar a se encaixar na grade; o espaço que um título mantém acima de si era somado a ele, e o espaçamento entre parágrafos do corpo não contava, de modo que um título ficava mais longe de uma bibliografia do que de um parágrafo, e o parágrafo depois de um grupo de entradas apertadas ficava mais perto dele do que de qualquer outro. Agora o espaço se funde com o do bloco seguinte e é pelo menos o espaçamento entre parágrafos do texto (Tipografia → Estilos de parágrafo → Espaço sob um contêiner, Fundir). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox define Espaço sob um contêiner como Somar (1.4) quando lê um registro de projeto anterior à versão 8, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 8 ou um postext-config.json exportado antes disso, quando a configuração declara um estilo de parágrafo e um capítulo do livro abre um contêiner :::paragraphs. Um postext-config.json não traz capítulos, então ali ele é definido sempre que o arquivo é mais antigo e declara um estilo de parágrafo. Escolha Fundir para diagramar o livro com a regra atual.

Palavras compostas salvas antes do postext 1.5. Até o postext 1.4, a quebra de linha ideal nunca terminava uma linha justificada depois do hífen de uma palavra composta (well-known) em um parágrafo sem negrito, itálico ou outra formatação, embora o fizesse em um parágrafo com formatação. Agora uma linha pode terminar ali em todos os parágrafos (Tipografia → Texto do corpo → Parágrafos → Quebrar após hífen). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox desliga Quebrar após hífen quando lê um registro de projeto anterior à versão 8, uma configuração de trabalho salva com um carimbo mais antigo (ou sem carimbo), um arquivo .postext cujo manifesto é anterior a configVersion: 8 ou um postext-config.json exportado antes disso, quando um capítulo do livro compõe um hífen entre duas letras (um postext-config.json não traz capítulos, então ali ele é desligado sempre que o arquivo é mais antigo). Ligue-o para diagramar o livro com a regra atual.

Poemas e estilos com recuo deslocado salvos antes do postext 1.23. Até o postext 1.22 um poema :::verse cujas linhas não traziam || era composto em hemistíquios soltos, cada linha centralizada, e o recuo deslocado de um estilo de parágrafo substituía o seu recuo de primeira linha. Agora um poema assim é composto linha a linha (Tipografia → Texto do corpo → Verso → Poemas sem separador, Linha a linha), e um estilo que define os dois recuos começa a primeira linha no recuo de primeira linha. Para que um livro salvo então mantenha as suas páginas, o Sandbox põe Poemas sem separador em Como hemistíquios (1.22) quando lê um registro de projeto anterior à versão 9, uma configuração de trabalho ou uma exportação postext-config.json marcada abaixo de 9 cujos capítulos tenham um poema assim, e tira o recuo de primeira linha de um estilo que também pende. Também desativa Quebras de linha forçadas (Tipografia → Texto do corpo → Parágrafos) quando os capítulos desse registro terminam uma linha com uma barra invertida ou põem \\ antes de um espaço, que até o postext 1.22 eram impressas (em uma exportação postext-config.json, que não traz capítulos, sempre). E desativa Blocos de código (Tipografia → Código) quando os capítulos têm uma cerca ``` ou ~~~, cujas linhas eram lidas como Markdown até o postext 1.22 (numa exportação, sempre).

Poemas salvos com o postext 1.23. No postext 1.23 um verso de um poema composto verso a verso que fosse nem que só um pouco mais largo que a mancha era partido. Agora ele aperta os espaços entre palavras, até o espaçamento mínimo, e cabe em uma linha quando isso basta (Tipografia → Texto do corpo → Verso → Apertar antes de partir). Para que um livro salvo naquela época mantenha as suas páginas, o Sandbox desliga Apertar antes de partir quando lê um registro de projeto, uma configuração de trabalho ou uma exportação postext-config.json marcados com 9 ou menos cujos capítulos compõem um poema verso a verso (numa exportação, que não leva capítulos, sempre).

Textos de design salvos com o postext 1.23. Até o postext 1.23 um elemento de texto de um design de título ou de uma página de parte que não definia o transbordamento era cortado em uma linha com reticências. Agora ele quebra em mais linhas, e Adicionar texto deixa o Transbordamento por conta do espaço. Para que um livro salvo então mantenha as suas páginas, o Sandbox põe Transbordamento em Reticências no fim (…) em cada um desses elementos ao ler um registro de projeto, uma configuração de trabalho, um arquivo .postext ou uma exportação postext-config.json com selo 9 ou inferior.

Tabelas em linha e colunas salvas com o postext 1.24. Até o postext 1.24 uma tabela posicionada here que não cabia no resto da sua coluna passava inteira para a seguinte, uma cerca :::columns fora de um boxe era ignorada e um boxe nunca cortava dentro de um grupo :::columns. Agora a tabela é cortada entre linhas, e o grupo compõe os seus blocos em colunas e continua na coluna ou página seguinte. Para que um livro salvo então mantenha as suas páginas, o Sandbox desliga Aplicar às tabelas colocadas no texto (Tabelas) quando lê um registro de projeto, uma configuração de trabalho ou uma exportação postext-config.json com selo inferior a 11 cujos capítulos incorporam um recurso, e Colunas no texto e grupos que se dividem (Colunas) quando eles têm uma cerca :::columns (numa exportação, que não leva capítulos, sempre).

Essas fixações seguram o que cada uma dessas mudanças de regra moveria. A versão 1.5 também corrige erros de diagramação, e uma correção não tem fixação, então um livro salvo ainda pode ver uma página mudar onde uma delas se aplica: a faixa de um título de capítulo na largura da página sem design, uma capitular em um design de título, um parágrafo em um boxe, um parágrafo frouxo que o balanceamento estica, um boxe flutuante com uma margem mais larga que uma linha, um cabeço centralizado ou alinhado à direita com tracking, a segunda coluna sob uma abertura na largura da página, um cabeço tirado de um título quebrado depois de um hífen, uma palavra mais larga que a sua linha cortada junto ao seu próprio hífen, o resto de uma palavra mais larga que a sua linha, que agora mantém os seus próprios pontos de quebra, o item depois de uma lista aninhada em outra (veja Tamanho das fórmulas para a lista).

O armazenamento é compartilhado entre os idiomas da interface. Um documento padrão intocado passa para o markdown padrão do idioma atual e recria os recursos de exemplo quando o idioma muda, então abrir o Sandbox em espanhol mostra exemplos em espanhol. Qualquer edição do usuário tira o documento desse comportamento. Todas as visualizações também derivam um idioma de hifenização do idioma da interface quando a configuração não indica nenhum idioma (nem um idioma de hifenização nem locale).

#Exportar e importar

Um livro inteiro viaja como um arquivo .postext: um arquivo zip com exatamente a estrutura de um diretório de pacote de predefinição, preset.json, chapters/*.md, resources/* e fonts/* (veja Formato do pacote de predefinição). O arquivo também leva a paginação do livro como layouts.json (a contagem de páginas e a numeração de cada capítulo, carimbadas com a versão do motor, a configuração e os recursos com que foram calculadas), de modo que um livro importado abre já paginado e só o que esses carimbos deixaram de garantir é diagramado de novo. Um pacote em vários idiomas compõe cada um com a sua própria configuração, então pode levar uma paginação por idioma, layouts.<locale>.json (layouts.zh-Hant.json), lida antes de layouts.json. O documento ativo exporta a paginação que tem; um projeto ou uma predefinição exportados a partir da sua linha levam a que foi registrada na última vez em que foram o livro de trabalho. Uma imagem de capa é gravada como o thumbnail do manifesto, então ela sobrevive à ida e volta. O menu Novo do painel Livros (Abrir um arquivo .postext…) importa um arquivo como um livro novo; o menu ⋯ de cada linha tem o seu próprio Baixar (.postext), e o do livro aberto exporta o documento de trabalho. Os arquivos gravados por versões anteriores (um manifesto da versão 1 com um único document.md) são importados como um livro de um capítulo. Um livro em um idioma mantém os rótulos de figura e tabela desse idioma, seja qual for o idioma da interface: um arquivo em espanhol aberto a partir de /en/sandbox imprime Figura e Tabla, a menos que a sua configuração nomeie outros tipos de recurso. O idioma é o que o arquivo indica ou, quando ele não indica nenhum, o que a sua configuração define (locale, depois o idioma de hifenização). A importação aceita os arquivos na raiz do zip ou dentro de uma única pasta de nível superior (como sai ao compactar a própria pasta; as entradas __MACOSX e os arquivos ocultos são ignorados). As fontes são gravadas como arquivos separados, nunca dentro de config.customFonts; as faces .woff são puladas com um aviso nos dois sentidos, assim como os recursos cujos bytes estão faltando. Descompacte um arquivo exportado em <presets-root>/<dir>/ e acrescente uma entrada em index.json para servi-lo como predefinição.

Os mesmos arquivos são lidos e gravados pelo pacote postext (openBundle, createBundle, buildBundle; veja Pacotes). Um livro exportado aqui abre no seu próprio programa, e um livro que o seu programa grava abre aqui. Isso faz do Sandbox um lugar para inspecionar e ajustar o que um programa diagrama: exporte-o do programa, importe-o aqui, corrija-o com a visualização ao vivo, exporte-o de novo e carregue-o outra vez no programa. A skill para agentes também entrega as suas conversões como arquivos .postext.

O texto e o design também podem ser exportados separadamente a partir dos cabeçalhos dos painéis Texto e Design.

O cabeçalho do painel Design baixa postext-config.json sem os valores padrão:

{
  "type": "postext-config",
  "version": 1,
  "config": { ... }
}

O cabeçalho do painel Texto baixa o capítulo ativo como um arquivo .md simples, e o seu botão Importar substitui o capítulo ativo pelo conteúdo de um arquivo .md. O botão Importar do painel Design abre um seletor de arquivos .json, validados contra o type e a version esperados; arquivos inválidos são ignorados sem aviso. O invólucro postext-markdown.json e o formato combinado postext-sandbox.json de versões anteriores não existem mais.