freecodecamp-cn-challenges-diff-parser
是一个简单的工具,意在为 freeCodeCamp China 的开发者、贡献者和维护者提供便利
- 选取两个 commit hash 来进行比较,默认会采用一个本地历史线上的 commit,以及
freecodecamp/curriculum
dev
分支上最新 commit- 注意:目前"本地历史线上的 commit" 是写死的,后续会改成从
tag tree
中读取的 commit,即选取上次翻译所基于的 commit
- 注意:目前"本地历史线上的 commit" 是写死的,后续会改成从
- 获取到两个 commits 的代码差异之后,遍历
challenges
文件夹下对应的.json
文件,找出代码差异所属的 id 或者 title 字段。之后输出结果 - 输出会包含以下信息:
- 来源于代码差异的文件路径(可为新的路径,旧的路径,或两者都输出)
id
或者title
字段对应的值- 来源于代码差异的每行代码改动的细节,类似于
git diff
输出(可选)
// 未完成:发布到 npm
git clone https://github.com/FreeCodeCampChina/curriculum-cn
git clone https://github.com/FreeCodeCampChina/freecodecamp-cn-challenges-diff-parser
cd freecodecamp-cn-challenges-diff-parser
npm i
oryarn install
!十分重要
cd ../curriculum-cn
git 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.js
node ${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=id
will output:- 代码改动所属的 ID 值
- 代码改动所属的新文件路径和旧文件路径
node index.js --type=title --path=new
will output:- 代码改动所属的 title 值
- 代码改动所属的新文件路径
node index.js --type=title --debug
will output:- 代码改动所属的 title 值
- 代码改动所属的新文件路径和旧文件路径
- 代码改动所属的新/旧文件内对应的行号