成果1. 参考Obsidian随机生成读书笔记这个帖子里的代码,将生成的读书笔记根据关键词筛选,用dv.paragraph进行展示,因为自动生成的微信读书笔记每一个摘抄都有,我将原贴的标签#Quote换成
,就可以了,代码如下:
//使用时修改关键词即可
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]}`)
}
})
成果如下: