模板一直有一个痛点就是没办法传参,通过利用思源的 go 模板自带的 SQL 查询实现传参。
废话不多说。
实现方法
.action{$docid:=.id}
.action{$block:= (queryBlocks "select * from blocks where type = 'h' and root_id = '?' ORDER BY updated DESC LIMIT 1" $docid)}
.action{$v:=(index $block 0)}
.action{$v.Content}
代码解释
- 获取文档 id
- 查询最近一个插入的在本文档的标题块
- 将列表转换为参数
- 获取 content 并输出
用法
将代码复制到思源模板,$v.Content 就是传入的参数。
应用
- 插入需要传参的挂件
- 插入汇总的嵌入块
- 快速嵌入嵌入快
- 快速建立链接
写在最后
$v 的属性可以在帮助文档中查询。
如果想传入多个参数的话可以用空格或者","分割然后利用 go 模板分割。
可以继续使用获得的参数进行 sql 查询来获取想要的信息
模板的计算是一次性的,所以更改标题不会更改已经插入的内容。好处是即使删除用来传参的标题也不会影响模板插入过的内容;坏处是无法动态改变参数,如果需要改变参数则需要重新插入。
希望大佬可以写出有用的插件。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于