docs: add helpers to contribute docs (#42417)
* docs: add helpers to contribute docs * chore: remove helper script readme * Update docs/how-to-work-on-practice-projects.md Co-authored-by: Shaun Hamilton <shauhami020@gmail.com> * Update docs/how-to-work-on-practice-projects.md Co-authored-by: Shaun Hamilton <shauhami020@gmail.com> * Update docs/how-to-work-on-practice-projects.md Co-authored-by: Shaun Hamilton <shauhami020@gmail.com> Co-authored-by: Mrugesh Mohapatra <1884376+raisedadead@users.noreply.github.com> Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
This commit is contained in:
committed by
GitHub
parent
3de01083a4
commit
87830f3a9c
@ -8,6 +8,7 @@
|
|||||||
- [Work on video challenges](how-to-help-with-video-challenges.md)
|
- [Work on video challenges](how-to-help-with-video-challenges.md)
|
||||||
- [Work on the news theme](how-to-work-on-the-news-theme.md)
|
- [Work on the news theme](how-to-work-on-the-news-theme.md)
|
||||||
- [Work on the docs theme](how-to-work-on-the-docs-theme.md)
|
- [Work on the docs theme](how-to-work-on-the-docs-theme.md)
|
||||||
|
- [Work on practice projects](how-to-work-on-practice-projects.md)
|
||||||
- **Translation Contribution**
|
- **Translation Contribution**
|
||||||
- [Work on translating resources](how-to-translate-files.md)
|
- [Work on translating resources](how-to-translate-files.md)
|
||||||
- [Work on proofreading translations](how-to-proofread-files.md)
|
- [Work on proofreading translations](how-to-proofread-files.md)
|
||||||
|
@ -29,6 +29,9 @@ Before you work on the curriculum, you would need to set up some tooling to help
|
|||||||
|
|
||||||
- Edit the files on GitHub's interface by clicking the pencil icon for the corresponding file. While this is the quickest way, It is **not recommended**, because you are unable to test your changes on GitHub. If our maintainers conclude that the changes you made need to be tested locally, you would need to follow the methods above instead.
|
- Edit the files on GitHub's interface by clicking the pencil icon for the corresponding file. While this is the quickest way, It is **not recommended**, because you are unable to test your changes on GitHub. If our maintainers conclude that the changes you made need to be tested locally, you would need to follow the methods above instead.
|
||||||
|
|
||||||
|
### How to work on practice projects
|
||||||
|
|
||||||
|
The practice projects have some additional tooling to help create new projects and steps. To read more, see [these docs](how-to-work-on-practice-projects.md)
|
||||||
## Challenge Template
|
## Challenge Template
|
||||||
|
|
||||||
````md
|
````md
|
||||||
|
@ -1,57 +1,77 @@
|
|||||||
# freeCodeCamp Project-based Curriculum Tools
|
# How to Work on Practice Projects
|
||||||
|
|
||||||
This folder contains tools to help facilitate the creation and maintenance of the freeCodeCamp project-based curriculum.
|
The `tools/challenge-helper-scripts` folder contains tools to help facilitate the creation and maintenance of the freeCodeCamp project-based curriculum.
|
||||||
|
|
||||||
|
## Create a new project
|
||||||
|
|
||||||
|
Run `npm run create-project`. This opens up a command line ui that guides you through the process. Once that has finished, there should be a new challenge in the English curriculum that you can use for the first step of the project. For example, if you created a project called `test-project` in the Responsive Web Design certification, it would be in `curriculum/challenges/english/01-responsive-web-design/test-project`.
|
||||||
|
|
||||||
|
If you want to create new steps, the following tools simplify that process.
|
||||||
|
|
||||||
|
## create-next-step
|
||||||
|
|
||||||
## [create-next-step.js](create-next-step.js)
|
|
||||||
A one-off script that will automatically add the next step based on the last step numbered as `part-xxx.md` where `xxx` represents the 3-digit step number of the last step. The challenge seed code will use the previous step's challenge seed code with the editable region markers (ERMs) removed.
|
A one-off script that will automatically add the next step based on the last step numbered as `part-xxx.md` where `xxx` represents the 3-digit step number of the last step. The challenge seed code will use the previous step's challenge seed code with the editable region markers (ERMs) removed.
|
||||||
|
|
||||||
**Note:** This script also runs [reorder-steps.js](reorder-steps.js).
|
**Note:** This script also runs [reorder-steps](how-to-work-on-practice-projects#reorder-steps).
|
||||||
|
|
||||||
### How to run script:
|
### How to run script:
|
||||||
|
|
||||||
1. Change to the directory of the project.
|
1. Change to the directory of the project.
|
||||||
2. Run the following npm command:
|
2. Run the following npm command:
|
||||||
```bash
|
|
||||||
npm run create-next-step
|
|
||||||
```
|
|
||||||
|
|
||||||
## [create-empty-steps.js](create-empty-steps.js)
|
```bash
|
||||||
|
npm run create-next-step
|
||||||
|
```
|
||||||
|
|
||||||
|
## create-empty-steps
|
||||||
|
|
||||||
A one-off script that automatically adds a specified number of steps at a specific starting step number. The challenge seed code for all steps created will be empty.
|
A one-off script that automatically adds a specified number of steps at a specific starting step number. The challenge seed code for all steps created will be empty.
|
||||||
|
|
||||||
**Note:** This script also runs [reorder-steps.js](reorder-steps.js).
|
**Note:** This script also runs [reorder-steps](how-to-work-on-practice-projects#reorder-steps).
|
||||||
|
|
||||||
### How to run script:
|
### How to run script:
|
||||||
|
|
||||||
1. Change to the directory of the project.
|
1. Change to the directory of the project.
|
||||||
2. Run the following npm command:
|
2. Run the following npm command:
|
||||||
```bash
|
|
||||||
npm run create-empty-steps start=X num=Y # where X is the starting step number and Y is the number of steps to create.
|
|
||||||
```
|
|
||||||
|
|
||||||
## [create-step-between.js](create-step-between.js)
|
```bash
|
||||||
|
npm run create-empty-steps start=X num=Y # where X is the starting step number and Y is the number of steps to create.
|
||||||
|
```
|
||||||
|
|
||||||
|
## create-step-between
|
||||||
|
|
||||||
A one-off script that automatically adds a new step between two existing consecutive steps. The challenge seed code will use the existing starting step's challenge seed code with the editable region markers (ERMs) removed.
|
A one-off script that automatically adds a new step between two existing consecutive steps. The challenge seed code will use the existing starting step's challenge seed code with the editable region markers (ERMs) removed.
|
||||||
|
|
||||||
**Note:** This script also runs [reorder-steps.js](reorder-steps.js).
|
**Note:** This script also runs [reorder-steps](how-to-work-on-practice-projects#reorder-steps).
|
||||||
|
|
||||||
### How to run script:
|
### How to run script:
|
||||||
|
|
||||||
1. Change to the directory of the project.
|
1. Change to the directory of the project.
|
||||||
2. Run the following npm command:
|
2. Run the following npm command:
|
||||||
```bash
|
|
||||||
npm run create-step-between start=X # where X is the starting step number
|
|
||||||
```
|
|
||||||
|
|
||||||
## [delete-step.js](delete-step.js)
|
```bash
|
||||||
|
npm run create-step-between start=X # where X is the starting step number
|
||||||
|
```
|
||||||
|
|
||||||
|
## delete-step
|
||||||
|
|
||||||
A one-off script that deletes an existing step and then reorders the remaining step files in the project's folder as well as updates the `challengeOrder` property array in the project's `meta.json` with the new order of the steps.
|
A one-off script that deletes an existing step and then reorders the remaining step files in the project's folder as well as updates the `challengeOrder` property array in the project's `meta.json` with the new order of the steps.
|
||||||
|
|
||||||
### How to run script
|
### How to run script
|
||||||
|
|
||||||
1. Change to the directory of the project.
|
1. Change to the directory of the project.
|
||||||
2. Run the following npm command:
|
2. Run the following npm command:
|
||||||
```bash
|
|
||||||
npm run delete-step num=x # where x is the step number to be deleted.
|
|
||||||
```
|
|
||||||
|
|
||||||
## [reorder-steps.js](reorder-steps.js)
|
```bash
|
||||||
A one-off script that automatically reorders the step files in a project's markdown files based on the filename. It also updates the `challengeOrder` property array in the project's `meta.json` with the new order of the steps.
|
npm run delete-step num=x # where x is the step number to be deleted.
|
||||||
|
```
|
||||||
|
|
||||||
|
## reorder-steps
|
||||||
|
|
||||||
|
A one-off script that automatically reorders the step files in a project's markdown files based on the filename. It also updates the `challengeOrder` property array in the project's `meta.json` with the new order of the steps.
|
||||||
|
|
||||||
### Working Example
|
### Working Example
|
||||||
|
|
||||||
Let's say you start with the following project structure:
|
Let's say you start with the following project structure:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@ -62,9 +82,11 @@ part-4.md
|
|||||||
part-5.md
|
part-5.md
|
||||||
part-6.md
|
part-6.md
|
||||||
```
|
```
|
||||||
At some point you decide you need to delete `part-2.md`, because that step is no longer needed. Also, you decide to break down `part-4.md` into three steps instead of just one.
|
|
||||||
|
|
||||||
To accomplish the this restructure, you would need to delete `part-2.md` and then add a `part-4a.md` and a `part=5b.md`. The new folder structure would look like the following:
|
At some point you decide you need to delete `part-2.md`, because that step is no longer needed. Also, you decide to break down `part-4.md` into three steps instead of just one.
|
||||||
|
|
||||||
|
To accomplish this restructure, you would need to delete `part-2.md` and then add a `part-4a.md` and a `part-5b.md`. The new folder structure would look like the following:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
part-001.md
|
part-001.md
|
||||||
part-003.md
|
part-003.md
|
||||||
@ -74,9 +96,11 @@ part-004b.md
|
|||||||
part-005.md
|
part-005.md
|
||||||
part-006.md
|
part-006.md
|
||||||
```
|
```
|
||||||
|
|
||||||
You now need the file names to be `part-1.md` through `part-7.md`, because you removed one but gained two more for a net difference of one file. Also, the frontmatter of each file below a deleted step or added step will need to be modified by making the `title` key value match the new step number. For example, after renaming `part-3.md` to `part-2.md`, you would need to change `part-2.md`'s title from `Part 03` to `Part 02`.
|
You now need the file names to be `part-1.md` through `part-7.md`, because you removed one but gained two more for a net difference of one file. Also, the frontmatter of each file below a deleted step or added step will need to be modified by making the `title` key value match the new step number. For example, after renaming `part-3.md` to `part-2.md`, you would need to change `part-2.md`'s title from `Part 03` to `Part 02`.
|
||||||
|
|
||||||
See below for the actual project folder changes needed:
|
See below for the actual project folder changes needed:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
part-001.md
|
part-001.md
|
||||||
part-003.md renamed to part-002.md and title changes to "Part 2"
|
part-003.md renamed to part-002.md and title changes to "Part 2"
|
||||||
@ -86,11 +110,14 @@ part-004b.md renames to part-005.md and title changes to "Part 5"
|
|||||||
part-005.md renames to part-006.md and title changes to "Part 6"
|
part-005.md renames to part-006.md and title changes to "Part 6"
|
||||||
part-006.md renames to part-007.md and title changes to "Part 7"
|
part-006.md renames to part-007.md and title changes to "Part 7"
|
||||||
```
|
```
|
||||||
Along with the above changes, the `challengeOrder` key in the project's `meta.json` file needs to reflect the new step order. This is needed because each step below a step deletion and/or step addtion changes the `title` assoiciated with each of the affected step's challenge `id`.
|
|
||||||
|
Along with the above changes, the `challengeOrder` key in the project's `meta.json` file needs to reflect the new step order. This is needed because each step below a step deletion and/or step addition changes the `title` associated with each of the affected step's challenge `id`.
|
||||||
|
|
||||||
### How to run script
|
### How to run script
|
||||||
|
|
||||||
1. Change to the directory of the project.
|
1. Change to the directory of the project.
|
||||||
2. Run the following npm command:
|
2. Run the following npm command:
|
||||||
```bash
|
|
||||||
npm run reorder-steps
|
```bash
|
||||||
```
|
npm run reorder-steps
|
||||||
|
```
|
Reference in New Issue
Block a user