@
aQuQ #37 是的,用 dataviewjs 写的
日记模板中填入,今日新增笔记的脚本如下:
```dataviewjs
await dv.view('scripts/created')
```
scripts/created/view.js 文件代码
```js
const { file: currentFile } = dv.current();
const { path, name } = currentFile;
const cday =
dv.date(name); // 文件的创建时间不一定准确,使用文件名更准确
const hour = 60 * 60 * 1000;
const dayRange = [cday.ts + 6 * hour, cday.ts + 30 * hour]; // 当天 6 点,到第二天 6 点
const isInDayRange = (time) => {
return time >= dayRange[0] && time < dayRange[1];
};
// 获取文件
const fileList = dv
.pages('-"Annotation"') // 根据需要剔除笔记
.filter((page) => {
return isInDayRange(page.file.ctime.ts) && page.file.path !== path /*剔除本文件*/;
})
.sort((page) => page.file.ctime.ts)
.map((page) => page.file);
// 画表格
const headers = ['link', 'folder', 'ctime'];
const data = fileList.map((file) => headers.map((header) => file[header]));
dv.table(headers, data);
```
今日修改的历史笔记同理,代码如下
```js
const { file: currentFile } = dv.current();
const { path, name } = currentFile;
const cday =
dv.date(name); // 文件的创建时间不一定准确,使用文件名更准确
const hour = 60 * 60 * 1000;
const dayRange = [cday.ts + 6 * hour, cday.ts + 30 * hour]; // 当天 6 点,到第二天 6 点
const isInDayRange = (time) => {
return time >= dayRange[0] && time < dayRange[1];
};
// 获取文件
const fileList = dv
.pages('-"Annotation"')
.filter((page) => {
const { file } = page;
return (
file.ctime.ts < dayRange[0] /* 创建时间早于今天 */ &&
isInDayRange(file.mtime.ts) /*修改时间在今天 6 点和明天 6 点之间,之后再修改,只出现在最新修改的一天中!*/ &&
file.path !== path /*剔除本文件*/
);
})
.sort((page) => page.file.mtime.ts)
.map((page) => page.file);
// 画表格
const headers = ['link', 'folder' /*, 'ctime'*/, 'mtime'];
const data = fileList.map((file) => headers.map((header) => file[header]));
dv.table(headers, data);
```