前言:因为文档导航插件,始终受限于文件夹,于是一直在尝试用双链来解决。偶然看到,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();



一个基于双链展示层级的思路,在 obsidian 中早有实践。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于