Each challenge is stored in it's own markdown file. That makes it easy to edit challenges right from within GitHub.
You can make a change without having anything running on your local system.
After you find the file you want to modify within the GitHub interface, click the pencil icon to start editing the file. This will automatically create a fork of the project, if you don't have one already.
You can also clone the project and edit locally on you computer. For help with that, read the main contributing guide.
Here is a template of what the challenge markdown files look like.
---
id: Unique identifier (alphanumerical, MongoDB _id)
title: Challenge Title
challengeType: 0
guideUrl: 'url of guide article'
videoUrl: 'url of video explaination'
---
## Description
<section id='description'>
A Description of the challenge and what is required to pass
</section>
## Instructions
<section id='instructions'>
Instructions about what exactly needs to be done.
</section>
## Tests
<section id='tests'>
``` yml
- text: Should return "foo".
testString: 'A stringified function using Chai asserts'
```
</section>
<div id='js-seed'>
```js
Code desplayed in the editor by default.
```
</div>
### Before Test
<div id='js-setup'>
```js
Test setup code.
```
</div>
</section>
### After Test
<div id='js-teardown'>
```js
Test tear down code.
```
</div>
</section>
## Solution
<section id='solution'>
```js
Challenge solution code.
```
</section>
Creating and Editing Challenges:
-
Challenge Style Guide - how to create and format challenges
-
Challenge types - what the numeric challenge type values mean (enum).
-
Contributing to FreeCodeCamp - Writing ES6 Challenge Tests - a video following Ethan Arrowood as he contributes to the old version of the curriculum