mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-09-24 23:01:18 +08:00
feat: challenge helpers for non-step-based challenges (#50769)
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com> Co-authored-by: Tom <20648924+moT01@users.noreply.github.com>
This commit is contained in:
co-authored by
Oliver Eyton-Williams
Tom
parent
ac48d14f8d
commit
a374c2fade
@@ -500,3 +500,69 @@ Creating and Editing Challenges:
|
||||
1. [Challenge types](https://github.com/freeCodeCamp/freeCodeCamp/blob/main/client/utils/challenge-types.js#L1-L13) - what the numeric challenge type values mean (enum).
|
||||
|
||||
2. [Contributing to FreeCodeCamp - Writing ES6 Challenge Tests](https://www.youtube.com/watch?v=iOdD84OSfAE#t=2h49m55s) - a video following [Ethan Arrowood](https://twitter.com/ArrowoodTech) as he contributes to the old version of the curriculum.
|
||||
|
||||
## Helper Scripts
|
||||
|
||||
> [!NOTE]
|
||||
> If you are working with the step-based challenges, refer to the [Work on Practice Projects](how-to-work-on-practice-projects.md) section.
|
||||
|
||||
There are a few helper scripts that can be used to manage the challenges in a block. Note that these commands should all be run in the block directory. For example:
|
||||
|
||||
```bash
|
||||
cd curriculum/challenges/english/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting
|
||||
```
|
||||
|
||||
### Add New Challenge
|
||||
|
||||
To add a new challenge at the end of a block, call the script:
|
||||
|
||||
```bash
|
||||
pnpm run create-next-challenge
|
||||
```
|
||||
|
||||
This will prompt you for the challenge information and create the challenge file, updating the `meta.json` file with the new challenge information.
|
||||
|
||||
### Delete a Challenge
|
||||
|
||||
To delete a challenge, call the script:
|
||||
|
||||
```bash
|
||||
pnpm run delete-challenge
|
||||
```
|
||||
|
||||
This will prompt you to select which challenge should be deleted, then delete the file and update the `meta.json` file to remove the challenge from the order.
|
||||
|
||||
### Insert a Challenge
|
||||
|
||||
To insert a challenge before an existing challenge, call the script:
|
||||
|
||||
```bash
|
||||
pnpm run insert-challenge
|
||||
```
|
||||
|
||||
This will prompt you for the challenge information, then for the challenge to insert before. For example, if your choices are:
|
||||
|
||||
```bash
|
||||
a
|
||||
b
|
||||
c
|
||||
```
|
||||
|
||||
And you choose `b`, your new order will be:
|
||||
|
||||
```bash
|
||||
a
|
||||
new challenge
|
||||
b
|
||||
c
|
||||
```
|
||||
|
||||
### Update Challenge Order
|
||||
|
||||
If you need to manually re-order the challenges, call the script:
|
||||
|
||||
```bash
|
||||
pnpm run update-challenge-order
|
||||
```
|
||||
|
||||
This will take you through an interactive process to select the order of the challenges.
|
||||
|
||||
Reference in New Issue
Block a user