const fs = require('fs'); const path = require('path'); // Function to find all HTML files recursively function findHtmlFiles(dir, fileList = []) { const files = fs.readdirSync(dir); files.forEach(file => { const filePath = path.join(dir, file); const stat = fs.statSync(filePath); if (stat.isDirectory()) { findHtmlFiles(filePath, fileList); } else if (path.extname(file) === '.html') { fileList.push(filePath); } }); return fileList; } // Function to get relative path from HTML file to root function getRelativePathToRoot(filePath, outDir) { const relativePath = path.relative(path.dirname(filePath), outDir); return relativePath || '.'; // If empty, use '.' for same directory } // Function to inject script tag into HTML files function injectScriptTag(filePath, outDir) { let html = fs.readFileSync(filePath, 'utf8'); // Skip if script is already injected if (html.includes('path-fix.js')) { return; } // Find the closing head tag const headCloseIndex = html.indexOf(''); if (headCloseIndex !== -1) { // Get relative path from this HTML file to the root const relativePath = getRelativePathToRoot(filePath, outDir); // Inject the script tag before the closing head tag const scriptTag = ``; const newHtml = html.slice(0, headCloseIndex) + scriptTag + html.slice(headCloseIndex); // Write the modified HTML back to the file fs.writeFileSync(filePath, newHtml, 'utf8'); console.log(`Injected script into ${filePath}`); } else { console.log(`Could not find in ${filePath}`); } } // Main function function main() { const outDir = path.join(__dirname, '..', 'out'); const htmlFiles = findHtmlFiles(outDir); console.log(`Found ${htmlFiles.length} HTML files`); htmlFiles.forEach(file => { injectScriptTag(file, outDir); }); console.log('Post-export processing complete!'); } // Run the main function main();