@TOC
前言
Tin标记语言的一个特性就是在渲染呈现的时候,让读者的思维跟着作者走,那么动态呈现是肯定的(当然,这是除了每渲染一则标记就更新阅读器,这个不算)。在新版的TinML中,就有若干负责动态呈现内容的标签:
-
<part>
,由读者来决定呈现哪部分的内容(这个标签在上一篇文章讲过,本文将不展示实现细节)
-
<wait>
,由读者决定何时开始阅读接下来的内容(这个标签在上一篇文章讲过,本文将不展示实现细节)
-
<pages>
,将一部分内容分为若干个标签页进行阅读 -
<ac>
,作为锚点,由读者决定是否跳转到对应的位置查看
动态呈现标签的解释和渲染
上述这些标签在解析中是无法和普通渲染标记、流程控制标记区分出来的,因此它们的呈现全部在解释器和渲染器中完成。
本小节将以<pages>
标签为例解释。
<part>
实际上还是属于流程控制标记,因为其可以嵌套,且最终渲染内容可以被读者选择进行渲染呈现,而<pages>
无论读者是否想看,都会渲染,只不过对于读者来说,可以选择对已经完成渲染的内容是否查看。
和<part>
标记类似,当<pages>
开头标记出现后,解释器部分self.PAGES_TAG
被赋值为True
,那么就会在正式匹配标签与标记之前触发解析多页面内容。根据TinML优先级中控制标签大于元素标签的规则,多页面标记的判定要晚于<part>
的判定。
if self.PAGES_TAG:
if