feat(curriculum): restore seed + solution to Chinese (#40683)

* feat(tools): add seed/solution restore script

* chore(curriculum): remove empty sections' markers

* chore(curriculum): add seed + solution to Chinese

* chore: remove old formatter

* fix: update getChallenges

parse translated challenges separately, without reference to the source

* chore(curriculum): add dashedName to English

* chore(curriculum): add dashedName to Chinese

* refactor: remove unused challenge property 'name'

* fix: relax dashedName requirement

* fix: stray tag

Remove stray `pre` tag from challenge file.

Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>

Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
This commit is contained in:
Oliver Eyton-Williams
2021-01-13 03:31:00 +01:00
committed by GitHub
parent 0095583028
commit ee1e8abd87
4163 changed files with 57505 additions and 10540 deletions

View File

@@ -3,6 +3,7 @@ id: 589fc832f9fc0f352b528e78
title: Announce New Users
challengeType: 2
forumTopicId: 301546
dashedName: announce-new-users
---
# --description--
@@ -78,8 +79,6 @@ Client should properly handle and display the new data from event `'user'`.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70df9fc0f352b528e68
title: Authentication Strategies
challengeType: 2
forumTopicId: 301547
dashedName: authentication-strategies
---
# --description--
@@ -84,8 +85,6 @@ Passport-local should be correctly required and setup.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589fc831f9fc0f352b528e77
title: Authentication with Socket.IO
challengeType: 2
forumTopicId: 301548
dashedName: authentication-with-socket-io
---
# --description--
@@ -138,8 +139,6 @@ passportSocketIo should be properly setup.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589690e6f9fc0f352b528e6e
title: Clean Up Your Project with Modules
challengeType: 2
forumTopicId: 301549
dashedName: clean-up-your-project-with-modules
---
# --description--
@@ -52,8 +53,6 @@ Modules should be present.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589fc831f9fc0f352b528e75
title: Communicate by Emitting
challengeType: 2
forumTopicId: 301550
dashedName: communicate-by-emitting
---
# --description--
@@ -95,8 +96,6 @@ Your client should be listening for 'user count' event.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70df9fc0f352b528e6a
title: Create New Middleware
challengeType: 2
forumTopicId: 301551
dashedName: create-new-middleware
---
# --description--
@@ -75,8 +76,6 @@ A Get request to /profile should correctly redirect to / since we are not authen
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589fc831f9fc0f352b528e76
title: Handle a Disconnect
challengeType: 2
forumTopicId: 301552
dashedName: handle-a-disconnect
---
# --description--
@@ -57,8 +58,6 @@ Your client should be listening for 'user count' event.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 58a25c98f9fc0f352b528e7f
title: Hashing Your Passwords
challengeType: 2
forumTopicId: 301553
dashedName: hashing-your-passwords
---
# --description--
@@ -74,8 +75,6 @@ BCrypt should be correctly required and implemented.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70ef9fc0f352b528e6b
title: How to Put a Profile Together
challengeType: 2
forumTopicId: 301554
dashedName: how-to-put-a-profile-together
---
# --description--
@@ -45,8 +46,6 @@ You should correctly add a Pug render variable to /profile.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70df9fc0f352b528e69
title: How to Use Passport Strategies
challengeType: 2
forumTopicId: 301555
dashedName: how-to-use-passport-strategies
---
# --description--
@@ -67,8 +68,6 @@ A POST request to /login should correctly redirect to /.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70cf9fc0f352b528e67
title: Implement the Serialization of a Passport User
challengeType: 2
forumTopicId: 301556
dashedName: implement-the-serialization-of-a-passport-user
---
# --description--
@@ -79,8 +80,6 @@ Deserialization should now be correctly using the DB and `done(null, null)` shou
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589a69f5f9fc0f352b528e71
title: Implementation of Social Authentication II
challengeType: 2
forumTopicId: 301557
dashedName: implementation-of-social-authentication-ii
---
# --description--
@@ -102,8 +103,6 @@ GitHub strategy should be setup correctly thus far.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589a8eb3f9fc0f352b528e72
title: Implementation of Social Authentication III
challengeType: 2
forumTopicId: 301558
dashedName: implementation-of-social-authentication-iii
---
# --description--
@@ -68,8 +69,6 @@ GitHub strategy setup should be complete.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589a69f5f9fc0f352b528e70
title: Implementation of Social Authentication
challengeType: 2
forumTopicId: 301559
dashedName: implementation-of-social-authentication
---
# --description--
@@ -70,8 +71,6 @@ Route /auth/github/callback should be correct.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 58965611f9fc0f352b528e6c
title: Logging a User Out
challengeType: 2
forumTopicId: 301560
dashedName: logging-a-user-out
---
# --description--
@@ -69,8 +70,6 @@ Logout should redirect to the home page.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 58966a17f9fc0f352b528e6d
title: Registration of New Users
challengeType: 2
forumTopicId: 301561
dashedName: registration-of-new-users
---
# --description--
@@ -193,8 +194,6 @@ Profile should no longer work after logout.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589fc832f9fc0f352b528e79
title: Send and Display Chat Messages
challengeType: 2
forumTopicId: 301562
dashedName: send-and-display-chat-messages
---
# --description--
@@ -67,8 +68,6 @@ Client should properly handle and display the new data from event `'chat message
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70cf9fc0f352b528e66
title: Serialization of a User Object
challengeType: 2
forumTopicId: 301563
dashedName: serialization-of-a-user-object
---
# --description--
@@ -119,8 +120,6 @@ Mongodb should be properly required including the ObjectId.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f700f9fc0f352b528e63
title: Set up a Template Engine
challengeType: 2
forumTopicId: 301564
dashedName: set-up-a-template-engine
---
# --description--
@@ -98,8 +99,6 @@ Pug should be working.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70cf9fc0f352b528e65
title: Set up Passport
challengeType: 2
forumTopicId: 301565
dashedName: set-up-passport
---
# --description--
@@ -120,8 +121,6 @@ Session and session secret should be correctly set up.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 589fc830f9fc0f352b528e74
title: Set up the Environment
challengeType: 2
forumTopicId: 301566
dashedName: set-up-the-environment
---
# --description--
@@ -136,8 +137,6 @@ Your client should connect to your server.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5895f70bf9fc0f352b528e64
title: Use a Template Engine's Powers
challengeType: 2
forumTopicId: 301567
dashedName: use-a-template-engines-powers
---
# --description--
@@ -41,8 +42,6 @@ Pug should correctly render variables.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824c367417b2b2512c4c
title: Assert Deep Equality with .deepEqual and .notDeepEqual
challengeType: 2
forumTopicId: 301587
dashedName: assert-deep-equality-with--deepequal-and--notdeepequal
---
# --description--
@@ -67,8 +68,6 @@ You should choose the correct method for the second assertion - `deepEqual` vs.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824c367417b2b2512c4d
title: Compare the Properties of Two Elements
challengeType: 2
forumTopicId: 301588
dashedName: compare-the-properties-of-two-elements
---
# --description--
@@ -97,8 +98,6 @@ You should choose the correct method for the fourth assertion - `isAbove` vs. `i
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824a367417b2b2512c46
title: Learn How JavaScript Assertions Work
challengeType: 2
forumTopicId: 301589
dashedName: learn-how-javascript-assertions-work
---
# --description--
@@ -57,8 +58,6 @@ You should choose the correct method for the second assertion - `isNull` vs. `is
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824f367417b2b2512c5a
title: Run Functional Tests on an API Response using Chai-HTTP III - PUT method
challengeType: 2
forumTopicId: 301590
dashedName: run-functional-tests-on-an-api-response-using-chai-http-iii---put-method
---
# --description--
@@ -128,8 +129,6 @@ You should test for 'res.body.surname' to be 'Colombo'.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824f367417b2b2512c5b
title: Run Functional Tests on an API Response using Chai-HTTP IV - PUT method
challengeType: 2
forumTopicId: 301591
dashedName: run-functional-tests-on-an-api-response-using-chai-http-iv---put-method
---
# --description--
@@ -112,8 +113,6 @@ You should test for 'res.body.surname' to be 'da Verrazzano'
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824f367417b2b2512c59
title: Run Functional Tests on API Endpoints using Chai-HTTP II
challengeType: 2
forumTopicId: 301592
dashedName: run-functional-tests-on-api-endpoints-using-chai-http-ii
---
# --description--
@@ -63,8 +64,6 @@ You should test for 'res.text' == 'hello Guest'
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824e367417b2b2512c58
title: Run Functional Tests on API Endpoints using Chai-HTTP
challengeType: 2
forumTopicId: 301593
dashedName: run-functional-tests-on-api-endpoints-using-chai-http
---
# --description--
@@ -89,8 +90,6 @@ You should test for 'res.text' == 'hello Guest'
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 5f8884f4c46685731aabfc41
title: Run Functional Tests Using a Headless Browser II
challengeType: 2
forumTopicId: 301594
dashedName: run-functional-tests-using-a-headless-browser-ii
---
# --description--
@@ -103,8 +104,6 @@ You should assert that the element 'span#dates' exist and its count is 1.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d8250367417b2b2512c5d
title: Run Functional Tests using a Headless Browser
challengeType: 2
forumTopicId: 301595
dashedName: run-functional-tests-using-a-headless-browser
---
# --description--
@@ -128,8 +129,6 @@ You should assert that the element 'span#dates' exist and its count is 1.
);
```
# --seed--
# --solutions--
```js

View File

@@ -2,6 +2,7 @@
id: 587d824f367417b2b2512c5c
title: Simulate Actions Using a Headless Browser
challengeType: 2
dashedName: simulate-actions-using-a-headless-browser
---
# --description--
@@ -64,8 +65,6 @@ All tests should pass.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824b367417b2b2512c49
title: Test for Truthiness
challengeType: 2
forumTopicId: 301596
dashedName: test-for-truthiness
---
# --description--
@@ -89,8 +90,6 @@ You should choose the correct method for the third assertion - `isTrue` vs. `isN
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824d367417b2b2512c53
title: Test if a String Contains a Substring
challengeType: 2
forumTopicId: 301597
dashedName: test-if-a-string-contains-a-substring
---
# --description--
@@ -67,8 +68,6 @@ You should choose the correct method for the second assertion - `include` vs. `n
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824c367417b2b2512c4f
title: Test if a Value Falls within a Specific Range
challengeType: 2
forumTopicId: 301598
dashedName: test-if-a-value-falls-within-a-specific-range
---
# --description--
@@ -75,8 +76,6 @@ You should choose the correct range for the second assertion - `approximately(ac
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824d367417b2b2512c52
title: Test if a Value is a String
challengeType: 2
forumTopicId: 301599
dashedName: test-if-a-value-is-a-string
---
# --description--
@@ -81,8 +82,6 @@ You should choose the correct method for the third assertion - `isString` vs. `i
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824d367417b2b2512c50
title: Test if a Value is an Array
challengeType: 2
forumTopicId: 301600
dashedName: test-if-a-value-is-an-array
---
# --description--
@@ -65,8 +66,6 @@ You should choose the correct method for the second assertion - `isArray` vs. `i
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824e367417b2b2512c56
title: Test if a Value is of a Specific Data Structure Type
challengeType: 2
forumTopicId: 301601
dashedName: test-if-a-value-is-of-a-specific-data-structure-type
---
# --description--
@@ -121,8 +122,6 @@ You should choose the correct method for the fifth assertion - `typeOf` vs. `not
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824b367417b2b2512c47
title: Test if a Variable or Function is Defined
challengeType: 2
forumTopicId: 301602
dashedName: test-if-a-variable-or-function-is-defined
---
# --description--
@@ -83,8 +84,6 @@ You should choose the correct method for the third assertion - `isDefined` vs. `
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824d367417b2b2512c51
title: Test if an Array Contains an Item
challengeType: 2
forumTopicId: 301603
dashedName: test-if-an-array-contains-an-item
---
# --description--
@@ -65,8 +66,6 @@ You should choose the correct method for the second assertion - `include` vs. `n
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824e367417b2b2512c55
title: Test if an Object has a Property
challengeType: 2
forumTopicId: 301604
dashedName: test-if-an-object-has-a-property
---
# --description--
@@ -81,8 +82,6 @@ You should choose the correct method for the third assertion - `property` vs. `n
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824e367417b2b2512c57
title: Test if an Object is an Instance of a Constructor
challengeType: 2
forumTopicId: 301605
dashedName: test-if-an-object-is-an-instance-of-a-constructor
---
# --description--
@@ -103,8 +104,6 @@ You should choose the correct method for the fourth assertion - `instanceOf` vs.
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824c367417b2b2512c4e
title: Test if One Value is Below or At Least as Large as Another
challengeType: 2
forumTopicId: 301606
dashedName: test-if-one-value-is-below-or-at-least-as-large-as-another
---
# --description--
@@ -97,8 +98,6 @@ You should choose the correct method for the fourth assertion - `isBelow` vs. `i
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824b367417b2b2512c48
title: Use Assert.isOK and Assert.isNotOK
challengeType: 2
forumTopicId: 301607
dashedName: use-assert-isok-and-assert-isnotok
---
# --description--
@@ -75,8 +76,6 @@ You should choose the correct method for the third assertion - `isOk` vs. `isNot
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824d367417b2b2512c54
title: Use Regular Expressions to Test a String
challengeType: 2
forumTopicId: 301608
dashedName: use-regular-expressions-to-test-a-string
---
# --description--
@@ -67,8 +68,6 @@ You should choose the correct method for the second assertion - `match` vs. `not
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824b367417b2b2512c4a
title: Use the Double Equals to Assert Equality
challengeType: 2
forumTopicId: 301609
dashedName: use-the-double-equals-to-assert-equality
---
# --description--
@@ -99,8 +100,6 @@ You should choose the correct method for the fourth assertion - `equal` vs. `not
);
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824b367417b2b2512c4b
title: Use the Triple Equals to Assert Strict Equality
challengeType: 2
forumTopicId: 301610
dashedName: use-the-triple-equals-to-assert-strict-equality
---
# --description--
@@ -99,8 +100,6 @@ You should choose the correct method for the fourth assertion - `strictEqual` vs
);
```
# --seed--
# --solutions--
```js

View File

@@ -2,6 +2,7 @@
id: 5e601c0d5ac9d0ecd8b94afe
title: American British Translator
challengeType: 4
dashedName: american-british-translator
---
# --description--
@@ -324,8 +325,6 @@ async (getUserInput) => {
};
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d8249367417b2b2512c42
title: Issue Tracker
challengeType: 4
forumTopicId: 301569
dashedName: issue-tracker
---
# --description--
@@ -357,8 +358,6 @@ async (getUserInput) => {
};
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d8249367417b2b2512c41
title: Metric-Imperial Converter
challengeType: 4
forumTopicId: 301570
dashedName: metric-imperial-converter
---
# --description--
@@ -271,8 +272,6 @@ async (getUserInput) => {
};
```
# --seed--
# --solutions--
```js

View File

@@ -3,6 +3,7 @@ id: 587d824a367417b2b2512c43
title: Personal Library
challengeType: 4
forumTopicId: 301571
dashedName: personal-library
---
# --description--
@@ -209,8 +210,6 @@ async (getUserInput) => {
};
```
# --seed--
# --solutions--
```js

View File

@@ -2,6 +2,7 @@
id: 5e601bf95ac9d0ecd8b94afd
title: Sudoku Solver
challengeType: 4
dashedName: sudoku-solver
---
# --description--
@@ -344,8 +345,6 @@ async (getUserInput) => {
};
```
# --seed--
# --solutions--
```js