Dataviewjs的奇技淫巧

谁知道呢,我从来都不用 ::,也就昨天临时起意想研究研究。

1 个赞

大佬,请问一下,我想统计下最近一周,每天创建文件的数量要怎么写?

dv.list(dv.pages().filter(p=>moment().unix() - p.file.cday.ts/1000<604800).groupBy(p=>p.file.cday.ts).map(p=>[moment(p.key).format('YYYY-MM-DD'),p.rows.length]))

大佬,这里面的 ts 是什么意思?

代表这个时间的时间戳,精确到毫秒,moment().unix() 是当前时间的时间戳,精确到秒

1 个赞

那是不是用 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}`)
)

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

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