12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- const fs = require('fs');
- const path = require('path');
- // 读取HTML文件
- const htmlFilePath = path.join(__dirname, 'src/app/pages/designer/project-detail/project-detail.html');
- let htmlContent = fs.readFileSync(htmlFilePath, 'utf8');
- console.log('开始修复@if控制流闭合问题...');
- function fixIfBlocks(content) {
- const lines = content.split('\n');
- const stack = [];
- const fixedLines = [];
-
- for (let i = 0; i < lines.length; i++) {
- const line = lines[i];
- const trimmedLine = line.trim();
-
- // 检测@if控制流开始
- if (trimmedLine.includes('@if') && trimmedLine.includes('{')) {
- stack.push({
- type: 'if',
- line: i + 1,
- indent: line.match(/^\s*/)[0] // 保存缩进
- });
- fixedLines.push(line);
- continue;
- }
-
- // 检测控制流结束
- if (trimmedLine === '}' && stack.length > 0) {
- const lastBlock = stack[stack.length - 1];
- if (lastBlock.type === 'if') {
- stack.pop();
- }
- fixedLines.push(line);
- continue;
- }
-
- fixedLines.push(line);
- }
-
- // 为未闭合的@if块添加闭合大括号
- while (stack.length > 0) {
- const unclosed = stack.pop();
- if (unclosed.type === 'if') {
- fixedLines.push(unclosed.indent + '}');
- console.log(`为第${unclosed.line}行的@if块添加闭合大括号`);
- }
- }
-
- return fixedLines.join('\n');
- }
- // 修复@if控制流
- const fixedContent = fixIfBlocks(htmlContent);
- // 写回文件
- fs.writeFileSync(htmlFilePath, fixedContent, 'utf8');
- console.log('@if控制流修复完成!');
|