最终效果如图所示:
需要用到的插件:
- Homepage
- Activity History
- Dataview
- Calendar
正如上篇文章 【搭建你的日记本】在文章正文中添加天气信息中所说的,我将日记从DayOne迁移到了Obsidian。DayOne有一个很漂亮的首页,能够显示已经记录的日记篇数,以及连续记录的天数,还有一个很好看的时间线,可以看到自己每天记录的内容。这篇文章主要介绍如何搭建一个实用的主页。
主页
Homepage插件可以锚定一个页面作为首页,每次启动Obsidian的时候都会显示这个页面,我们只需要照常创建一个笔记,然后将其在Homepage中设置为主页即可:
足迹
足迹这一模块由两个部分组成,上方是一个类似Github的热力图,下方是一个简单的统计总结。
热力图通过插件Activity History实现,这个插件几乎不需要什么设置,只需要在设置里给出要追踪的目录即可,剩下的就是自定义的部分,可以自定义不同热度在热力图中的颜色。
统计总结使用Dataview实现,代码如下:
今天是`=dateformat(date(today),"DD")`,`=date(today).year` 年已经过去了 `=(date(today)-date(date(today).year + "-01-01")).days` 天
今年你总共在`$=dv.pages('"日记/2023"').file.length`天中留下了你的足迹,继续加油!
这里有个小坑,原以为Dataview可以像SQL一样直接通过COUNT来计数,结果似乎是不可以的。所以这里参照这篇文章中的方法用dataviewjs来实现。内联的dataviewjs代码需要在设置中开启,而且dataview前面写=
,dataviewjs前面写$=
,这点不同需要稍微注意一下。
那年今日
那年今日的功能可以用Dataview查询实现,代码如下:
今天是 =dateformat(date(today),"DD")
,那年今日,你曾记录过:
table WITHOUT ID file.link AS "日记", dateformat(file.ctime,"DD") AS "创建时间", dateformat(file.mtime,"DD HH:mm:ss") AS "最近修改时间"
from "日记"
where dateformat(file.ctime,"MM-dd") = dateformat(date(today),"MM-dd")
limit 100
筛选出创建时间中的月份日期和今天相同的文档即可。
Future
- Activity History插件追踪的是文件的个数,而非字数,作为日记本而言,一天可能只会建立一篇日记,所以热度图的颜色没有特别大的意义