Maple
2026-01-29
一键模板测试
开心
家
测试一键生成脚本
const fs = require('fs');
const path = require('path');
// 笔记文件目录
const NOTES_DIR = path.join(__dirname, '..', 'src', 'content', 'notes');
// 生成数字文件名
function generateNumberedFilename() {
// 读取目录下的所有文件
const files = fs.readdirSync(NOTES_DIR);
// 过滤出数字命名的文件
const numberedFiles = files.filter(file => {
return /^\d+\.md$/.test(file);
});
// 找出最大的数字
let maxNumber = 0;
numberedFiles.forEach(file => {
const number = parseInt(path.parse(file).name);
if (number > maxNumber) {
maxNumber = number;
}
});
// 生成新的数字文件名
const newNumber = maxNumber + 1;
return `${newNumber}.md`;
}
// 生成笔记文件
function generateNoteFile() {
// 获取命令行参数作为文件名
const args = process.argv.slice(2);
let filename;
if (args.length > 0) {
// 使用命令行参数作为文件名
const name = args.join(' ');
// 清理文件名,移除可能导致问题的字符
const sanitizedName = name.replace(/[<>"|?*:]/g, '');
filename = `${sanitizedName}.md`;
} else {
// 生成数字文件名
filename = generateNumberedFilename();
}
const filePath = path.join(NOTES_DIR, filename);
// 生成当前日期
const currentDate = new Date().toISOString().split('T')[0];
// 生成 frontmatter
const frontmatter = `---
title: "动态"
description: "介绍。"
createdAt: ${currentDate}
tags: ["示例", "技术", "学习"]
mood: "启发"
location: "线上"
images:
- src: "@assets/uploads/note.jpg"
alt: "示例图片"
imageAlt: "示例技术概念图"
---
`;
// 写入文件
fs.writeFileSync(filePath, frontmatter);
console.log(`生成笔记文件: ${filePath}`);
}
// 确保目录存在
if (!fs.existsSync(NOTES_DIR)) {
fs.mkdirSync(NOTES_DIR, { recursive: true });
}
// 运行生成函数
generateNoteFile();