#!/usr/bin/env node const fs = require('fs'); const F = 'pages/stats/completion-rate.vue'; let src = fs.readFileSync(F, 'utf8'); const REPL = [ ['#4ECDC4', '$c-comp-done'], ['#44B09E', '$c-comp-done-deep'], ]; let cnt = 0; for (const [f, t] of REPL) { const esc = f.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); src = src.replace(new RegExp(esc + '(?![0-9a-fA-F])', 'g'), () => { cnt++; return t; }); } fs.writeFileSync(F, src); console.log('replaced:', cnt); const lines = src.split('\n'); let n = 0; for (let i = 0; i < lines.length; i++) { if (/#[0-9a-fA-F]{3,8}\b/.test(lines[i]) && !/^\s*\$c-/.test(lines[i])) { console.log('REMAIN ' + (i + 1) + ': ' + lines[i].trim()); n++; } } console.log('remaining non-palette:', n);