跳到主要内容

章 13 · 篇 III · 实践

模板页做的书

在沙盒里用一本由模板页组成的小学课本走一遍全过程:做页面模板,用 Markdown 填入文字,给地图加标注,翻译这一页,修正放不下的地方,以及在页面和正文之间互相选中

更新于 2026-10-1710分钟enescadefritptzhjaar

简单来说

本页一步一步教你在沙盒里做课本的一页:顶上一条标题色带,下面一段课文,再加几个彩色方框。你从一本做好的示例书出发,给它再加一页。先把这一页画成模板,再用 Markdown 把文字灌进去,然后在地图上给地点命名,并把这一页翻译成另一种语言。最后讲文字太长、框放不下时怎么办,以及怎样在页面和它的文字之间来回跳转。

你要用模板做出课本的一页,用 Markdown 填入文字,给地图加标注,翻译这一页,再修正放不下的地方。

小学课本的一页是一组方框:标题色带、一段课文、定义框、活动框、一幅地图。Postext按页面模板排这样的页面,模板里存放各个框,Markdown只说明哪些文字放进哪个框。本页在沙盒里把整个流程走一遍:在一本现成的书上增加一页。参考页面讲每个字段和每一行 Markdown 的作用;这里每件事只做一次,按顺序做,看它改变什么。Markdown 的写法见模板页,模板见配置:组合页面,各个界面见沙盒:模板页。

你只需要一个浏览器。每一步都在沙盒里完成,你的修改只保存在你的浏览器中。

#1. 打开这本书

这本书是《Our river》(意为“我们的河”),是三年级课本中的一个单元,作为第156号食谱发表在排版食谱中。河、城镇和图片都是为它虚构的。全书九页,其中相邻的两页上铺着一幅手绘地图,有西班牙语、加泰罗尼亚语和英语三个版本。

在沙盒中打开。第一次打开时,它会作为你自己的书加入书库,可以随意修改;把链接里的lang=en换成lang=es或lang=ca,就得到另外两个版本。以后再用同一个链接打开,沙盒会问你是打开自己的那一份,还是用发布的版本替换它。

动手之前先了解两件事:

  • 预览上方的栏里有一个开关,分为内容和版面设计。在内容模式下改文字,可以在正文面板里改,也可以直接在页面上改。在版面设计模式下改页面模板和样式,文字只读。Alt+Shift+M(Mac 上为 ⌥⇧M)在两种模式之间切换。
  • 正文面板显示一章的 Markdown。每个模板页是一个块,以::::page{template="…"}开头,以四个冒号结尾。在预览里点一下页面上的文字,光标就会跳到 Markdown 里对应的文字上。

#2. 做一个页面模板

新的一页是复习页:一条标题色带,下面一小段文字,再加两个方框,一个用来回顾所学,一个用来动手试一试。它需要一个有四个框的模板。

  1. 切换到版面设计,打开左侧的版面设计面板。选择页面与分栏,再选页面模板。列表里是书中的每个模板,旁边画着它的各个框。
  2. 点新建,会打开一个名为新模板的模板。把ID填成review(Markdown 里用它来指定模板),把名称填成Review page(这个面板里显示的名字)。ID 只能用小写字母、数字和短横线。
  3. 模板一开始有一个框text,它接收页面上的自由正文。把它改成标题色带:名称(插槽)填title;框样式选portada,这是书里标题已经在用的蓝色色带;关掉接收页面上的自由正文;接收第一个标题选1 级,这样这个框就会接收页面上的第一个#标题。
  4. 点添加框。新框会在框列表下面展开。名称(插槽)填text,并打开接收页面上的自由正文:页面里写在框外的文字都进这里。
  5. 再添加一个框。名称(插槽)填remember。框样式选dato-campo,这是带标签页的绿色方框。最小高度设为30毫米,这样文字很短时,方框也能保持合适的大小。
  6. 最后再添加一个框。名称(插槽)填try。框样式选actividad-sol。最小高度设为30毫米。
  7. 在text、remember和try里,把宽度设为延伸到边缘,把高度设为随内容:这样它们占满页面的宽度,高度随文字而定。
  8. 在分组下点添加分组。把它命名为column,保持上下堆叠,把框间距设为6毫米。在组内的框(按页面顺序)下勾选这四个框。分组按框列表的顺序排列它们,所以标题在最前面。分组把框一个接一个地往下排,某个框变高时,会把下面的框推下去;因此第一个方框里的文字变长,第二个方框会被推到下面,不会被盖住。
版面设计面板停在页面模板上,显示 Review page 模板:它的四个框和一个分组,页面上用虚线框画出同样的几个框。 (在新标签页中打开)
模板:四个框,一个分组。页面上的虚线框就是这些框,绿色的小标签说明每个框的大小是怎么定的。

模板里没有文字。你设置的任何内容都没有说标题是什么、方框里放什么:框样式决定框的外观,分组决定框的顺序。做同一个模板还有别的办法。在版面设计模式下,可以用鼠标在模板页的空白处画一个框,也可以移动框、调整框的大小(见沙盒:模板页);复制会复制一个模板供你修改;将版面存为模板把你满意的一个模板页变成新模板。

#3. 用 Markdown 填入页面

  1. 切换到内容,打开正文面板,按 Ctrl+End(Mac 上按 Cmd+↓)跳到本章末尾。
  2. 点正文面板工具栏里的模板页。弹出的选择器列出书中的页面模板,每个都画成空框的样子。选Review page。
  3. 沙盒替你写出这一页,每个槽位一个空框,并选中标题里的title一词。直接输入标题,覆盖它。
::::page{template="review"}
# Check what you have learned
 
A river changes as it runs from the mountains to the sea. Read the boxes, then answer them in your own words.
 
:::frame{slot="remember" label="Remember"}
A spring gives a trickle, streams join into a river, and the river widens as it nears the sea.
:::
 
:::frame{slot="try" label="Try it"}
Draw a river from its spring to the sea. Write the names of the three courses on your drawing.
:::
::::

标题进入接收 1 级标题的框,紧跟其后的段落进入接收自由正文的框,每个:::frame进入slot所指的框。label是方框标签页上的文字。这一页在画布上是第10页,排在本单元原有的九页之后:模板页总是另起一页。

正文面板里是新页面的 Markdown,旁边是排好的页面:蓝色的标题、一段文字和两个带标签页的方框。 (在新标签页中打开)
页面的 Markdown 和它在画布上的样子。

注意 Markdown 没有写什么:没有位置,没有尺寸,没有颜色。这些都属于模板;同样的 Markdown 换一个模板来排,样子就会不同。

#4. 给地图加标注

第6页和第7页上有一幅铺在对页上的手绘地图。图上的文字不是图片的一部分。地图上的每个名称都是 Markdown 里的一行,写在地图的:::figure里面:

:::figure{resource="mapa" slot="mapa"}
::label[Spring]{at="nacimiento"}
::label[Molinar]{at="molinar"}
::label[Lower course]{at="bajo"}
:::

at指定一个锚点:图上的一个点,在图的资源里定义一次,各种语言共用。要加上Molinar的石桥:

  1. 在正文面板里找到地图的图(搜索at="bajo"),在最后一个标注下面加一行:::label[Stone bridge]{at="bridge"}。
  2. 打开检查。列表里第6页有一条标注指向不存在的锚点:图上没有叫bridge的锚点。点这一条上的图钉按钮在图上放置锚点 bridge。
  3. 弹出的对话框在锚点标签页里显示地图和图上已有的锚点。名称bridge已经选在缺少锚点的标注(1)下。在桥所在的位置点一下图片。
  4. 把新锚点的标注样式设为pueblo,也就是城镇名称用的样式,然后点保存。
锚点对话框:地图和图上的各个点,新锚点 bridge 已选中,旁边是它的标注样式字段。 (在新标签页中打开)
新锚点就是在图上点一下;它的标注样式让它看起来和城镇的名称一样。
横跨第6页和第7页的地图,桥上多了新标注 Stone bridge,旁边是各个城镇的标注。 (在新标签页中打开)
标注落在你点的位置上,用的是本书自己的字体。

Stone bridge这个词在 Markdown 里,点则属于图片。翻译这一页时,同一个锚点会配上另一种语言的词。

#5. 翻译这一页

译文就是同一个模板配上另一种语言的文字。沙盒有两种方式保存译文。一本书可以同时带多种语言:把它存成.postext文件,每种语言一个版本,这样画布上方的栏可以在各版本之间切换,检查面板也会检查所有版本(见书的各个版本)。更简单、不需要文件的方式,是复制一本另一种语言的书:

  1. 打开书库,点你这本书上的 ⋯,选复制;或者点新建,选复制当前的书。打开复制出来的那本。它和原书同名,用同一个菜单里的重命名…改个名字。
  2. 在版面设计面板里打开书写系统,在语言与方向下设置文档语言。断词、引号,以及引擎自己写出的字词(例如框被截断处的Continued),都会跟着它变。
  3. 在正文面板里翻译文字,其余的不动。
需要翻译的保持原样的
标题、段落和列表中的文字围栏的四个冒号、page一词和围栏里的template="…"
框的label="…"框的slot="…"
::label[…]、::alt[…]和::caption[…]方括号里的文字标注的at="…"和图的resource="…"

图片、锚点、方框和它们的颜色都随副本一起带过来,不用再做。下面是这一页复习页的西班牙语副本:

::::page{template="review"}
# Repasa lo aprendido
 
Un río cambia mientras baja de las montañas al mar. Lee los recuadros y respóndelos con tus propias palabras.
 
:::frame{slot="remember" label="Recuerda"}
Un manantial da un hilo de agua, los arroyos se unen en un río y el río se ensancha al acercarse al mar.
:::
 
:::frame{slot="try" label="Inténtalo"}
Dibuja un río desde su manantial hasta el mar. Escribe en tu dibujo el nombre de los tres cursos.
:::
::::
另一种语言的书副本:正文面板里是翻译好的页面,画布上是译好的标题、文字和标签页。 (在新标签页中打开)
翻译后的页面:模板不变,文字换了。

#6. 修正放不下的地方

各种语言的词长短不一,英语文字放得下的框,西班牙语文字不一定放得下。检查面板能找出这样的框。要看到一个,就在翻译好的页面的remember框里再粘贴三四段随便什么文字,让它装的内容超出页面能给的空间。

页面上这个框现在被红线框起,脚下有一条色带,写着差多少(差 26 毫米)。在检查里的模板页下,条目框内放不下文字说明排版在放弃之前试过什么(先向周围的框要更多空间,再缩小文字),并把解决办法列成按钮:

  • 允许文字缩到82.5 %(fit.minScale)让这个框的文字最多缩到这个大小。适合多出几行的情况。
  • 在下一页接续(overflow.continueIn)把放不下的部分送到加在这一页后面的一页上。适合文字更长的情况。
  • 删去约495个字符不改任何东西。它选中这个框里的文字,并告诉你要删掉多少。

修改模板的按钮(用这个模板的每一页都会变)会先询问,并写明要改的设置。点修改。页面重新排版:方框的末尾出现截断处的字样(Continúa),剩下的文字接在加出来的一页的开头。Cmd/Ctrl+Z可以撤销这次修改。画布上方栏里的重排会打开移动了什么,为什么:列出排版为了容纳内容而改变过大小或位置的框,并用文字写明原因。

检查面板里有条目“框内放不下文字”和三个解决办法的按钮;页面上第一个方框被红线框起,旁边一条色带写着差 26 毫米。 (在新标签页中打开)
一个放不下的框,以及排版为它算出的修正办法。

#7. 在页面和正文里选择

页面和它的 Markdown 互相跟随。

  • 从页面到正文。点页面上某个框里的文字:光标就跳到正文面板里那一段,预览下方的路径写出你的位置(第 10 页 › column › try › 第 1 段)。在版面设计模式下,同样的点击改为为模板编辑器选中这个框。
  • 从正文到页面。把光标放进一段文字,页面上装着这一段的框和这一段本身就会被框出,同一条路径写出它们的位置。
  • 从检查项出发。点检查面板里的一条,沙盒就带你到那一页,选中那个框,并把光标放到它的文字上。书有多个版本时,会切换到有问题的那个版本。
  • 在方框的标签页上。双击它,上面会打开一个输入框,用来改label。按 Enter 保留修改,按 Esc 放弃。
页面上第二个方框被橙色线框起,正文面板里显示选中的框对应的 Markdown。 (在新标签页中打开)
在页面上点一下,光标就落在它的 Markdown 里,预览下方的路径说明这是哪个框。

#接下来读什么

  • 把书迁移到模板页:文字放在样式里的书,可以把文字移进 Markdown。
  • 模板页:页面围栏、图和标注行的每个属性,页面如何排出,以及每条警告和它的修正办法。
  • 配置:组合页面:模板、框和分组的每个字段,继承与跨页。
  • 沙盒:模板页:编辑模板和框样式的界面,所有版本的检查,以及修正办法。