求Yaml的案例分享

通用 YAML 的 Modified 字段有些问题,一旦插入之后就不会改变了。Templater 提供一种动态命令,即 <%+ tp.file.last_modified_date()%>。但是这个命令在 YAML 中失效了,只有在模板正文中起作用。
目前没有想到一种好的解决方案,一种折中的方法是使用 Modified:: <%+ tp.file.last_modified_date()%>,但是这样又会和其他的 YAML 属性分离,而且会出现在正文中。

1 个赞

是的,我也发现这个问题,似乎没什么好的办法解决。好在这个字段相对不是那么重要,若要查询也可以在文件属性里看最近修改时间

同时写一些 hexo 的 blog ,就直接用的 hexo 生成的格式. 完全看个人需求,目前暂时够用

---
title: temp
categories:
  - temp
abbrlink: 123456
date: 2021-05-07 12:00:00
updated: 2020-09-02 13:00:00
---

obsidian-prettify 这个插件不是可以修改,编辑时间么! 模板创建 note 后,时间类型的元数据如何~~自动更新?~~ 已解决 这个帖子就是他在配置这个插件

YAML字段作用个人理解

字段用中文与英文都可以
打分范围: 0分 - 10分

title — 主题

说明:文章的主题
作用:一眼就能看懂本文在讲什么
打分:5分

uid — 创建时间

说明:文件的创建时间
作用:通过对同一时间创建文件的查看,总结当时在研究什么
打分:4分

source — 来源

说明:文件内容的来源位置
作用:方便去查找原来引用的位置
打分:4分

tags — 标签

说明:文件的几个小的主题
作用:用多种方式对文章进行分类,可以从其他角度找到这个文章
打分:8分

explain — 说明

说明:一句话总结文件内容的中心思想
作用:一眼就能看懂本文在讲什么
打分:5分

<!--210914_194501-->

说明:对新加的话,添加一个修改时间
作用:可以看出来文章的怎样变化的
打分:6分

11 个赞

好的,我去测试一下这个插件。:slight_smile:

别的我就不说了, 我只分享一下我对于yaml中标签的快速输入的小小心得,

我像你这样设置了一个模板,但是{{DATE:YYYYMMDDHHmmss}}没有变成数字,是需要什么插件吗?

使用插入模板或者新建文件时使用模板,才会变成当前日期和时间

1 个赞

多谢多谢!!!!

Linter这个插件都解决了!去标签的#,还有时间都搞定了

1 个赞

特别的详细!正在发愁怎么整理自己的Yaml,看了您的这个解析马上有思路了!感谢



借楼问一个template写yaml的问题,就是我新建文件的时候,从模板触发, 此时标题名自动是未命名,但是如果此时tp.file.title就解析的的话,之后的yaml的名字就不会自动变了?难道我还要再改动一次吗?

我的Templater script供參考:

<%*
let title = tp.file.title;
if (title.startsWith("未命名")) {
  title = await tp.system.prompt("新建筆記檔名", title);
  if (!title) return;
}
if (title == "") {
  title = "未命名";
} else {
  await tp.file.rename(title);
}
4 个赞

但是linter 好像UID::{{DATE:YYYYMMDDHHmmss}},不生效

我昨天在YAML中尝试了Templater的动态命令 <%+ tp.file.last_modified_date()%>用Dataview是可以筛选排序YAML中用动态命令创建的修改时间的。

但因为我用的Dataview最简单的查询语言,如果源文件更新,修改时间变了的话,筛选用的视图表格之类的也得重新编辑才能刷新修改时间。或许用JS能解决源文件更新自动触发的问题。

你好, 我想请问最后的那个添加一个修改时间是要怎么填写在YAML里? 直接复制就可以了吗? 这个吗? 还是说需要修改一些格式? 谢谢你

就我所知,Linter plugin有自動更新修改日期的功能。

3 个赞

Linter插件支持自动更新修改时间的,看下我另一个主题发的帖子:
https://forum-zh.obsidian.md/t/topic/23351/12?u=jzman

请教下最后一个如何使用呢