| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | 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('开始修复HTML结构...');// 分析并修复HTML结构function fixHtmlStructure(content) {    const lines = content.split('\n');    const stack = [];    const fixedLines = [];    let inIfBlock = false;    let ifBlockDepth = 0;        for (let i = 0; i < lines.length; i++) {        const line = lines[i];        const trimmedLine = line.trim();                // 检测@if控制流        if (trimmedLine.includes('@if')) {            inIfBlock = true;            ifBlockDepth++;            fixedLines.push(line);            continue;        }                // 检测@if控制流结束        if (inIfBlock && trimmedLine === '}') {            ifBlockDepth--;            if (ifBlockDepth === 0) {                inIfBlock = false;            }            fixedLines.push(line);            continue;        }                // 检测div开始标签        if (trimmedLine.includes('<div')) {            const divMatch = trimmedLine.match(/<div[^>]*>/);            if (divMatch && !trimmedLine.includes('</div>')) {                stack.push({                    tag: 'div',                    line: i + 1,                    content: divMatch[0]                });            }            fixedLines.push(line);            continue;        }                // 检测div结束标签        if (trimmedLine.includes('</div>')) {            if (stack.length > 0 && stack[stack.length - 1].tag === 'div') {                stack.pop();            } else {                console.log(`警告:第${i + 1}行发现多余的</div>标签,已移除`);                continue; // 跳过多余的结束标签            }        }                fixedLines.push(line);    }        // 添加缺失的结束标签    while (stack.length > 0) {        const unclosed = stack.pop();        if (unclosed.tag === 'div') {            fixedLines.push('</div>');            console.log(`添加缺失的</div>标签`);        }    }        return fixedLines.join('\n');}// 修复HTML结构const fixedContent = fixHtmlStructure(htmlContent);// 写回文件fs.writeFileSync(htmlFilePath, fixedContent, 'utf8');console.log('HTML结构修复完成!');
 |