不限层级目录模板

本贴最后更新于 940 天前,其中的信息可能已经沧海桑田

看了这位老哥的帖子想到的: 分享一个思源笔记模板功能的高级用法——工作周日报模板 - 链滴 (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 类型的变量.

  • 思源笔记

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

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

    18601 引用 • 69242 回帖 • 1 关注
2 操作
crowds21 在 2021-09-22 21:17:18 更新了该帖
crowds21 在 2021-09-22 20:31:00 更新了该帖

相关帖子

欢迎来到这里!

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

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

    老久之前写的了,很多地方记不太清楚了.

    今天细看了一下. 如果想要实现通过文件名排序按照我这个模板确实没办法,得大改.

    因为我是通过对 path 排序得到的结果,而 path 都是文档的 id,id 则和创建的时间有关.最后直接通过 \ 确定上下之间的层级.

    如果想要按照我这个思路改动的话,你就得对 sql 查询返回的文档中,同一个层级的文档按照 content 字段排个序.然后再去输出结果.不像是编程语言,用模板来写实在是太麻烦了.

    你有耐心的话可以自己试试 😭

    1 回复
  • 其他回帖
  • Syngo

    请教下,如果要按照笔记名称排序需要怎么修改呢?截图中,内容块、云端下面的排序是乱的。

    1 回复
  • crowds21

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

  • Syngo

    试了一下好像不行,我自己再琢磨琢磨,谢谢

    1 回复
  • 查看全部回帖
crowds21
不带评论的观察是人类智力的最高形式 上海

推荐标签 标签

  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 9 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 421 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 1 关注
  • 音乐

    你听到信仰的声音了么?

    59 引用 • 509 回帖
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 682 关注
  • 倾城之链
    23 引用 • 66 回帖 • 96 关注
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 118 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    261 引用 • 662 回帖
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 132 关注
  • danl
    61 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 602 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 317 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖 • 3 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 628 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    139 引用 • 441 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    27 引用 • 66 回帖
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    108 引用 • 54 回帖 • 1 关注
  • 思源笔记

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

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

    18601 引用 • 69242 回帖 • 1 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 250 关注
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    228 引用 • 1450 回帖
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    83 引用 • 165 回帖 • 47 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 7 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖