跳到主要内容

章 14 · 篇 III · 实践

把书迁移到模板页

如何把各页文字放在标题样式里的书,迁移成页面模板加 Markdown:用沙盒里的“把文字移到 Markdown”助手,或者手工迁移,以及迁移之后要检查什么

更新于 2026-10-177分钟enescadefritptzhjaar

简单来说

在有模板页之前用Postext做的有些书,把每一页的文字放在设计设置里,而不是放在正文里。这样的书很难修改,也没法翻译。本页教你把这些文字移进 Markdown,每一页成为一个带自己模板的块。沙盒点一个按钮就能完成大部分工作,你再一页一页检查结果。本页也讲了怎样手工迁移单独一页。

文字放在样式里的书,可以把各页的文字移进 Markdown,这样就能修改和翻译。

在有模板页之前,移植到Postext的课本常把每一页做成一个隐藏的标题,由它的页眉把这一页的文字、方框和图片放到印刷页上原来的位置。页面看起来没问题,但文字存放在配置里:改一个错别字要打开一个样式,翻译则要复制样式。模板页做同样的事,只是形式放在页面模板里,文字放在 Markdown 里,做法见模板页做的书。本页把旧书迁移成这种形式。

检查面板里列出配置中存放的正文(contentInConfig),每个含有整句文字的标题样式一条,并且在列表顶部提供把文字移到 Markdown,就说明这本书是旧的形式。

#跟着做的书

下面的步骤用的是专门为本页做的一本小书《Our World, before composed pages》(意为“我们的世界,模板页之前”):三年级课本的三页,每页是一个标题样式,由它的页眉放置一张图片、一张卡片、一个标题和三块文字,其中一个词下面垫着一条黄色色带。文字和图片都是虚构的。下载这本书,然后在沙盒里打开书库,点新建,选打开.postext文件…。

#用助手迁移

导入一本文字放在样式里的书时,会自动打开对话框把文字移到 Markdown。如果你把它关掉了,或者这本书本来就在你的列表里,就打开检查,点列表顶部的按钮。在你点移动文字之前,什么都不会改变。

  1. 读会有哪些变化。对示例书,它写着:将移动16段文字(567个字符),写出3个模板页,3个标题样式合并为1个,3个高亮色块变成标签,配置中存放的正文警告从3条降到0条。
  2. 看一看选项。框位置相同的页面共用一个模板:排法相同的页面共用一个基础模板,其余页面继承它。粗体字下面的高亮色块变成标签:把画在粗体字下面的彩色方块变成本书标签样式的标签。图片上的文字变成该图片的标注:旧设计在图片上放过短词(例如地图上的名称)时才会出现,这些词变成图片锚点处的::label行。这一项默认关闭,需要时再打开,因为这些页面变化最大。
  3. 在前后对比下,沙盒把每一章排两遍,把每个有变化的页面画出来,旧的在新的旁边。列表说明哪些页面看起来不同,知道原因时也会说明原因。用红色标出变化的地方把不同的像素涂成红色。在示例书里,三页都标着看起来相同。
  4. 点移动文字。
对话框“把文字移到 Markdown”,里面是会有哪些变化的列表和三个选项。 (在新标签页中打开)
对话框在动手之前,先把要做的事列出来。
对话框的末尾:标着“看起来相同”的页面列表,以及并排放着的一页在迁移前和迁移后的样子。 (在新标签页中打开)
每一页分别用旧设计和新设计排出来,并排放在一起。

这次迁移在书的历史里是一步:每改写一章算一步,设计再算一步。只要之后没有别的改动,对话框里的撤销会全部撤回;Cmd/Ctrl+Z则一步一步撤回。原来的书也会一直保存,直到你在检查面板里点保留这次修改;在那之前,把书恢复原样会把旧的设计和文字写回去。

#迁移之后要检查什么

打开正文面板。本章现在每一页有一个块:

::::page{template="page-base" background="art-p1"}
# Rivers and seas {style="topic" id="t-rivers"}
 
:::frame{slot="shared-2"}
:::paragraphs{style="fredoka-30-center-ffffff"}
Rivers and seas
:::
:::
...
::::

按下面的顺序检查结果。

  • 看起来不同的页面。对话框里的列表写了它知道的原因:文字自己的底框、描边或首字下沉,不知道在左还是在右的页面,现在排在模板流文框里的正文。在画布上对照这些页面。
  • 模板。在 版面设计 › 页面与分栏 › 页面模板 里,每种页面设计有一个模板,各页共有的框放在page-base里。不增加内容的页面直接用基础模板,其余的继承它。模板的名字由旧名字生成:把它改成你认得的名字(改名会同时改掉所有引用它的页面)。
  • 段落样式。每段文字的字体、字号、字重、颜色、对齐和行距变成一个段落样式:书里有完全相同的就用它,否则新建一个,以字体和字号命名(nunito-11)。看一看版面设计 › 正文,给新的样式改名或合并。
  • 标题。结果相同的标题样式合并了,标题也改了名;只用来切换页眉的隐藏标题已经删去。如果书里有目录页,请检查目录页。
  • 仍留在配置里的内容。对话框里的留在配置中的内容列出了:文字和占位符混在一起的文字(Page {pageNumber})、挂在别的元素上的文字,以及标题设计中的文字。它们不是页面的内容,剩下的配置中存放的正文警告说的就是它们。
  • 标注。如果你打开了图片上的文字变成该图片的标注,请看每一幅地图或示意图:标注用本书的字体重新排过,所以大小和位置可能与旧页面不同。
  • 检查面板。文字放不下的框会显示为框内放不下文字,修正办法见模板页做的书。由印刷页做成的书排得很紧,稍长一点的文字一出现就需要修正。

满意之后,点保留这次修改。这本书从此可以像任何模板页做的书一样翻译。

#手工迁移

页数不多的书可以不用助手,一页一页地迁移。

  1. 在版面设计模式下做页面模板。在书中的一个模板页上,为每段文字画一个框,也可以照着模板页做的书的步骤做。给每个框配上决定它外观的框样式,并把旧文字的高度设为最小高度。
  2. 在内容模式下,把这一页写成一个::::page{template="…"}块,把旧页眉里的每段文字移进新块的一个:::frame{slot="…"}。保留粗体和斜体;旧文字里的换行,用行末的反斜杠保留。
  3. 从标题样式里删掉文字元素;如果别的地方用不到这个标题样式,就把它整个删去。这个样式的配置中存放的正文警告随之消失。
  4. 把这一页与旧页对照,并打开检查。

同样的迁移也能从代码里完成,用moveTextToMarkdown,它返回新的配置、各章和对话框显示的报告;见模板页 › 迁移文字放在样式里的书。对话框做的每件事,都写在沙盒:模板页 › 把文字移到 Markdown里。