关于思源笔记模板中嵌入块 sql 传参的实践

缘起

思源笔记模板好用,但要设计好自己想要的模板不容易。

前因后果

在前一版的 daily note 模板中我在模板嵌入块中使用固定 id 获取内容块(标题为‘05 月主要工作任务记录’),当月基本不动是可以的。

{{ SELECT * FROM blocks WHERE id = '20250506083259-jd1y1s2'}}

但跨月之后就不可以了,模板设计太死板。

开始修改模板,思路为:每次使用模板时判断是 X 月,用嵌入块 sql 语句获取已经提前创建的标题为“X 月主要工作任务记录”的 h3 内容块,步骤如下:

  • 获取当前月份
  • 构建内容块标题(join 函数 将月份变量 X 与“月主要工作任务记录”字符串合并)
  • 传递参数到 sql 语句中

完整代码如下

.action{ $currentWeekdaydz := mod (now|Weekday|add 6) 7 } .action{ $mondaydz := now.AddDate 0 0 (mul -1 $currentWeekdaydz | int) } .action{ $dz_mw := list ($mondaydz| date "01") "月主要工作任务记录" | join "" } {{ select * from blocks where subtype = 'h3' and content = '.action{ $dz_mw }' }}

以上代码参考其他网友模板代码,未精简。

我认为关键点是 '.action{ $dz_mw }'实现传递参数给 sql 语句。

特此分享记录。


2025-6-5 11:48:58

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    26108 引用 • 108392 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...