来自 TiddlyMap 的 $:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder 和来自系统的 $:/StoryList 老是自动变:
created: 20200409022623558
creator: 林一二
-modified: 20200414104033109
+modified: 20200414135126182
modifier: 林一二
title: $:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder
type: text/vnd.tiddlywiki
没有实质性的变化,而且又经常发生在 wiki 部署后,这样在线版 wiki 就会弹出「This page is asking you to confirm that you want to leave - data you have entered may not be saved」。
但我只是想做浏览不想做编辑啊,这让我觉得很烦,于是我去问了一下解决办法。
看来只要修改 $:/core/save/all 就好了。于是我给这里面的过滤器加上了 -[[$:/plugins/felixhayashi/tiddlymap/misc/defaultViewHolder]] -[[$:/StoryList]]。
不行,这也没用,这是在生成 HTML 时不要把它们加进去,而不加进去它们更爱变。应该要加到 SyncAdaptor 的 filter 里才行。
原来是 onbeforeunload 导致的,我去仓库里搜到了是 $tw.utils.each($tw.unloadTasks 在用它,所以我就过滤了一下 $tw.unloadTasks。而且还不能立即做这个过滤,因为 $:/tags/RawMarkup 是在沙盒里执行的,不能修改 $tw 。
所以最终我跟着 Adding Babel Polyfill to TiddlyWiki 这篇教程,加了一个 startup script,在启动时、上述代码之后,就清理掉那个导致弹窗的 unloadTask,世界终于清静了。
最终,我把它包装成了一个 prevent-edit 插件。