SiYuanNote 模板
编写于 1.2.1 版本
最后修改日期 : 2021 年 7 月 28 日
SiYuan 群中,一直有群友提起模板相关的问题,而帮助文档中的描述又过于粗糙.因此总结了一些在写模板过程中的一些基础知识. 本人水平有限,如有错误和描述粗糙之处,还请多多包涵.
此外,如果你是文科生,没有学过 C 语言,没有任何编程基础,那么真的不建议在模板上花费太多时间. 能够使用一些基础的样式就足够了.可以留下自己的一些构想,编写模板其实缺少的是构思和想法. 有编程基础的群友说不定会抽空把它实现出来.
思源模板主要涉及三个部分
- Markdwon 语法
- SQL 查询
- go 模板语法
Markdown 语法
基础语法
kramdown 内联属性
- style
- color 颜色
- background-color 背景颜色
- width 宽度
- flod 是否折叠 1 为折叠
- 属性
- alias 别名
- name 命名
- memo 备注
- 超级快布局(在后面的示例中展示)
没有直接测试过,但是 html 里能放在 style 中的应该都能放在思源模板中.
TODO :而自定义的属性如何直接在模板中设置
示例
字体颜色和背景颜色
{: style="color: var(--b3-font-color1); background-color: var(--b3-font-background1);"}
居中
{: style="text-align: center;"}
- 折叠
- 1
- 2
- 3
{: fold="1"}
设置属性
{: alias = TestAlias" name="TestName" memo="TestMemo"}
超级块布局
{{{col
{{{
第一列
}}}
{{{
第二列
}}}
}}}
思源内置的颜色
SQL 查询
基础内容
.action{$blocks :=queryBlocks
"SELECT * FROM blocks WHERE
content LIKE '?' AND
updated > '?' LIMIT ?"
"%foo%" $today "3"}
学习到何种程度? 帮助文档中的这一句话能看懂就 OK.
blocks*$blocks.ID$blocks.Path
感谢思源让我巩固了 SQL 知识
常用的技巧
-
LIKE 和 =
- = 表示搜索结果必须于给出的一模一样
- LIKE 配合 通配符 使用,即模糊搜索
-
? 表示占位符 , 上例中,按照顺序依次代表后面的 "%foo%" $today "3"
-
LIMIT 限制查询结果的数目,如果没有设置会默认遵守 思源设置的搜索数目限制
-
数据处理函数
-
length(col) 用于返回值的长度
-
golang 模板语法
{{ 要执行的操作 }}.action{要执行的操作}
- 参考资料
基础语法
:==.action{/*这是注释*/}
Sprig 函数 TODO
思源中封装了该项目的函数,可以直接使用,打开该网站需要科学上网. 后续可能看情况补充一些常用的函数.
regexFind "[a-zA-Z][1-9]" "abcd1234"list 1 2 3list "hello" "world" | join "_"hello_worldhas 4 $myList$new = append $myList 6
示例
逻辑控制的示例代码会添加到 Organized/getFiles 模板中
.action{/*初始化变量*/}
.action{$var:=1}
.action{/*变量赋值*/}
.action{$var=1}
.action{/*输出变量值*/}
.action{$var}
.action{/*下面是一个使用range和 if 的小例子*/}
.action{/*获取所有文件夹路径*/}
.action{$filePathList:= list $dirPath}
.action{range $index, $v:=$block}
.action{$filePath = (regexFind $regexDirPath $v.Path )}
.action{if not (has $filePath $filePathList)}
.action{$filePathList = append $filePathList $filePath}
.action{end}
.action{$numOfSearch = $index}
.action{end}
=$numOfSearch$idnex