d4b-completion-rate.js 730 B

123456789101112131415161718192021
  1. #!/usr/bin/env node
  2. const fs = require('fs');
  3. const F = 'pages/stats/completion-rate.vue';
  4. let src = fs.readFileSync(F, 'utf8');
  5. const REPL = [
  6. ['#4ECDC4', '$c-comp-done'],
  7. ['#44B09E', '$c-comp-done-deep'],
  8. ];
  9. let cnt = 0;
  10. for (const [f, t] of REPL) {
  11. const esc = f.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
  12. src = src.replace(new RegExp(esc + '(?![0-9a-fA-F])', 'g'), () => { cnt++; return t; });
  13. }
  14. fs.writeFileSync(F, src);
  15. console.log('replaced:', cnt);
  16. const lines = src.split('\n');
  17. let n = 0;
  18. for (let i = 0; i < lines.length; i++) {
  19. 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++; }
  20. }
  21. console.log('remaining non-palette:', n);