master
1import fs from 'node:fs'
2import path from 'node:path'
3import { Badge } from './badges.js'
4import { quoteAttr } from './utils.js'
5import { log } from './log.js'
6
7export function updateBadges(
8 badges: Badge[],
9 badgesDir: string,
10 badgesDatafile: string,
11) {
12 log.info('Generating badges...')
13 fs.mkdirSync(badgesDir, { recursive: true })
14 fs.writeFileSync(badgesDatafile, JSON.stringify(badges, null, 2))
15
16 for (const badge of badges) {
17 const badgePath = path.resolve(badgesDir, `${badge.id}.md`)
18 const desc = quoteAttr(badge.desc)
19 const content =
20 `<img src="${badge.image}" alt="${desc}" title="${desc}" width="128">\n` +
21 `<strong>${desc}</strong>\n` +
22 `<br><br>\n\n` +
23 badge.body +
24 `\n\n\n` +
25 `Created by <a href="https://github.com/my-badges/my-badges">My Badges</a>`
26
27 log.info('badge', badgePath)
28 fs.writeFileSync(badgePath, content)
29 }
30}