您在什么场景下需要这个功能?
思源现有的文档模板仅能生成单篇文档内容,无法在应用模板时自动创建嵌套子文档
搭建标准化知识库、项目模板、阅读笔记、课程体系时,固定多层级子文档(如「资料、复盘、附件、清单」)需要手动逐个新建、重复操作极多
描述最优解决方案
新增一个模板函数CreateDocTree
- 支持创建多级子文档
- 支持指定每一级的文档模板,可调用已有模板,也可以调用本模板文件定义的子文档模板内容(使用define...end语法)
- 插入模板时自动创建多级子文档
还要有一个函数用于渲染特定子文档为块引用文本,方便制作MOC管理子文档
一些场景需要禁用子文档生成,仅在文档插入模板时生效
导出父文档,支持选择是否导出父文档与子文档内容为模板,方便复用
示例:
createDocTree:创建多级子文档树
支持在插入模板时,以当前文档为父节点自动创建多级子文档。
函数签名:
createDocTree <tree_definition>
tree_definition 是一个嵌套的字典结构,每个节点可以指定文档标题、使用的模板(已有模板文件名,或本模板内用 define...end 定义的子模板)、以及子节点列表。
示例一:创建固定子文档(不带模板)
.action{createDocTree (list
(dict "title" "📁 资料")
(dict "title" "🔁 复盘")
(dict "title" "📎 附件")
(dict "title" "✅ 清单")
)}
示例二:引用已有模板文件创建子文档
.action{createDocTree (list
(dict "title" "📁 资料" "template" "资料模板.md")
(dict "title" "🔁 复盘" "template" "复盘模板.md")
(dict "title" "✅ 清单" "template" "清单模板.md")
)}
示例三:使用 define...end 在本模板内定义子文档内容,减少外部模板文件依赖
.action{define "子文档-资料"}
## 资料来源
## 关键摘录
.action{end}
.action{define "子文档-复盘"}
## 做得好的地方
## 需要改进
.action{end}
.action{createDocTree (list
(dict "title" "📁 资料" "define" "子文档-资料")
(dict "title" "🔁 复盘" "define" "子文档-复盘")
)}
示例四:多层级嵌套子文档(如课程体系)
.action{createDocTree (list
(dict "title" "第一章"
"children" (list
(dict "title" "1.1 概念")
(dict "title" "1.2 实践")
)
)
(dict "title" "第二章"
"children" (list
(dict "title" "2.1 概念")
(dict "title" "2.2 实践")
)
)
)}
renderDocRef:将子文档渲染为块引用
用于在父文档中生成指向各子文档的块引用列表,方便制作 MOC(内容地图)。
函数签名:
renderDocRef <query_mode> [options]
示例一:渲染当前文档的直接子文档为块引用列表
.action{range $doc := renderDocRef "children" .id}
- ((.action{$doc.RootID} ".action{$doc.HPath}"))
.action{end}
示例二:指定子文档路径前缀渲染
.action{renderDocRef "path" "/第一章/1.1 概念"}
描述候选解决方案
父文档右键菜单选择创建副本,支持选择是否连同子文档一起创建,方便在思源手动创建模板文档,后进行复用
其他信息
No response
您在什么场景下需要这个功能?
思源现有的文档模板仅能生成单篇文档内容,无法在应用模板时自动创建嵌套子文档
搭建标准化知识库、项目模板、阅读笔记、课程体系时,固定多层级子文档(如「资料、复盘、附件、清单」)需要手动逐个新建、重复操作极多
描述最优解决方案
新增一个模板函数CreateDocTree
还要有一个函数用于渲染特定子文档为块引用文本,方便制作MOC管理子文档
一些场景需要禁用子文档生成,仅在文档插入模板时生效
导出父文档,支持选择是否导出父文档与子文档内容为模板,方便复用
示例:
createDocTree:创建多级子文档树
支持在插入模板时,以当前文档为父节点自动创建多级子文档。
函数签名:
tree_definition是一个嵌套的字典结构,每个节点可以指定文档标题、使用的模板(已有模板文件名,或本模板内用define...end定义的子模板)、以及子节点列表。示例一:创建固定子文档(不带模板)
示例二:引用已有模板文件创建子文档
示例三:使用
define...end在本模板内定义子文档内容,减少外部模板文件依赖示例四:多层级嵌套子文档(如课程体系)
renderDocRef:将子文档渲染为块引用
用于在父文档中生成指向各子文档的块引用列表,方便制作 MOC(内容地图)。
函数签名:
示例一:渲染当前文档的直接子文档为块引用列表
示例二:指定子文档路径前缀渲染
描述候选解决方案
父文档右键菜单选择创建副本,支持选择是否连同子文档一起创建,方便在思源手动创建模板文档,后进行复用
其他信息
No response