前言:因为文档导航插件,始终受限于文件夹,于是一直在尝试用双链来解决。偶然看到,AMOC 在 obsidian 中的用法。于是试了一下,能力有限,希望大佬能帮忙写出:同级文档,和非父子级文档(也就是正文的双链)。
目前实现效果:通过 query&view 识别“父级”字段,然后筛选反链得到子级文档。代码如下:
//!js const query = async () => { // 创建 DataView 实例 let dv = Query.DataView(protyle, item, top); // 获取当前文档的所有反向链接块 let blocks = await Query.backlink(protyle.block.rootID); // 过滤出 markdown 字段中包含指定关键词的块 let filteredBlocks = blocks.filter(block => block.markdown && block.markdown.includes('父级')); // 如果没有符合条件的块,直接返回 if (filteredBlocks.length === 0) { dv.addmd("子级为空!"); dv.render(); return; } // 创建折叠内容的 HTML 元素 let content = dv.addlist(filteredBlocks, { renderer: (block) => { // 自定义列表项的渲染方式 return `[${block.hpath || "未知路径"}](siyuan://blocks/${block.id})`; // 如果 hpath 不存在,显示“未知路径”,并附加块的 id } }); // 添加折叠列表 dv.adddetails('子级', content); // 渲染 DataView dv.render(); }; // 执行查询 query();
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于