准备:
- PKMer_Obsidian 样式 - minimal 主题 Cards 卡片布局
- dataview插件(打开两个js)
先看画廊效果:
AI的注释写的无敌清楚,跟着修改就行了,不行的话扔进去让它改

code:
// 配置参数
const targetFolder = "心情笔记"; // 要筛选的文件夹路径
const maxPreviewLength = 70; // 预览内容的最大字符数
const maxFilesToShow = 20; // 最多显示的文件数量
// 获取所有Markdown文件
const allFiles = app.vault.getMarkdownFiles();
// 筛选指定文件夹中的文件
const filteredFiles = allFiles.filter(file => file.path.includes(targetFolder));
// 如果没有找到匹配的文件,显示提示信息
if (filteredFiles.length === 0) {
dv.paragraph(`在路径"${targetFolder}"中没有找到文件`);
return;
}
// 显示标题
dv.paragraph(`#### "${targetFolder}" (共 ${filteredFiles.length} 个文件)`);
// 异步处理每个文件以获取内容预览
const filesWithPreview = await Promise.all(
filteredFiles.slice(0, maxFilesToShow).map(async (file) => {
try {
// 读取文件内容
let content = await app.vault.cachedRead(file);
// 移除属性字段(frontmatter)
const frontmatterRegex = /^---\s*[\s\S]*?---\s*/;
content = content.replace(frontmatterRegex, '');
// 创建内容预览(限制字数)
let preview = content.replace(/#{1,6}\s/g, ''); // 移除标题标记
preview = preview.replace(/\[\[.*?\]\]/g, ''); // 移除内部链接
preview = preview.replace(/\n/g, ' '); // 替换换行符为空格
preview = preview.trim(); // 去除首尾空格
// 截断预览内容
if (preview.length > maxPreviewLength) {
preview = preview.substring(0, maxPreviewLength) + '...';
}
// 获取文件修改日期
const modified = new Date(file.stat.mtime);
const modifiedStr = modified.toLocaleDateString();
// 获取文件大小
const sizeKB = Math.round(file.stat.size / 1024);
return {
name: file.name,
path: file.path,
preview: preview || "[无文本内容]", // 如果预览为空,显示默认文本
modified: modifiedStr,
size: `${sizeKB} KB`
};
} catch (error) {
console.error(`读取文件 ${file.name} 时出错:`, error);
return {
name: file.name,
path: file.path,
preview: "无法读取文件内容",
modified: "未知",
size: "未知"
};
}
})
);
// 创建表格数据
const tableData = filesWithPreview.map(item => [
// 文件名(带链接)
`[[${item.name}]]`,
// 修改日期
item.modified,
// 内容预览(排除属性字段后)
item.preview
]);
// 渲染表格
dv.table(["文件名", "修改日期", "内容预览"], tableData);
// 如果文件数量超过显示限制,显示提示信息
if (filteredFiles.length > maxFilesToShow) {
dv.paragraph(`*只显示前 ${maxFilesToShow} 个文件,共有 ${filteredFiles.length} 个文件*`);
}
类似看板的视图,只是简单排序
code:
TABLE rows.file.link AS "link"
FROM "Notion/Food"
GROUP BY tags
碎碎念:用的一直闲置的deepseek,现在有好多专业AI,或许它并不理想,但对我够了。base的出现,让我的notion转移大计又开始启动,虽然N年以前我就想转移了,那时候没有数据库真是让人烦躁,现在的base也不完美,但,等待时间吧,时间修正了技术问题,现在有AI,现在的notion比从前快了,导出也快了,bule topaz主题的设置好像也清晰多了,显得从前的我好蠢
发布的小框框看的好费劲啊

