定义一段可复用内容[#16]

下面定义一个有稳定ID的subtree:

@subtree[#:id "tree-example"]{
    @title{从文本到内容树}
    @taxon["definition"]
    @paragraph{普通文本先被解析为内容节点,再由页面分析器链接成森林。}
    @itemize{
      @item{源码:作者编写的 .plant 文件。}
      @item{内容树:命令和文本的结构化结果。}
      @item{输出:renderer 生成的 HTML 或其他 artifact。}
    }
  }

  @transclude["tree-example"]

definition. 从文本到内容树[tree-example]

普通文本先被解析为内容节点,再由页面分析器链接成森林。

  • 源码:作者编写的.plant文件。
  • 内容树:命令和文本的结构化结果。
  • 输出:renderer生成的HTML或其他artifact。

#:id让这个subtree在移动和编辑后仍可被引用。title是subtree必需的直接子节点;它成为这棵树的标题。正文里的paragraph和itemize会一起保留;普通文本与根文档一样按空行自动解码为段落。

上面的定义留在原始页面里;真正的嵌入由transclude命令完成。它按ID查询分析后的森林,并把目标正文放在这里。该subtree同时有独立路由,所以内容仍可直接访问。