Skip to content

Latest commit

 

History

History
101 lines (97 loc) · 3.89 KB

File metadata and controls

101 lines (97 loc) · 3.89 KB

Node.js NodeVersion

freecodecamp-cn-challenges-diff-parser

English Chinese

简介

freecodecamp-cn-challenges-diff-parser 是一个简单的工具,意在为 freeCodeCamp China 的开发者、贡献者和维护者提供便利

工作原理

  1. 选取两个 commit hash 来进行比较,默认会采用一个本地历史线上的 commit,以及 freecodecamp/curriculum dev 分支上最新 commit
    • 注意:目前"本地历史线上的 commit" 是写死的,后续会改成从 tag tree 中读取的 commit,即选取上次翻译所基于的 commit
  2. 获取到两个 commits 的代码差异之后,遍历 challenges 文件夹下对应的 .json 文件,找出代码差异所属的 id 或者 title 字段。之后输出结果
  3. 输出会包含以下信息:
    • 来源于代码差异的文件路径(可为新的路径,旧的路径,或两者都输出)
    • id 或者 title 字段对应的值
    • 来源于代码差异的每行代码改动的细节,类似于 git diff 输出(可选)

安装

全局(global)

// 未完成:发布到 npm

本地(dev)

Clone 代码库到本地

  1. git clone https://github.com/FreeCodeCampChina/curriculum-cn
  2. git clone https://github.com/FreeCodeCampChina/freecodecamp-cn-challenges-diff-parser

安装 diff-parser 的依赖

  1. cd freecodecamp-cn-challenges-diff-parser
  2. npm i or yarn install

在 curriculum-cn 代码库中创建本地的 dev-track-en 分支

!十分重要

  1. cd ../curriculum-cn
  2. 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

在 freecodecamp-cn-challenges-diff-parser 文件夹下使用

node index.js

在 curriculum-cn 文件夹下使用

node ${path_to_freecodecamp-cn-challenges-diff-parser}/index.js
  • 注:请替换 index.js 之前的路径为本地路径使用

Flags 与选项

node index.js [--type] [--path] [--debug]

--type

  • 设置输出类型,可选值为 titleid
  • 如果没有传入 --type,则默认值为 title
  • 注意:只要 type 传入了值,那么每行代码的改动细节就不会再输出

--path

  • 设置 path 输出的类型,可选值为 newold
  • 如果没有传入 --path,则默认为两种路径都输出

--debug

  • 设置是否输出代码改动对应的行号

使用示例

  • 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 值
    • 代码改动所属的新文件路径和旧文件路径
    • 代码改动所属的新/旧文件内对应的行号