思路不复杂,但是dataview侧重查询结果的展示,对笔记内容的修改和呈现的能力暂时没有开放出来。基本思路:创建两种类型的笔记,一种药物笔记,一种靶向笔记。每类笔记在模板里可以设置好内置变量。然后分别在药物笔记里嵌入代码,在靶向的MOC笔记里嵌入代码。
1、创建药物笔记
2、创建靶向笔记
dv.paragraph("所有靶向B的药物:");
let myclassification = dv.current().myname;
let pages = dv.pages().where(p=>p.mytype == "药物" && p.myclassification == "靶向B");
dv.list(pages.file.link);
靶向笔记运行结果:
3、药物笔记里构造header引用格式的内容—这里试了很多方法,最终没有如愿,已经可以构造出![[XXX#XXX]]字符串,但是无奈无法在编辑模式下显示出来,在预览模式下显示出来有无法让ob识别成笔记header内容的链接,很是无奈,附上代码:
![[`$= {dv.pages().where(p=>p.mytype == dv.current().mytype && p.myclassification == dv.current().myclassification && p.myname != dv.current().myname).file[0].name + "#临床数据";}`]]
运行完的效果:
4、药物笔记页面内的代码:
dv.paragraph("---")
let myname = dv.current().myname;
dv.paragraph("以下是和" + myname + "比对疗效:");
let t = dv.current().mytype;
let c = dv.current().myclassification;
let pages = dv.pages().where(p=>p.mytype == t && p.myclassification == c && p.myname != myname);
let h = "临床数据";
for(let group of pages){
dv.paragraph('"' + group.file.name + '" '+ "的临床数据是:");
dv.paragraph(group.file.link.toString())
}
上面这段代码也达不到在header后面追加笔记内容的效果,原因在于dataview里的Link类,在构造方法内markdown()方法里,传递的type始终为file,所以没发构造出来。我找到了源代码的位置:
5、小结
感觉dataviewjs用起来的时候很多障碍,作者还在开发,很多函数没有封装出来,对笔记本身的操作没法顺畅的进行,这个也要一步一步走吧。
我抛个砖哈,看看论坛里的大佬怎么解决这个问题,你也继续试试哈!









