Dataviewjs的奇技淫巧

那是不是用 Date.now()-p.file.cday.ts < 604800000 也可以。

以及我本来是想 dv.list 的,但 p.rows.file.link 转为字符串格式错误,点击链接也不能跳转,大佬你知道是为啥吗

因为 p.rows.file.link 是数组,需用 .join() 转为字符串。

dv.list(dv.pages().filter(p=> Date.now()-p.file.cday.ts < 604800000)
    .groupBy(p=> p.file.cday.ts)
    .map(p=> `${moment(p.key).format('YYYY-MM-DD')} (${p.rows.length})\n${p.rows.file.link}`)
)
1 个赞

不知道,但是好像这样就行了

dv.list(dv.pages().filter(p=> Date.now()-p.file.cday.ts < 604800000) .groupBy(p=> p.file.cday.ts) .map(p=> `${moment(p.key).format('YYYY-MM-DD')} (${p.rows.length})\n${p.rows.file.link.join(',')}`) )
1 个赞

这个 列表的 css 是怎么实现的?能给一下 css 代码吗?

我可以的,我只用阅诚模式和源代码模式,实时预览我不用的。

谢谢 :rose: :rose: :rose:

大佬,我之前从写日记的帖子里面拿到了一段可以汇总日记文件的指定标题下内容的代码:

let files = dv.pages(`"1000.PoinKo日寄"`)
HeaderAggregation(files,['今天做了啥🙂','每日句子🤔'])

async function HeaderAggregation(files,headers) {
    let d = await Promise.all(files.map(async function(file) {
        let contents = []
        for(let i in headers) {
            let content = await app.vault.readRaw(file.file.path)
            content = content.split(/^#+ /m).find(p=>p.startsWith(headers[i]))
            contents.push(content?.slice(headers[i].length)??'')
        }
        if(contents.every(p=>p.replace(/\s+/,'')=='')) return
        return [file.file.link,...contents]
    }))
    d=d.filter(p=>p)
    dv.table(['name',...headers],d).sort(p=>p.file.name,"desc")
}

但是它只能索引出文本,图片不能渲染出来:
image

问题ken’en可能出现在正则筛选上,但是个人水平实在有限,改了很久也没有结果,大佬能有空帮忙看看吗 :smiling_face_with_tear:

图片,好像需要用 然后就能生成出来。

<img src="你的图片路径">

大佬,我想问一下,我现在得到了一个图片,这个图片是我放在库里面的,![[]]格式,请问怎么得到这个图片的相对路径。

是要用 a.jpg 变成库里的路径(像这样 c/b/a.jpg)还是真的相对路径(这样的 …/…/a.jpg)

是这种 c/b/a.jpg 格式

那就这样 app.vault.getFiles().find(p=>p.name=='a.jpg')?.path,不过有重复名称(包括后缀名)的图片可能会找错,app.vault.getFiles().filter(p=>p.name=='a.jpg') 找到所有 a.jpg

不不,我的意思是我在一个文件B里

图片:: ![[图片.png]]

然后我用 dataviewjs 查询 B 文件中的这个图片的相对路径,用 dataview 可以 meta(图片).path 来获取。

dv.current().图片.path

1 个赞

用dataview的行内方式显示:

=map(filter(this.file.outlinks,(f)=>meta(f).embed),(f)=>meta(f).path)

显示本文件中所有嵌入链接(![[xx]])的文件路径

image

@lazyloong 大佬,这种方案目前在新版本上好像实行不通了,在V1.4.16和V1.5.3中都无法实现,而在旧版V0.14.6中可以(虽然数据多时,缓慢且可能崩溃,大部分时候是可以的),请问新版本中不行这是由于ob更新导致的吗?会有什么解决方案吗?

感谢提醒,但不一定是图片,这种方式可以汇总,#某级标题的内容
举例:
二级标题 ##摘要,如有多个文件,可以通过这种方式将汇总展示这些文件的摘要内容:
文件a ##摘要 内容
文件b ##摘要 内容
文件c ##摘要 内容
@PlayerMiller

但是之前我还想汇总基于block引用的内容,这个需要渲染完成,之前大佬说似乎是ob底层不支持,不知道新版本能否实现?(或者需要某种“奇技淫巧”)

DataviewJS 的翻页与随机 实例 1 有汇总含【** 和 **】的块的示例,如果要显示图片可能得加上 DataviewJS 汇总全文及特定标题下内容并解决图片显示痛点 中的代码调整一下。

文档嵌入如 ![[文档]](中间为 MD 文档)应该还是不支持。

1 个赞

感谢解答,确实有效,相关讨论我将回复在对应贴中。