将ob里的时间段及用时(即数字)进行变色处理,以提升笔记阅读感观

一,缘起

之所以会想着对ob里面的数字进行一个颜色显示上的调整,其最主要的原因呢,是有一天看到了一篇文章(链接见:My productivity app is a single .txt file),我对作者的使用方式非常感兴趣,并决定在ob里进行试用。
这个教授他用于管理日程并记录进度的方式呢,就是一个txt文件+电子日历,他已经用了12年了,显然非常有值得学习的价值。
为什么说这个方法也比较符合我呢,因为我也是希望自己可以高效做事情,同时也希望一步步记录自己的学习或工作过程。但是在现有的工作体系下,我现在最大的问题是,各项记录(比如生活、工作、学习等)都分的非常散——基本分散在不同的APP中——不便于统计的同时,也让我的注意力在不同的地方切换来切换去。
所以呢,我现在就拟在OB里适用这个教授的管理方式,即只聚焦于一个md文件。
目前在日常的记录方面没有什么大的问题,但是我想要在ob里实现将时间用时进行颜色高亮的功能,以便在阅读自己的记录时,可以更加的直观。
最后经过obQQ群里的几位大佬的指点,实现了笔记效果如下所示:


感兴趣的小伙伴可以往下看,下面是具体的实现方式。

二,工具准备

需要用到一个插件以及一个学习正则表达式的网址。
插件名称:Dynamic Highlights(下文简称插件)
正则表达式的学习网址正则表达式学习

三,插件的配置内容

其中编辑器的选项如下图所示:


插件里配置如下(直接将以下文本复制至插件配置就可以)

{
  "time": {
    "class": "time",
    "color": "#42188000",
    "regex": true,
    "query": "\\d{2,2}:\\d{2,2}",
    "mark": [
      "match"
    ],
    "css": ".time{\n  color:#559751;\n}"
  },
  "hours": {
    "class": "hours",
    "color": "#42188000",
    "regex": true,
    "query": "\\d{1,2}.\\d{1,2}[mh]|\\d{1,2}[mh]",
    "mark": [
      "match"
    ],
    "css": ".hours{\n  color:#DA5D39;\n}"
  }
}

其中正则表达式的含义为(正常的写法应该如下所示,不知为何用插件导出我的配置时会有两个\线, 如果在实现时有问题的话,按下文进行修改就可以):
\d{2,2}:\d{2,2}——匹配类似于“20:01”样式的字符串
\d{1,2}.\d{1,2}[mh]|\d{1,2}[mh]——匹配类似于“0.5h或40m”样式的字符串
附一个插件的实现形式:


好的,分享结束。

12 个赞

如果是直接用14位时间戳(例如20220322203549)的话,也可以直接修改正则表达式来进行表示吗?

可以的
\d{14,14}
试一下,应该是这个表示吧?

1 个赞


我感觉挺有意思的哈哈哈,我原本是想来中文论坛搜下间隔重复的,然后刚好看到你的帖子,发现在群里聊过哈哈哈。

  • 不过我目前的话,就还没怎么学过正则,可能得去重新学下的样子哈哈

哈哈,是非常有意思~我那个帖子里分享的学习正则的网址挺不错的(也是别人推荐给我的),我也只会非常简单的写法,但已经够用了~

1 个赞

感谢分享,这是一个很好的思路。一直想在ob中记录时间,回头试试看

这个方法挺好,解决了任务管理和时间管理的一个大问题。

很棒!可惜在阅读视图下或导出pdf就失效了。

json文件里确实是会有两个\
在插件提供的编辑器里,只要一个\
如果将一个\的代码片段粘贴进去,会报错。
以上是我试验的结果。
谢谢提供这么好的思路,以及单文件记录法 :grinning:

Obsidian 自定义时间戳样式 | 叶星优酸乳 (weiyexing.ml)

单文件,但是多个 App 配合,标题很有噱头,但实操不应该着重于单文件而是工作流的优化。

有办法在 reading 和 preview 也展示 highlight 效果?我觉得如果还可以做到在 Dataview query 的结果中展示 Highlight 效果就完美?

在reading 和 preview模式里,应该是用CSS来实现

这个插件应该是针对编辑模式的

楼主的截图阴影样式好好看,可以问下是用什么工具截的吗?

刚才用 Snipaste 复刻实现出来了!没事啦hhh