freecodecamp-cn-challenges-diff-parser 是一个简单的工具,意在为 freeCodeCamp China 的开发者、贡献者和维护者提供便利
- 选取两个 commit hash 来进行比较,默认会采用一个本地历史线上的 commit,以及
freecodecamp/curriculumdev分支上最新 commit- 注意:目前"本地历史线上的 commit" 是写死的,后续会改成从
tag tree中读取的 commit,即选取上次翻译所基于的 commit
- 注意:目前"本地历史线上的 commit" 是写死的,后续会改成从
- 获取到两个 commits 的代码差异之后,遍历
challenges文件夹下对应的.json文件,找出代码差异所属的 id 或者 title 字段。之后输出结果 - 输出会包含以下信息:
- 来源于代码差异的文件路径(可为新的路径,旧的路径,或两者都输出)
id或者title字段对应的值- 来源于代码差异的每行代码改动的细节,类似于
git diff输出(可选)
// 未完成:发布到 npm
git clone https://github.com/FreeCodeCampChina/curriculum-cngit clone https://github.com/FreeCodeCampChina/freecodecamp-cn-challenges-diff-parser
cd freecodecamp-cn-challenges-diff-parsernpm ioryarn install
!十分重要
cd ../curriculum-cngit checkout -b dev-track-en origin/dev-track-en
- Diff parser 与 curriculum-cn 同级
.
├── curriculum-cn
| ├── challenges/
| └── index.js
├── freecodecamp-cn-challenges-diff-parser
| ├── lib/
| └── index.js
|
...
- Diff parser 与 curriculum-cn 的父级文件夹
cn(注:必须为cn)同级
.
├── cn
| ├── curriculum-cn/
| ├── challenges/
| └── index.js
| ...
├── freecodecamp-cn-challenges-diff-parser
| ├── lib/
| └── index.js
|
...
// 未完成:发布到 npm
node index.jsnode ${path_to_freecodecamp-cn-challenges-diff-parser}/index.js- 注:请替换
index.js之前的路径为本地路径使用
node index.js [--type] [--path] [--debug]- 设置输出类型,可选值为
title或id - 如果没有传入
--type,则默认值为title - 注意:只要 type 传入了值,那么每行代码的改动细节就不会再输出
- 设置 path 输出的类型,可选值为
new或old - 如果没有传入
--path,则默认为两种路径都输出
- 设置是否输出代码改动对应的行号
node index.js会输出:- 每行的代码改动细节
- 代码改动所属的 title 值
- 代码改动所属的新文件路径和旧文件路径
node index.js --type=idwill output:- 代码改动所属的 ID 值
- 代码改动所属的新文件路径和旧文件路径
node index.js --type=title --path=newwill output:- 代码改动所属的 title 值
- 代码改动所属的新文件路径
node index.js --type=title --debugwill output:- 代码改动所属的 title 值
- 代码改动所属的新文件路径和旧文件路径
- 代码改动所属的新/旧文件内对应的行号