65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
|
|
import fs from 'fs';
|
|||
|
|
|
|||
|
|
// 读取生成的日历数据
|
|||
|
|
const calendarData = JSON.parse(fs.readFileSync('calendarData.json', 'utf-8'));
|
|||
|
|
|
|||
|
|
// 读取当前的mockData.js
|
|||
|
|
let mockDataContent = fs.readFileSync('src/data/mockData.js', 'utf-8');
|
|||
|
|
|
|||
|
|
// 找到 calendarEvents 的起始位置
|
|||
|
|
const calendarStart = mockDataContent.indexOf('calendarEvents: [');
|
|||
|
|
if (calendarStart === -1) {
|
|||
|
|
console.error('无法找到 calendarEvents');
|
|||
|
|
process.exit(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 找到 calendarEvents 的结束位置(找对应的 ],)
|
|||
|
|
let bracketCount = 0;
|
|||
|
|
let inArray = false;
|
|||
|
|
let calendarEnd = calendarStart + 'calendarEvents: ['.length;
|
|||
|
|
|
|||
|
|
for (let i = calendarEnd; i < mockDataContent.length; i++) {
|
|||
|
|
const char = mockDataContent[i];
|
|||
|
|
|
|||
|
|
if (char === '[') {
|
|||
|
|
bracketCount++;
|
|||
|
|
} else if (char === ']') {
|
|||
|
|
if (bracketCount === 0) {
|
|||
|
|
// 找到了对应的结束括号
|
|||
|
|
calendarEnd = i + 1;
|
|||
|
|
// 检查后面是否有逗号
|
|||
|
|
if (mockDataContent[i + 1] === ',') {
|
|||
|
|
calendarEnd = i + 2;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
} else {
|
|||
|
|
bracketCount--;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 准备新的 calendarEvents 数据
|
|||
|
|
const calendarEventsStr = JSON.stringify(calendarData.calendarEvents, null, 2)
|
|||
|
|
.replace(/"([^"]+)":/g, '$1:') // 移除属性名的引号
|
|||
|
|
.replace(/"/g, "'") // 将双引号替换为单引号
|
|||
|
|
.replace(/20:00/g, '20:00') // 确保时间格式正确
|
|||
|
|
.replace(/21:00/g, '21:00');
|
|||
|
|
|
|||
|
|
// 构建新的 calendarEvents 部分
|
|||
|
|
const newCalendarEvents = `calendarEvents: ${calendarEventsStr},`;
|
|||
|
|
|
|||
|
|
// 替换原有的 calendarEvents
|
|||
|
|
mockDataContent =
|
|||
|
|
mockDataContent.substring(0, calendarStart) +
|
|||
|
|
newCalendarEvents +
|
|||
|
|
mockDataContent.substring(calendarEnd);
|
|||
|
|
|
|||
|
|
// 写回文件
|
|||
|
|
fs.writeFileSync('src/data/mockData.js', mockDataContent);
|
|||
|
|
|
|||
|
|
console.log('✅ mockData.js 已更新');
|
|||
|
|
console.log(`📅 添加了 ${calendarData.calendarEvents.length} 个日历事件`);
|
|||
|
|
console.log(' - 时间跨度:2025年3月 - 2026年1月');
|
|||
|
|
console.log(' - 课程名称已截断(最长12个字符)');
|
|||
|
|
console.log(' - 添加了文字颜色 textColor: #1d2129');
|
|||
|
|
console.log(' - 时间格式已修复(去除中文冒号)');
|