@TOC
前言
一个流式渲染呈现的标记语言,就需要有能够控制渲染呈现流程的标签。
TinML中(以TinText1.4版本为例),控制渲染呈现流程的标签主要有<stop>, <part>, <wait>
,这三种标签分别对应以下流程控制:
-
暂停一段时间
-
划定一段内容,由读者决定是否显示并阅读
-
暂停渲染,等待读者确认继续阅读
为了使整个程序不会因为渲染暂停而被阻塞,TinText的渲染操作在子线程中进行。
暂停一段时间
这个很简单,由<stop>
标签确定。
<stop>3
|-暂停三秒
在TinText中,由线程等待事件实现:
#t为暂停的时间,单位为秒
self.render_flag.clear()
self.render_flag.wait(t)
self.render_flag.set()
self.render_flag
的定义如下:
self.render_flag=threading.Event()#渲染线程标志
划定可选阅读内容
TinML允许划定可选的阅读内容,由读者选择是否进行渲染呈现并阅读。
比如:
<p>接下来将介绍TinText的各个组成部分
<pt>dev
<p>开发介绍。。。
</pt>dev
<pt>apps
<p>TinText由TinReader、TinWriter、TinMaker等组成
<pt>reader
<p>TinReader是TinText的阅读器
</pt>reader
<pt>writer
<p>TinWriter是TinText的编辑器
</pt>writer
<pt>maker
<p>TinMaker是TinText的加密与集成TIN文件生成器
</pt>maker
</pt>apps
|-......
在新版TinML规范中,可选呈现内容标签允许嵌套,如果上级内容未被选择阅读,则下级所有内容,包括下级可选呈现内容,均会被跳过,所以尽量不要半嵌套
这就划定了两大可选内容,第二个可选内容下又分三个可选内容,这些内容都可以允许读者选择是否阅读,同来