如题,我希望实现"历史上的今天"这个功能,要怎么做呢
记笔记的时候在yaml里放个uid就行,然后dataview展示
知道有一个小软件,ob中要是有这么一个插件就很棒了
```dataviewjs
let date = moment().format('MMDD')
let url = `https://zhufred.gitee.io/zreader/ht/event/${date}.json`
let res = await request({url: url,method: "GET",});
let data = JSON.parse(res)
dv.list(data.map(p=>p.title))
```
尝试一下万能的dataview吧
请问老师,如果是想显示http://www.people.com.cn/GB/historic/0514/这里的历史今天,又或是百度百科上更全面的今天,网址应该怎样更换呢
别别别,老师不敢当,只不过会一点代码而已
第一个网站用的gb2312编码,请求下来直接展示中文会乱码,但是我不会转码,所以我搞不了
但是百度百科的可以
```dataviewjs
let month = moment().format('MM')
let date = moment().format('MMDD')
let url = `https://baike.baidu.com/cms/home/eventsOnHistory/${month}.json`
let res = await request({url: url,method: "GET"});
let data = JSON.parse(res)
console.log(data[month][date])
dv.table(
['year','title','link'],
data[month][date].map(p=>[p.year,p.title,`[link](${p.link})`])
)
```
@ lazyloong 太感谢了!
感谢,不过我还想要实现一个 另一个"历史上的今天"的功能,就是可以看到 去年自己写的日记,要怎么弄(当然我可以直接搜索 年份减1的日期… 但是希望有个自动化脚本)
啊这,原来是这么个"历史上的今天"啊
```dataviewjs
dv.list(
dv.pages(`"目录"`)
.filter(p=>p.file.name.includes(moment().format('MM-DD')))
.map(p=>p.file.link)
)
```
如果日记命名不是形如2022-05-18的话,可以修改format里面的参数
感谢老铁!! 不过如果我想显示里头的内容呢,而不是一个列表的形式,而是 ![[2021-5-18]]
这样
ps: 另外这个有个问题,这个脚本是根据"今天"的日期,而不是 日记文件名 中的日期(因为我打算作为一个日记模板来用,进入到不同时间的日期里头,显示的东西不一样)
比如
```query
"{{date:YYYY-M-D}}"
ps: 另外这个有个问题,这个脚本是根据"今天"的日期,而不是 日记文件名 中的日期(因为我打算作为一个日记模板来用,进入到不同时间的日期里头,显示的东西不一样)
比如
```query
"{{date:YYYY-M-D}}"
话说你是怎么把 ``` 显示出来的... 怎么反义
```dataviewjs
dv.pages(`"600-日常"`).filter(p=>p.file.name!=dv.current().file.name&&p.file.name.slice(4)==dv.current().file.name.slice(4)).map(async function(p){dv.paragraph('#### '+p.file.name+'\n'+await app.vault.readRaw(p.file.path))}).join('\n')
```
那这样就可以放在日记里面了,不过我感觉dv对嵌入不太支持啊,不知道是不是我的姿势不太对,反正我用嵌入的形式没成功,这是直接读取文件再渲染的
想显示三个 ` ,外面就包四个 ` 就行了
我天,我去找了半天原来论坛里的大佬给解决了。。。大佬求问有没有可能在dataview里加入对历史上的今天的长短控制,或者滚动条?我左边放了个每日诗词,右边想放个历史上的今天,但有的时候一下子会出来非常多条历史上的今天。。。。orz。。
可以啊,最后一行那个 4 就是数量了
```dataviewjs
let month = moment().format('MM')
let date = moment().format('MMDD')
let url = `https://baike.baidu.com/cms/home/eventsOnHistory/${month}.json`
let res = await request({url: url,method: "GET"});
let data = JSON.parse(res)
dv.table(
['year','title','link'],
data[month][date].slice(0,4).map(p=>[p.year,p.title,`[link](${p.link})`])
)
```
感谢大佬!完美的主页配置出现了,太感恩了,兔年吉祥呀~
大神,我有个需求,希望能聚合显示某个文件夹下的全部笔记,一直不得其法。看到你的这段代码似乎能解决问题,我尝试修改了一下:
dv.pages('"01 工作"').sort(p=>p.file.name,'desc').map(async function(p){dv.paragraph('## '+p.file.link+'\n'+await app.vault.readRaw(p.file.path))}).join('\n')
竟然成功了,就是有个问题,汇聚内容包含了yaml内容,不知有没有方法去除?万分感谢!
先判断开头有没有 ---
,有的话就从第二个 ---
截断
```dataviewjs
dv.pages(`"01 工作"`)
.sort(p=>p.file.name,'desc')
.forEach(async function(p) {
let text = await app.vault.readRaw(p.file.path)
let t = text.split('\n')
if(t[0]=='---')
t=t.slice(t.slice(1).findIndex(p=>p=='---')+2)
dv.paragraph('## '+p.file.link+'\n'+t.join('\n'))
})
```
太完美了,万分感谢!
感谢您的代码!非常好用!请问可不可以用dataviewjs实现展示某个特定文件的反向链接面板,就像官方的反向链接面板一样,展示包含该特定文件的所有文本块,并罗列在对应的文件名下面。有这个需求是因为官方的反向链接面板无法选中文字复制,也无法拖拽进笔记中。