欢迎光临散文网 会员登陆 & 注册

给Obsidian增加高亮Callout/Admonition中文字功能(用于一键中英对照&pdf回链)

2023-11-03 00:11 作者:一鸣惊人_001  | 我要投稿

背景

我看书/文章的时候经常采用翻译成中英对照的形式。而对于callout中的内容一点击就会打开,不能直接选择进行高亮,因此之前我的中英对照是只有英文在callout中(参考前面的文章)。因此增加点击callout不直接展开、选择callout中的文字可以进行高亮的功能。

效果

1. 一键从pdf到中英对照双列callout,并且附上pdf回链

一键从pdf到中英对照双列callout,并且附上pdf回链

2. 可以对callout中的文字&普通的文字进行高亮(可以在设置中自定义设置)

高亮文字

3. 双列callout可以轻松调整宽度(搭配Editor Width Slider)

调整宽度

4. 回链可以正常点击,跳转到pdf (这里可以是bookxnote、zotero、bookmaster等等)

点击回链跳转


实现

  1. 禁止callout的点击事件。注册mousedown事件,在立面判断是点击到callout元素,取消事件的默认行为、禁止事件冒泡

  2. 高亮文字。这里的关键是如何从选择的文字来修改原始文件内容,这里obsidian的editor接口无法直接获得在callout中选择的文字对应于文件内容的什么什么位置。如果采用获得选择的文字,然后对文件内容进行替换的话,无法处理所选择的文字在文中出现多次的问题。因此这里我采用的是通过docView来联系DOM元素与文件内容,获得所点击DOM元素在文件内容中的索引,然后获得所选文字在DOM元素中的offset,然后修改文件内容。


给Obsidian增加高亮Callout/Admonition中文字功能(用于一键中英对照&pdf回链)的评论 (共 条)

分享到微博请遵守国家法律