import-tags.mjs 926 B

123456789101112131415161718192021222324252627282930313233
  1. import fs from 'fs'
  2. import { join } from 'path'
  3. import { HOME_DIR } from './helpers.mjs'
  4. const data = JSON.parse(fs.readFileSync(join(HOME_DIR, 'new/tags.json'), 'utf-8'))
  5. for (const [key, tags] of Object.entries(data)) {
  6. const filename = join(HOME_DIR, `src/_icons/${key}.svg`), tagsInline = tags
  7. .join(' ')
  8. .toLowerCase()
  9. .split(' ')
  10. .filter((value, index, array) => array.indexOf(value) === index)
  11. .join(', ')
  12. if (key && tags.length) {
  13. let data = fs.readFileSync(filename).toString()
  14. data = data.replace(/(---[\s\S]+?---)/, function (m, headerContent) {
  15. headerContent = headerContent.replace(/tags: .*\n/, '')
  16. headerContent = headerContent.replace(/---/, `---\ntags: [${tagsInline}]`)
  17. return headerContent
  18. })
  19. console.log(`Updating ${key} with tags: ${tagsInline}`)
  20. fs.writeFileSync(filename, data)
  21. }
  22. }
  23. console.log('CSV file successfully processed')