flomo 插件导入没有时间显示,卡片笔记样式不明显
想形成卡片笔记的样式显示
handleMarkdown(r) {
let n = "", // 临时拼接的文本内容
a = [], // 收集所有附件信息的数组
i = []; // 最终分割后的内容块数组
// 1. 时间格式化相关函数
const formatTime = (ts) => {
if (!ts) return null;
const d = new Date(Number(ts) * 1000);
if (isNaN(d)) {
const d2 = new Date(ts);
return !isNaN(d2) ? formatDate(d2) : null;
}
return formatDate(d);
};
const formatDate = (d) =>
`${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')} ${String(d.getHours()).padStart(2, '0')}:${String(d.getMinutes()).padStart(2, '0')}:${String(d.getSeconds()).padStart(2, '0')}`;
// 2. 提取标签和清理文本的函数(识别#标签 和 #标签#格式)
const extractTags = (text) => {
const tags = [];
// 匹配#标签 和 #标签#格式的标签
text.replace(/#([^#\s]+)/g, (match, t) => {
tags.push(`#${t}#`); // 在每个标签后面加上#
});
const clean = text
.replace(/<[^>]*>/g, ' ') // 去掉所有 HTML 标签
.replace(/#([^#\s]+)/g, '') // 去掉#标签 和 #标签#格式的标签
.replace(/\s+/g, ' ') // 压缩空白
.trim();
return { tags, clean };
};
// 3. 处理每条 memo
r.forEach((memo, idx) => {
const content = memo.content || '';
const files = memo.files || [];
a = a.concat(files); // 收集附件
// 时间处理
const ts = memo.created_at || memo.createdAt || memo.created_time;
const timeStr = formatTime(ts) || '未获取到创建时间';
// 提取标签 & 纯文本(识别#标签 和 #标签#格式)
const { tags, clean } = extractTags(content);
// 组装内容行(引用格式)
const lines = [];
// 第一行:时间字符串
lines.push(`> ${timeStr}`);
// 确保时间行后有一个空行(关键修改点)
lines.push('>');
// 第二行(可选):提取的#标签#
if (tags.length) {
lines.push(`> ${tags.join(' ')}`);
// 标签后必须有空行(关键修改点)
lines.push('>');
}
// 第三部分:处理内容分段(核心修改)
if (clean) {
// 将内容按空格/换行分割成分段(保留原格式)
const segments = clean.split(/\s+/).filter(s => s.length > 0);
// 每个分段单独成行(关键修改点)
segments.forEach(segment => {
// 跳过空分段
if (!segment.trim()) return;
lines.push(`> ${segment}`);
});
// 内容结束后添加空行(关键修改点)
lines.push('>');
}
// 处理图片附件(每张图单独一行)
files.forEach(f => {
let name = f.name;
// 确保图片后缀名正确
if (!/\.(png|jpe?g|gif|webp|bmp)$/i.test(name)) name += '.png';
// 图片前保留空行(关键修改点)
lines.push('>');
lines.push(`> `);
});
// 拼接当前memo的内容块(用换行符连接)
let block = lines.join('\n');
// 不同memo之间用两个换行符分隔(空行)
if (n) n += '\n\n';
n += block;
// 每50条切一段或处理到最后一条
if ((idx + 1) % 50 === 0 || idx + 1 === r.length) {
// 清理首尾多余空行
n = n.replace(/\n+$/, '').replace(/^\n+/, '');
i.push(n);
n = '';
}
});
return { contentArr: i, imgs: a };
}

欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于