onenote链接突然失效?注意这些陷阱
平心而论,仅从表面上来看,onenote的链接功能是非常强大的,从外链到内链(相关概念若不清楚,可以参考该系列之前的文章),提供了一套完备而且强大的链接体系。但用得多了,却发现一些让人难以忍受的设计上的致命缺陷(但从微软角度,或许是故意为之也说不准)。链接用得多的小伙伴们,是不是时不时就会遇到莫名其妙就失效的内部链接?若不清楚其背后原理,肯定会像同样奇葩的中文搜索那样,被弄得云里雾里。
很早就想写这篇文章,主要是想提醒看过我链接系列的朋友们,感受链接的强大时,一定要注意避开其中的陷阱,否则稀里糊涂建立大量内链后,某一天却突然发现大量链接失效——做多错多,就挺悲剧。觉得有义务提醒大家,但各种原因,没时间动笔。最近抽出点时间,立马就写出来了。
以上是感受加吐槽,下面开始正文。这篇文章不会谈太多细节——那样需要结合很多之前提到过的知识点(但看这篇文章仍然需要对前面的知识有一定了解,否则可能无法理解),只强调几点重要的原则,大家注意就好了。若需深扒原理,建议看之前的文章,并且做做实测。
之前的文章详细分析过内链的构成,其中最重要的元素是内部对象的id,三个内部对象(分区、页面、段落)都有自己的id,所谓内链,主要就是通过id来定位的。
1最安全的内链
基于页面id的内链是最安全的内链。因为页面id相当稳定,只需要注意一点:整理页面位置时,用移动页面,别用复制或剪切。在onenote中,移动某个页面至笔记本窗格的任何目录下,都不会改变该页面的id;而且在资源管理器下,复制粘贴.one文件,也不会改变分区内部各页面的id。
综上,页面id链接相当可靠,只需记住这一点:在onenote中整理页面时用移动!做到这点,页面内链可以放心用。个人建议大家多用页面链接,页面链接在级别上类似于网络上网页的URL。
2最危险的内链
三类id中,段落和分区的id都极易失效。不过,分区链接有.one文件作为双保险,而且数量有限,即便id失效,影响也不会很大,这里略过不谈。关键是段落链接,完全依靠段落id,链接数量可能巨大,但段落id却极其容易报销(意味着对应内链失效),这类链接会非常危险。
段落id何时有效?最基本前提也是用移动,别用复制或剪切粘贴。然而,继续类比页面id,你可能会觉得,将页面移动至其他分区、笔记本或从外部资源管理器移动分区文件时,既然页面id没变,其内部的段落id应该也没变化吧?若果真遵从了这个正常人类的正常逻辑,那onenote内链就趋于完美了,但微软岂能遂你意——它竟然在保持页面id不变的情况下让页面内的段落id全部销毁重建了!
用更为通俗的场景来解释上面这段话:
①.当你对某段落所在页面或分区做出以下任意一项操作,指向该段落的链接就会失效:将页面移动至其他分区或笔记本;将分区文件复制或移动到其他路径(这意味着当你将本地笔记从C盘迁移到D盘,或从电脑A迁移到电脑B时,里面的段落内链会全部失效!)。
②.段落内链仅在这样一种情况下有效:内链所在分区及笔记本得固定在当前位置不动,内链所在页面也只能在当前分区下移动,除此之外的其他任何改变对象路径的操作,都将导致段落内链失效。(这意味着段落内链唯一有点意义的地方可能就是地址固定的云笔记本了,而且对应页面仅限于在当前分区下活动。如此僵化的机制,实在让人失望。)
以上对内链的要点作了一番粗略总结,大思路应该无误,具体细节上可能存在不完善的地方(欢迎指正),毕竟我个人不可能去测试所有情况,现在看来也毫无必要了。我的建议是:构建链接体系时,多用页面链接,谨慎使用段落链接(要弄清楚它何时有效何时失效)。