Skip to content

Commit 6275cd1

Browse files
authored
Add script to spot differences in liquid tags (#22962)
* Add script to spot differences in liquid tags It compares source and translation Usage example: ```bash script/i18n/liquid-diff.js {files} --language=es ```
1 parent 0c374c9 commit 6275cd1

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

script/i18n/liquid-diff.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env node
2+
3+
import program from 'commander'
4+
import { compareLiquidTags } from '../../lib/liquid-tags/tokens.js'
5+
import languages from '../../lib/languages.js'
6+
7+
program
8+
.argument('<files...>', 'The file name(s) without the language dir. \nI.E. content/foo.md')
9+
.description('Shows the differences of liquid tags between two files')
10+
.requiredOption('-l, --language <language>', `Choose one of these languages to compare: ${Object.keys(languages).filter(l => l !== 'en')}`)
11+
.parse(process.argv)
12+
13+
function reportFileDifference(diff) {
14+
console.log(`File: ${diff.file}`)
15+
console.log(`Translation: ${diff.translation}`)
16+
console.log(`Differences:`)
17+
console.log(diff.diff.output)
18+
}
19+
20+
function main() {
21+
const files = program.args
22+
const options = program.opts()
23+
24+
files.forEach((file) => {
25+
const language = languages[options.language]
26+
if (!language) throw new Error(`${options.language} is not a recognized language`)
27+
const diff = compareLiquidTags(file, language)
28+
reportFileDifference(diff)
29+
})
30+
}
31+
32+
main()

0 commit comments

Comments
 (0)