就是将块的链接贴到五彩的想法中,然后用脚本做处理,实现点击想法中含有思源链接就直接打开
效果预览

JS 代码
// ==UserScript==
// @name 五彩 x 思源笔记 联动跳转
// @name:en Wucai & Siyuan Protocol Link Jumper
// @namespace http://tampermonkey.net/
// @version 1.1
// @description 当点击五彩插件(mywucai.com)创建的、且笔记内容为思源协议(siyuan://)的划线时,直接通过协议链接跳转到思源笔记应用对应的块。
// @description:en Click on a highlight created by the Wucai plugin (mywucai.com) whose annotation is a Siyuan protocol link (siyuan://) to jump directly to the corresponding block in the Siyuan Note app.
// @author Your Name
// @match *://*/*
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 使用事件委托,监听整个文档的点击事件,这样效率更高且能适应动态加载的内容
document.addEventListener('click', function(event) {
// 1. 检查被点击的元素或其父元素是否为五彩的划线元素
// 五彩的划线元素 class 通常以 'wucaiclrx' 开头
const triggerElement = event.target.closest('[class^="wucaiclrx"]');
// 如果点击的不是划线区域,则直接返回,不执行任何操作
if (!triggerElement) {
return;
}
// 2. 查找页面上是否存在五彩的笔记弹窗(poptip)
// 根据您提供的截图,弹窗的 class 是 'wc-highlight-anno-poptip'
// 这个弹窗通常在鼠标悬浮或点击时出现,所以我们假设在点击时它是存在的
const poptip = document.querySelector('.wc-highlight-anno-poptip');
if (poptip) {
// 3. 获取弹窗内的文本内容,并去除首尾空格
const link = poptip.textContent.trim();
// 4. 检查内容是否以 'siyuan://' 开头
if (link.startsWith('siyuan://')) {
// 打印日志,方便调试
console.log('五彩思源联动脚本:检测到点击,尝试跳转到 ->', link);
// 阻止事件的默认行为(例如,如果划线在一个链接上,阻止页面跳转)
event.preventDefault();
// 停止事件冒泡,防止触发其他上层元素的点击事件
event.stopPropagation();
// 5. 执行跳转
window.location.href = link;
}
}
}, true); // 使用捕获阶段,可以更早地处理事件
})();
展望
为笔记添加链接别名或属性,参考「网页视图」插件实现点击笔记内外链时先查询本地笔记属性是否有匹配链接然后直接打开相应笔记?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于