diff --git a/src/scripts/generate-ko-kr-md-files.ts b/src/scripts/generate-ko-kr-md-files.ts new file mode 100644 index 00000000..6ac482a4 --- /dev/null +++ b/src/scripts/generate-ko-kr-md-files.ts @@ -0,0 +1,101 @@ +import { existsSync, writeFileSync } from '../server/data/fs' +import { listElfs } from '../server/data/honkai3rd/elfs' +import { + listStigmata, + listStigmataSet, +} from '../server/data/honkai3rd/stigmata' +import { listWeapons } from '../server/data/honkai3rd/weapons' + +const locale = 'ko-KR' + +function generateStigmataData() { + const stigmataList = listStigmata() + + stigmataList.forEach((stigmata) => { + const krStigmataDataPath = `honkai3rd/${locale}/stigmata/${stigmata.id}.md` + if (existsSync(krStigmataDataPath)) { + return + } + + writeFileSync( + krStigmataDataPath, + [ + `# ${stigmata.name}`, + `## ${stigmata.skill.name}`, + `${stigmata.skill.description}`, + ].join('\n\n') + ) + }) +} + +function generateStigmataSetData() { + const stigmataSetList = listStigmataSet() + + stigmataSetList.forEach((stigmataSet) => { + const krStigmataSetDataPath = `honkai3rd/${locale}/stigmata-sets/${stigmataSet.id}.md` + if (existsSync(krStigmataSetDataPath)) { + return + } + + writeFileSync( + krStigmataSetDataPath, + [ + `# ${stigmataSet.name}`, + stigmataSet.altName, + `## ${stigmataSet.twoSetSkill.name}`, + `${stigmataSet.twoSetSkill.description}`, + `## ${stigmataSet.threeSetSkill.name}`, + `${stigmataSet.threeSetSkill.description}`, + ].join('\n\n') + ) + }) +} + +function generateWeaponData() { + const weaponList = listWeapons() + + weaponList.forEach((weapon) => { + const krWeaponDataPath = `honkai3rd/${locale}/weapons/${weapon.id}.md` + if (existsSync(krWeaponDataPath)) { + return + } + + writeFileSync( + krWeaponDataPath, + [ + `# ${weapon.name}`, + ...weapon.skills.map((skill) => { + return [`## ${skill.name}`, skill.description].join('\n\n') + }), + ].join('\n\n') + ) + }) +} + +function generateElfData() { + const elfList = listElfs() + + elfList.forEach((elf) => { + const krElfDataPath = `honkai3rd/${locale}/elfs/${elf.id}.md` + if (existsSync(krElfDataPath)) { + return + } + + writeFileSync( + krElfDataPath, + [ + `# ${elf.name}`, + ...elf.skillRows.map((skillRow) => { + return skillRow + .map((skill, index) => { + return [ + `${index === 0 ? '##' : '###'} ${skill.name}`, + skill.description, + ].join('\n\n') + }) + .join('\n\n') + }), + ].join('\n\n') + ) + }) +} diff --git a/src/server/data/fs.ts b/src/server/data/fs.ts index e221f5fd..9f4b5af2 100644 --- a/src/server/data/fs.ts +++ b/src/server/data/fs.ts @@ -22,3 +22,11 @@ export function readJsonFileSync(pathname: string) { return JSON.parse(rawData) } + +export function writeFileSync(pathname: string, content: string) { + return fs.writeFileSync(resolvePathname(pathname), content) +} + +export function existsSync(pathname: string) { + return fs.existsSync(resolvePathname(pathname)) +}