本系列会对笔记容器做一次全面梳理。理解了笔记容器,就算是抓住了onenote笔记内容的核心。如果让我给onenote底层对象的重要性排序,笔记容器毫无疑问会排在第一位。......
2023-05-30 0
本系列前面的文章已经将onenote内部链接、外部链接相关知识点都梳理了一遍,对于理解onenote链接基本够用了。但鉴于对象ID属性的重要性,可以再进行一些深入探讨。
ID作为唯一的身份标识符,无论是在网络世界还是现实世界,都起着重要作用。原因很简单,你想和某个对象沟通,最基本的前提是找到这个对象,并确定他就是他,而不是其他。如何做到?通过ID。
1.onenote中的对象ID是什么?
分区、页面和段落的链接地址中都带上了ID属性。这个ID,据我的理解,其实就是一个GUID即全局唯一标识符,具体细节可参考此文:
COM-组件对象模型,与GUID-全局唯一标识符
GUID可以理解为全宇宙唯一的值(按规定算法生成两个相同GUID的可能性极小极小,概率上虽不是0,但可以当做0),onenote中新建分区、页面或段落时都会为对象即时赋予一个GUID,这就确保了onenote中的这些对象全部是宇宙间独一无二的,通过GUID就能找到对应的对象,不用担心找错。
2.直接用ID定位对象
有了ID值,要在onenote中找分区、页面或段落,可以直接用ID进行准确定位,丝毫不用考虑外部文件(夹)路径的变化。
onenote://D:/小斯想笔记本/小斯想分区组/小斯想分区.one#小斯想页面§ion-id={F3786832-BC35-45D6-97A4-98B7F4A025F6}&page-id={CE390548-D979-459D-9DA0-FE19F992E473}&object-id={C2CCD78A-85F8-4239-BA40-DA1A2EFF9A60}&21
例如,通过onenote://section-id={F3786832-BC35-45D6-97A4-98B7F4A025F6},可以直接定位至“小斯想分区”;通过onenote://page-id={CE390548-D979-459D-9DA0-FE19F992E473}可以直接定位至“小斯想页面”。
不过,定位至具体段落时似乎有所不同,测试结果是:object-id前面必须得带上页面ID,后面必须带上&21(位置索引号,不同位置的索引号不同,缺了它只能定位至页面,不能具体至段落),这样才能准确定位至段落,例如通过onenote://page-id={CE390548-D979-459D-9DA0-FE19F992E473}&object-id={C2CCD78A-85F8-4239-BA40-DA1A2EFF9A60}&21,可以准确定位至“小斯想段落”。至于段落ID定位为何要搞得如此复杂,尚不理解其底层逻辑。
3.ID何时有效,何时失效?
本来应该结合onenote对象的生命周期来谈这个问题,但缺乏官方的权威参考资料,就不瞎猜了。在这里,还是结合我的实际使用体验总结链接地址中ID的有效性,目前来说,最重要的结论有两个:
对象所在的笔记本必须处于打开状态,地址中的ID才有效。所谓打开,指的是笔记本必须位于onenote的“笔记本窗格”(NotebookRoot)下。
移动对象,ID不变;剪切后粘贴对象,建立的是对象的副本,拥有全新ID,而原ID对应的对象可以理解为已销毁(分区和页面对象会在回收站保留一段时间再销毁,段落对象会直接销毁),原ID失效。所以,如果你链接了某个内部对象,可以移动调整其位置,但如果剪切或删除了,对应链接中的ID部分就会失效。
ID部分还有些可以深入的细节,但不想继续往下了。已经总结的这些,足够建立链接管理体系了。所以,底层理论探索部分,先到此为止了。
相关文章
本系列会对笔记容器做一次全面梳理。理解了笔记容器,就算是抓住了onenote笔记内容的核心。如果让我给onenote底层对象的重要性排序,笔记容器毫无疑问会排在第一位。......
2023-05-30 0
在OneNote电子笔记本中可以通过手写的方式快速记录笔记(建议使用支持触控的平板电脑),然而手写笔记往往显得不美观。将手写笔记转换为文本可以规范格式,并减少重复录入的工作量。......
2023-05-30 0
大家在使用OneNote时经常只是使用那么一两个工具来进行记录。有时候会导致笔记过于混乱,整理和查看笔记时看不懂。也是挺烦扰的。所以,接下来,我将分享几个我在使用OneNote时经常使用的......
2023-05-30 0
1.Send to OneNote 2016是把文档以打印方式插入OneNote 2016的虚拟打印驱动。后来UWP版也出了这么一个虚拟打印驱动Send to OneNote,最近,OneNote 2016也就是桌面版改名OneNote,它的虚拟打印驱动改为OneNo......
2023-05-30 0