【求助及经验分享】随机显示读书笔记,结合dataviewjs和weread plugin

成果1. 参考Obsidian随机生成读书笔记这个帖子里的代码,将生成的读书笔记根据关键词筛选,用dv.paragraph进行展示,因为自动生成的微信读书笔记每一个摘抄都有:pushpin:,我将原贴的标签#Quote换成:pushpin:,就可以了,代码如下:

//使用时修改关键词即可 
const term = "📌" 
const files = app.vault.getMarkdownFiles() 
const arr = files.map(async ( file) => { 
const content = await app.vault.cachedRead(file) 
const lines = content.split("\n").filter(line => line.contains(term)) 
return lines }) 

function generateArray (start, end) { return Array.from(new Array(end + 1).keys()).slice(start) } 

Promise.all(arr).then(values => { 
//不包含本文件 
let noteArr = values.flat().filter(note => !note.includes("const term =")) 
//生成一个连续数值的数组 
let arrNum = generateArray(0,noteArr.length-1) 
let result = [ ] 
let ranNum = 3 
for (let i = 0; i < ranNum; i++) { 
var ran = Math.floor(Math.random() * (arrNum.length - i)) 
result.push(arrNum[ran]) 
arrNum[ran] = arrNum[arrNum.length - i - 1] 
} 
for(let i=0; i< result.length;i++){ 
let j = result[i] 
dv.paragraph(`${noteArr[j]}`) 
} 
})

成果如下:

1 个赞