csdnsynchexo
Version:
支持csdn/博客园/掘金/segmentfault/腾讯云加社区等平台一键迁移hexo
42 lines (41 loc) • 1.37 kB
JavaScript
import fs from 'fs-extra';
import path from 'path';
import filenamify from 'filenamify';
import { error, info } from '../log/index.js';
export const writeFile = (list, output = './') => {
const dir = path.resolve(output);
const outputFile = [];
info('输出路径', dir);
fs.ensureDirSync(dir);
let writeStream;
for (let item of list) {
if (!item) {
continue;
}
const { tags, title, categories, content, date } = item;
const filename = path.join(dir, `./${filenamify(title)}.md`);
try {
writeStream = fs.createWriteStream(filename, 'utf8');
writeStream.write('---\n');
writeStream.write(`title: ${title}\n`);
writeStream.write(`date: ${date}\n`);
writeStream.write(`tags: ${tags.join(' ')}\n`);
writeStream.write(`categories: ${categories.join(' ')}\n`);
writeStream.write('---\n\n');
writeStream.write('<!--more-->\n\n');
writeStream.write(content || '');
writeStream.end('');
writeStream.close();
outputFile.push(filename);
}
catch (e) {
error(`出错: ${title}`, e);
}
finally {
if (writeStream) {
writeStream.close();
}
}
}
return outputFile;
};