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(' - 时间格式已修复(去除中文冒号)');