OneNote小斯想工具箱②:关于段落时间的重要细节

原创 小斯  2023-05-27 18:02 

以前分享过一个Onetastic脚本,用于查看段落的创建时间和修改时间。工具箱中也写了这个功能,因为段落时间属性是我个人最喜欢的OneNote对象底层属性之一。可惜的是,一旦牵扯到插件更新页面,时间属性就变得很不稳定。如果你也很看重时间属性,有些重要规则必须提前了解清楚。

其实,时间属性似乎并不是一个受关注的知识点。在我发过的OneNote相关文章和视频中,该知识点的阅读量均属于最低之列。如果你并不关注时间属性,这篇文章和这个功能完全可以跳过。但毕竟还是有一些对此感到关心的读者,因此我还是有必要在插件系列的最前面就作出相关说明,因为在调用某些插件功能时,会不可避免地批量更改本来不应该被更改的段落时间属性值。

1

时间属性的意义

段落时间属性,指的是段落的创建时间和修改时间,这是段落对象的基本属性之一,在OneNote中新建任一段落时,都会自动带上这两个时间值。

也就是说,你在OneNote中记录下的任何一页笔记,都是自带时间线的。你可以随时回来查看页面中的任一段落是在何时被创建以及何时被修改。例如,我时不时会从以前的笔记中找灵感,碰到有启发的观点,我一般会看看这是什么时候的想法,然后对比总结一下两个时期的观点。

2

“时间cl”功能介绍

这个功能的名称是“时间cl”,c指creationTime,l指lastModifiedTime。

用法很简单,光标定位于(或选择)某个段落,点击工具箱中的“时间cl”功能按钮,就会弹出当前段落的时间属性值,如下图所示。

OneNote小斯想工具箱②:关于段落时间的重要细节 onenote 第1张

3

时间属性何时会被更改?

在OneNote中新建一个段落时,创建时间和修改时间均为新建时的时间,若隔一段时间后回来修改该段落,创建时间不会变化,修改时间则会变为修改时的时间。本来是再简单不过的逻辑,到了插件这里就变得乱七八糟了,很乱!应该是bug,尚未找到其背后的规律。

在插件中,只要涉及到更新页面内容(即调用了更新页面的方法),当前笔记容器(甚至当前页面)的所有段落的修改时间(甚至创建时间)都会更改为当前时间,即便其中很多段落的实际显示内容并未发生任何更改。正常人的理解应该是OneNote中手动操作时的那个逻辑:实际修改了哪个段落,就将哪个段落的修改时间更新即可。但OneNote给的接口是,不管你改的的是哪个段落,它都会让你整个笔记容器中所有段落的修改时间全部更新。如此设计已经很让人头疼,更不可思议的是,它有时甚至会把所有段落的创建时间都更改为当前时间。也就是说,只要你用插件更新页面,它不仅会毁掉你所有段落的修改时间,甚至连创建时间都极有可能会被毁掉(何时毁,何时不毁,尚未找到规律),全部重置为当前时间。

需要说明的是,时间属性被毁并不会对实际显示的笔记内容产生任何影响,只是这两个时间值不再代表真实的创建时间和修改时间。如果你并不关心时间属性,那这类属性值是否被毁就无关紧要了,毕竟它并不影响内容本身。

OneMore和Onetastic(新版不知,没关注)的底层实现似乎并不关注这个属性,更新页面时都是更新整个页面,即整个页面的所有段落的时间属性都会被修改。新版工具箱在这方面做了专门的处理:能不更新页面时,尽量不更新页面;必须更新页面时,尽量只更新发生内容更改的那个笔记容器,而不是直接更新整个页面(这样做的好处是,只有那一个笔记容器中的段落时间被更新,页面中的其他笔记容器则不会受影响。)。

以分享版中已有的“页数”功能为例,这个功能已经做了优化处理(即仅更新当前笔记容器)。例如,要在当前已经包含很多笔记内容的笔记容器中插入页面统计结果,我不会直接在当前光标处插入,而是在旁边新建一个容器后插入页数结果,然后这个结果拖进目标位置。而“折叠”控件未做这种处理(为了将“参考资料”自动设置为标题1样式,导致现有的相关底层方法不能被直接调用;而我通常是在新建页面时就会直接生成这个控件来做素材的互链引用,在新页面时更新整个页面并无什么影响,所以没做单独处理),要想当前页面的时间属性不被更改,可以新建一个临时页面,生成控件后再剪切到目标位置。上面这种操作,确实麻烦了不少,就看你是更看重时间属性还是便捷性了。

4

小结

这篇文章介绍了时间属性的相关理论基础:如果你不关注时间属性,这篇文章完全可以忽略,插件功能随便用;如果你关注时间属性,这些理论最好了解一下,并据此找出一套合适自己的规则,合理调用相关功能。

并不是所有插件功能都会用到更新页面,而对于用到它的功能,工具箱会尽量进行优化,以后发布相关功能时,也会进行相关说明。

对关注时间属性的人来说,本文介绍的这些细节很基础很重要,所以在系列文章的最开始花了很大篇幅来进行说明。不过,“时间cl”这个功能本身很简单,也算不上急迫,就不单独作为一版发布了。下一篇文章发布新功能时,会将这个功能一起打包发布。

公众号“小斯想”主界面对话框回复“01”,获取最新版“小斯想工具箱”以及OneMore的安装文件。

本文地址:https://cas01.com/7761.html
公 众 号 :注意两个号的区别,小斯想专注于OneNote和思维导图等具体的知识管理软件的经验分享。(OneNote为主);cas01专注于知识管理理论及实践成果的分享。(知识管理理论及实践)。
温馨提示:本站发布的压缩包如需密码解压,若无特别说明,密码统一为:cas01.com
版权声明:本文为原创文章,版权归 小斯 所有,转载请保留出处。

发表评论


表情