给另一个小伙伴的思路 3, 可以做到这样某段和某段做对比的功能 (用分屏的方法) 吗? - 链滴 (ld246.com)
功能
右开一个 tab,并跳转到鼠标所在块。
演示
操作如下
方法 1:
(这是一次对 sy-run-js
插件的尝试,顺便推荐下这个插件。)
安装 sy-run-js
插件后,找个专门的文档存该代码,使用块菜单运行代码顶栏就有个按钮可执行了该片段了。 【注意:不是放在外观的代码片段中】
async function main() {
let actvie_tab = document.querySelector("div.layout__wnd--active[data-type='wnd'] li.item.item--focus[data-type='tab-header']");
let actvie_tab_id = actvie_tab.getAttribute("data-id");
let active_protyle = document.querySelector("div.layout__wnd--active[data-type='wnd'] .protyle[data-id='" + actvie_tab_id +"']");
let focus_block_id = active_protyle.querySelector(".block-focus").getAttribute("data-node-id");
let root_id = active_protyle.querySelector(".protyle-title.protyle-wysiwyg--attr").getAttribute("data-node-id")
let tempRes = await runJs.siyuan.fetchSyncPost("/api/filetree/getFullHPathByID",{id:root_id});
let aria_label = tempRes["data"];
actvie_tab.setAttribute("aria-label", aria_label);
let repeatTabs = document.querySelectorAll(`li[data-type='tab-header'][aria-label='${aria_label}']:not([data-id='${actvie_tab_id}'])`)
if(repeatTabs.length > 0){
repeatTabs[0].click();
window.openFileByURL(`siyuan://blocks/${focus_block_id}`)
} else {
let anotherTab = await runJs.siyuan.openTab({
app:runJs.plugin.app,
doc: {
id: focus_block_id,
action: ["cb-get-context","cb-get-hl","cb-get-focus"],
zoomIn: false
},
position:"right",
keepCursor:true,
removeCurrentTab:false
});
// console.log(anotherTab)
}
}
main();
plugin.saveAction(thisBlock.id, "右开tab");
方法 2:
另外,也可用 quicker,我个人是更喜欢这种方式的。也贴个动作给大家参考。 右开 tab - by 刘烟火 - 动作信息 - Quicker
前提是需先安装另一个插件 siyuan-plugin-jsrunner
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于