20240706 14:52 更新
// 下面是该Block的全部配置内容
const SourceFolder = "Videos/Animes"; // 数据来源是一个文件夹
const coverField = "cover"; // 想要作为封面展示的yaml 键名
const ItemProperties = {
"封面": "$cover", // $cover会被替换为该Page的cover属性(以图片形式)
"链接": (p) => p.file.link, // 使用箭头函数,定义项目的每一个属性
};
// 配置结束
const pages = dv.pages(`"${SourceFolder}"`).filter((p) => p[coverField]);
const generateCoverLink = (cover, filePath) =>
`[](<${filePath}>)`;
Promise.all(
pages.map(async (page) => {
const coverUrl = page[coverField].startsWith("http")
? page[coverField]
: app.vault.adapter.getResourcePath(page[coverField]);
return Object.values(ItemProperties).map((value) =>
value === "$cover"
? generateCoverLink(coverUrl, page.file.path)
: value(page)
);
})
).then((tdata) => dv.table(Object.keys(ItemProperties), tdata));