代码主要摘抄 @BryceAndJuly 的 【分享】使用当前文档的二级标题快速制作闪卡,修改了点击的方法,看到了这个帖子,才发现自己陷入思维定式,之前没想到可以直接这样加按钮 hh
设置方式:参考大佬的文档就可,基本就是复制到代码片段启用下就可以了
随机的范围通过 SQL 限定,案例里面的 id 是我 dailynote 的文档 id,这样可以保证随机的都是我 dn 流程添加的内容,方便我渐进归纳(等后面看找一个优先级调度模块放进来就可以渐进了 hh)
另外求问一个:页签移动到新窗口的事件是怎么调的,看能不能直接实现在新窗口打开文档,这样体验相对好一些
代码贴上:
// 请求函数
function request(url, data = null, method = "POST") {
return new Promise((resolve, reject) => {
if (method.toUpperCase() == "POST") {
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(data),
})
.then(
(data) => resolve(data.json()),
(error) => {
reject(error);
}
)
.catch((err) => {
console.error("请求失败:", err);
});
}
});
}
// 打开随机文档,编辑sql选定范围
async function randomNote() {
let sql="select root_id from blocks where type='d' and path like '/20211209181026-i3s9wiq%'";
let res = await request("/api/query/sql", { stmt: sql });
// console.log(res)
if(res){
let index = Math.floor(Math.random()*res.data.length)
// console.log(index,res.data[index])
window.open("siyuan://blocks/"+res.data[index].root_id)
}
}
// 添加一个按钮
const barMode = document.getElementById("barMode");
barMode.insertAdjacentHTML(
"beforebegin",
'<div id="randomNotes" class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="随机漫游" ></div>'
);
const randomNotesBtn = document.getElementById("randomNotes");
randomNotesBtn.style.width = "auto";
const randomNotesIcon = `<svg t="1674130669751" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4526" width="200" height="200"><path d="M928 160H96a32 32 0 0 0-32 32v672a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32z m-32 672H128V224h768v608z" p-id="4527" fill="#9aa0a6"></path><path d="M230.592 448.096H544a32 32 0 1 0 0-64H230.592a32 32 0 0 0 0 64zM230.592 640.096H544a32 32 0 1 0 0-64H230.592a32 32 0 1 0 0 64zM768 704a32 32 0 0 0 32-32V350.016a32 32 0 1 0-64 0V672a32 32 0 0 0 32 32z" p-id="4528" fill="#9aa0a6"></path></svg>`;
randomNotesBtn.innerHTML = randomNotesIcon;
randomNotesBtn.addEventListener(
"click",
(e) => {
randomNote();
e.stopPropagation();
e.preventDefault();
},
true
);
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于