【JavaScript代码片段】模拟信息流视图的 JavaScript 代码片段:同时打开多个文件且流式查看
这个 JS 命令模拟了 Notion 的数据库的动态视图(Feed View)
截图预览 - 通过【开发工具控制台】直接运行 JavaScript 代码片段的执行结果
视图 - 启用堆叠标签页选项 且 (newLeaf === 'tab')
- 通过 【DataviewJS 代码块】引用 JavaScript 代码片段的执行结果
视图 - (newLeaf === 'window')
- 通过 【DataviewJS 代码块】引用 JavaScript 代码片段的执行结果
视图 - (newLeaf === 'split')
- 通过 【DataviewJS 代码块】引用 JavaScript 代码片段的执行结果
JavaScript 代码片段的内容
async function openFiles(linktextArr, newLeaf){
for (const linktext of linktextArr){
await app.workspace.openLinkText(linktext,null,newLeaf,{active:true});
}
}
const fileCount = 8;
const linktextArr = app.vault.getFiles()
.filter(f=>["md","base","canvas","jpg","jpeg","png","webp","gif","svg"].includes(f.extension))
.toSorted((a,b)=>-(a.stat.ctime-b.stat.ctime))
.slice(0,fileCount)
.map(f=>app.metadataCache.fileToLinktext(f));
const newLeaf = "tab" /* undefined | true | 'tab' | 'split' | 'window' */
openFiles(linktextArr, newLeaf);
使用方法01(通过开发工具控制台直接运行 JavaScript 代码片段)
- 第一步:打开开发工具的控制台(使用快捷键 Ctrl+Shift+I)
- 第二步:复制如上的 JS 命令,粘贴到控制台,调节配置变量
linktextArr
和newLeaf
,然后执行
使用方法02(通过 dataviewjs 代码块引用 javascript 代码片段,通过点击按钮执行)
async function openFiles(linktextArr, newLeaf){
for (const linktext of linktextArr){
await app.workspace.openLinkText(linktext,null,newLeaf,{active:true});
}
}
const files = app.vault.getFiles();
function show01(){
const fileCount = 8;
const fileArr = files
.filter(f=>["md","base","canvas","jpg","jpeg","png","webp","gif","svg"].includes(f.extension))
.toSorted((a,b)=>-(a.stat.ctime-b.stat.ctime))
.slice(0,fileCount);
const linktextArr = fileArr
.map(f=>app.metadataCache.fileToLinktext(f));
const newLeaf = "tab" /* undefined | true | 'tab' | 'split' | 'window' */
const button = document.createElement("button");
button.innerText = "show01"+" "+"("+fileCount+")";
button.onclick = ()=>openFiles(linktextArr, newLeaf)
dv.container.appendChild(button);
dv.table(["link","ext","ctime"],fileArr.map(f=>{
return [
"[["+app.metadataCache.fileToLinktext(f)+"]]",
f.extension!=="md"?f.extension:"",
dv.func.date(f.stat.ctime+"","x")
]
}))
}
show01()
其他使用方法
- 通过 button 插件生成的按钮执行
- 通过 开发工具 的
运行代码片段
命令执行 (在开发工具使用快捷键组合序列 Ctrl+P, !{{代码片段名}}[Enter])