专栏名称: 知更鸟在屋顶
知止而后定,let's ZigHolding.
目录
相关文章推荐
湖南日报  ·  拟录用本科生惹争议,删除公示名单?国企回应 ·  15 小时前  
湖南日报  ·  邓正安被查 ·  19 小时前  
湖南日报  ·  特斯拉,突发! ·  昨天  
湖南日报  ·  一本族谱+一杯芝麻豆子茶+?=“靶材之王” ·  2 天前  
湖南建设投资集团有限责任公司  ·  风采展示 | ... ·  2 天前  
51好读  ›  专栏  ›  知更鸟在屋顶

Obsidian Tasks 让人生没有搞不定的事(二):工作流中的每一处细微的改动,串成珍珠流动

知更鸟在屋顶  · 公众号  ·  · 2024-03-11 22:30

正文


01


Simpy put, we want to make the gradient flow smooth and richer with every new architecture design.


Vishal Rajpu t, YOLOv9: New Object Detection King


昨天讲到一段 话: 简而言之,我们希望在 新的架构设计中, 梯度 丰盈地 流淌。

最近回顾 CNN 架构时,层出不穷的设计,就像 Obsidian 眼花缭乱的插件市场一样,令人迷醉且迷茫。

读到这句话时,仿佛眉心被击中,向后躺倒的一瞬间,看见一座耸立的大厦,滂沱的乌云下, Loss 如注,层层叠叠地从顶层流下,它要浸润每一块砖瓦,像镀上一层黄金,在夕阳下熠熠生辉。

让梯度更丰盈地流淌,就是神经网络结构设计的主线。 让工作流顺畅地涌动,就是 obsidian 器为体用的主干道。

所以,扫清河道上的每一颗石子,哪怕再小。

昨天 展示的 Ho ver 事项面板中,还有个问题,如何在切换日记时自动刷新 Tasks?


02


这一段是摸索 Tasks 插件代码,觉得过程像解谜一样,挺有意思的。跳过不影响阅读。


Tasks 的设计很巧妙,为了避免无效刷新,只会在代码块重写、修改任务或打开新代码块时加载。当固定“今日事项”笔记,切换日记时,它并不能自动刷新。

Tasks 没有提供 dataview 强制刷新的命令。但考虑到每次改变任务,插件会自动刷新任务,猜测注册了事件。Ctrl+Shift+i 打开控制台,在 source 标签下找到 tasks-plugin 代码,搜索 `.on(`。只有 10 个注册事项,一个个看过去。发现 this.metadataCache.on("changed" 是缓存数据变化时的事件。所在的函数名是 subscribeToCache,即订阅缓存。而刚好上面一个函数是 notifySubscribers。通知订阅者?

Wow!大概率这就是强制刷新 Tasks 的函数了。那么如何调用呢?
  • notifySubscribers 对应的类为: var Ds = class

  • 搜索 `new Ds`,发现是 Tc 类的对象

  • 而 Tc 又是 app.plugins.getPlugin("obsidian-tasks-plugin") 的返回类

答应呼之欲出:执行 tasks.cache.notifySubscribers() 就可以刷新视图

在控制台中执行下面代码,果然刷新了视图。

let target = await app.plugins.getPlugin("obsidian-tasks-plugin");target.cache.notifySubscribers()



03


借鉴 打开文件时自动刷新 Dataview , 可以按照同样的方式刷新  Tasks。
(但如果这样的话,我就不会单独写一篇文章记录。)
一瞬间,我突然想到,Templater 有个启动时执行命令的功能。之前我想用这个功能实现自动生成日记,但没有成功,因为并不是每天重启软件的。
但这一刻,I get it!
新建文件【打开文件时刷新 Tasks 视图】,复制下面内容:
app.tp = tp;let target = await app.plugins.getPlugin("obsidian-tasks-plugin")if(!app.is_refresh_tasks_on_file_open){  target.is_refresh_tasks_on_file_open = true;  console.log("注册事件:打开文件时刷新 Tasks 视图");  app.workspace.on(    'file-open',     (file)=>{      target.cache.notifySubscribers();    }  );}-%>
Ctrl+, 进入 Templater 设置页面。在 Startup Templates 选项卡中添加脚本文件。







请到「今天看啥」查看全文