const fs = require('fs'); const cheerio = require('cheerio'); const file = 'sisvietnamvn/src/main/resources/templates/flex-finish.html'; const html = fs.readFileSync(file, 'utf8'); const $ = cheerio.load(html, { decodeEntities: false }, false); $('img').each((i, el) => { $(el).removeAttr('srcset'); $(el).removeAttr('data-srcset'); $(el).removeAttr('data-src'); let src = $(el).attr('src'); if (src) { // Extract the filename from the src let filename = src.split('/').pop().split('?')[0]; // Handle the base64 gif fallback if (src.includes('data:image/gif')) { // we have to find the filename from srcset or data-srcset let altSrcset = $(el).attr('srcset') || $(el).attr('data-srcset'); if (altSrcset) { let firstUrl = altSrcset.split(' ')[0]; filename = firstUrl.split('/').pop().split('?')[0]; } else { // Hardcode for UMass Flex Header 1.png because it's lazyloaded filename = 'UMass Flex Header 1.png'; } } filename = decodeURIComponent(filename); $(el).attr('th:src', `@{/images/umass/${filename}}`); $(el).removeAttr('src'); } }); fs.writeFileSync(file, $.html()); console.log('Done fixing images!');