不限层级目录模板

看了这位老哥的帖子想到的: 分享一个思源笔记模板功能的高级用法——工作周日报模板 - 链滴 (ld246.com)

把循环语句全部写在同一行,来控制缩进,即可输出不同层级.真是一叶障目.

之后等凑齐一波再整理到 Organized 中,比较懒.近期准备更新集市模板的朋友直接拿去用也无妨.

2021 年 9 月 22 日 20 点 30 分 更新: 解决只能在笔记本下第一层级的文档中使用的问题

.action{$docid:=.id}
.action{$docPath:=""}
.action{$tab:="  "}
.action{$line:="- "}

.action{$getdocInfo := (queryBlocks "SELECT * FROM blocks WHERE id='?' and type='d' " $docid )}
.action{range $v:= $getdocInfo}
	.action{$docPath =$v.Path}
.action{end}

.action{$temp:= (splitList "/" $docPath)}


.action{$block:= (queryBlocks "SELECT * FROM blocks WHERE id !='?'AND type= 'd' AND path like '%?%' Order BY path" $docid $docid )}
- ((.action{$docid}))
.action{range $v:=$block}
.action{$a:=splitList "/" $v.Path}
.action{range $p:=$temp}.action{$a = rest $a }.action{end}
.action{range $i:= $a}.action{$tab}.action{end}.action{$line}((.action{$v.ID}))
.action{end}

实际效果

image.png

(教程文档不就是用来测试的嘛)

其他

因为我没有系统性的学习并编写过 golang 程序.模板是完全依照 sprig 提供的 API 来实现的.

下面的内容只是我几次尝试后瞎总结的,可能存在错误.

对于 package builtin 标准库中的函数,按照以下方式即可直接调用.函数名在前,参数在后.

.action{len $temp}
输出结果为2. 发完贴子才试出来,不然能写的再简单,以后再改.

而对于其他库中的函数,如 package time 中的函数,即函数前标注了 type xxx. 貌似意思是函数作为结构体成员.

image.png

调用时如下

(toDate "2006-01-02" "2021-06-28").Sub now)
Time.Sub Value

toDate "2006-01-02" "2021-06-28" 返回的是 Time 类型的变量.

2 操作
crowds21 在 2021-09-22 21:17:18 更新了该帖
crowds21 在 2021-09-22 20:31:00 更新了该帖

广告 我要投放

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • crowds21
    订阅者 作者

    啊,我确实,我再去改一下

  • 其他回帖
  • Achuan-2 1 评论
    订阅者

    但这个会有一个问题,不是笔记本下第一层级,就不会生成列表样式

    image.png

    1 回复
    搞定了,可以再试一下
    crowds21