From d834c08e715df41ae677426daa64948384167a76 Mon Sep 17 00:00:00 2001 From: Priya Ranjan Singh Date: Tue, 14 Jun 2016 15:48:20 +0530 Subject: [PATCH 01/25] display text instead of links in absence of challenge name --- server/views/account/show.jade | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/server/views/account/show.jade b/server/views/account/show.jade index 53375e3d2b..86f06a1d90 100644 --- a/server/views/account/show.jade +++ b/server/views/account/show.jade @@ -163,12 +163,16 @@ block content td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available' td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : '' td.col-xs-2.hidden-xs - if (challenge.solution) + if (challenge.solution && challenge.name) a(href='/challenges/' + removeOldTerms(challenge.name) + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank') View solution - else + else if (challenge.name) a(href='/challenges/' + removeOldTerms(challenge.name)) View this challenge - td.col-xs-12.visible-xs - if (challenge.solution) - a(href='/challenges/' + removeOldTerms(challenge.name) + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= removeOldTerms(challenge.name) else + span N/A + td.col-xs-12.visible-xs + if (challenge.solution && challenge.name) + a(href='/challenges/' + removeOldTerms(challenge.name) + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= removeOldTerms(challenge.name) + else if (challenge.name) a(href='/challenges/' + removeOldTerms(challenge.name))= removeOldTerms(challenge.name) + else + span N/A From 332ea5f76c9af7446c9a5e1a799ef9b9e35700e6 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 15 Jun 2016 13:15:31 -0700 Subject: [PATCH 02/25] remove the word simply from a couple challenges --- public/c7979f1c69945c59.html | 1 - .../basic-javascript.json | 4 ++-- .../01-front-end-development-certification/jquery.json | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 public/c7979f1c69945c59.html diff --git a/public/c7979f1c69945c59.html b/public/c7979f1c69945c59.html deleted file mode 100644 index c2aaac1ecc..0000000000 --- a/public/c7979f1c69945c59.html +++ /dev/null @@ -1 +0,0 @@ -simply-hired-verification: c7979f1c69945c59.html \ No newline at end of file diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 52a43a1396..e4fc37fc8f 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -3656,7 +3656,7 @@ "You may recall from Comparison with the Equality Operator that all comparison operators return a boolean true or false value.", "A common anti-pattern is to use an if/else statement to do a comparison and then return true/false:", "
function isEqual(a,b) {
if (a === b) {
return true;
} else {
return false;
}
}
", - "Since === returns true or false, we can simply return the result of the comparison:", + "Since === returns true or false, we can return the result of the comparison:", "
function isEqual(a,b) {
return a === b;
}
", "

Instructions

", "Fix the function isLess to remove the if/else statements." @@ -4968,7 +4968,7 @@ "description": [ "Random numbers are useful for creating random behavior.", "JavaScript has a Math.random() function that generates a random decimal number between 0 (inclusive) and not quite up to 1 (exclusive). Thus Math.random() can return a 0 but never quite return a 1", - "Note
Like Storing Values with the Equal Operator, all function calls will be resolved before the return executes, so we can simply return the value of the Math.random() function.", + "Note
Like Storing Values with the Equal Operator, all function calls will be resolved before the return executes, so we can return the value of the Math.random() function.", "

Instructions

", "Change randomFraction to return a random number instead of returning 0." ], diff --git a/seed/challenges/01-front-end-development-certification/jquery.json b/seed/challenges/01-front-end-development-certification/jquery.json index ac88fbdc74..588ea23772 100644 --- a/seed/challenges/01-front-end-development-certification/jquery.json +++ b/seed/challenges/01-front-end-development-certification/jquery.json @@ -76,7 +76,7 @@ "title": "Target HTML Elements with Selectors Using jQuery", "description": [ "Now we have a document ready function.", - "Now let's write our first jQuery statement. All jQuery functions start with a $, usually referred to as a dollar sign operator, or simply as bling.", + "Now let's write our first jQuery statement. All jQuery functions start with a $, usually referred to as a dollar sign operator, or as bling.", "jQuery often selects an HTML element with a selector, then does something to that element.", "For example, let's make all of your button elements bounce. Just add this code inside your document ready function:", "$(\"button\").addClass(\"animated bounce\");", From fdf9f77eb77c26de588a9f212381e33d9a248a31 Mon Sep 17 00:00:00 2001 From: Kirushna Date: Tue, 21 Jun 2016 13:27:45 +0530 Subject: [PATCH 03/25] Fix for night mode not persisting in pages other than challenges jq fix Fix for night mode not persisting in pages other than challenges Fix for night mode - chat --- client/main.js | 10 +++++++++- server/views/layout-wide.jade | 2 +- server/views/layout.jade | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/client/main.js b/client/main.js index 4f868452d7..c1a469d3e1 100644 --- a/client/main.js +++ b/client/main.js @@ -87,7 +87,9 @@ main = (function(main, global) { return null; } mainChatTitleAdded = true; - + if ($('body').hasClass('night')) { + $('#chat-embed-main').addClass('night'); + } $('#chat-embed-main > .gitter-chat-embed-action-bar').prepend( '
' + 'Free Code Camp\'s Main Chat' + @@ -302,6 +304,9 @@ $(document).ready(function() { frameBorder: '0' }); $('.map-aside').append(mapAside); + if ($('body').hasClass('night')) { + mapAside.addClass('night'); + } main.isMapAsideLoad = true; } $('.map-aside').removeClass('is-collapsed'); @@ -369,6 +374,9 @@ $(document).ready(function() { }); $('.wiki-aside').append(wikiAside); main.isWikiAsideLoad = true; + if ($('body').hasClass('night')) { + wikiAside.addClass('night'); + } } $('.wiki-aside').removeClass('is-collapsed'); } diff --git a/server/views/layout-wide.jade b/server/views/layout-wide.jade index cf548c3edc..8484936c90 100644 --- a/server/views/layout-wide.jade +++ b/server/views/layout-wide.jade @@ -4,7 +4,7 @@ html(lang='en') include partials/meta include partials/stylesheets if showAside - body.map-aside-body + body.map-aside-body(class=theme !== 'default' ? theme : '') include partials/scripts block content else diff --git a/server/views/layout.jade b/server/views/layout.jade index eefd4090e0..ca093688e5 100644 --- a/server/views/layout.jade +++ b/server/views/layout.jade @@ -3,7 +3,7 @@ html(lang='en') head include partials/meta include partials/stylesheets - body.top-and-bottom-margins + body.top-and-bottom-margins(class=theme !== 'default' ? theme : '') include partials/scripts include partials/navbar include partials/flash From 4e2bff77535a3df1f601a26ecab5267c176c473a Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 23 Jun 2016 14:48:54 +0530 Subject: [PATCH 04/25] Fix tests for getJSON challenge --- .../json-apis-and-ajax.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json b/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json index d64d6f00ab..2262ab8fcf 100644 --- a/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json +++ b/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json @@ -175,11 +175,11 @@ "
" ], "tests": [ - "assert(code.match(/\\$\\s*?\\(\\s*?(\\\"|\\')\\#getMessage(\\\"|\\')\\s*?\\)\\s*?\\.\\s*?on\\s*?\\(\\s*?(\\\"|\\')click(\\\"|\\')\\s*?\\,\\s*?function\\s*?\\(\\s*?\\)\\s*?\\{/gi), 'message: You should have a click handler on the getMessage button to trigger the AJAX request.');", - "assert(code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/gi), 'message: You should have at least one closing set of brackets and parenthesis.');", - "assert(code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/gi) && code.match(/\\,\\s*?function\\s*?\\(\\s*?\\w*?\\s*?\\)\\s*?\\{/gi) && code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/gi).length === code.match(/\\s*?function\\s*?\\(\\s*?\\w*?\\s*?\\)\\s*?\\{/gi).length, 'message: Each callback function should have a closing set of brackets and parenthesis.');", - "assert(code.match(/\\$\\s*?\\.\\s*?getJSON\\s*?\\(\\s*?(\\\"|\\')\\/json\\/cats\\.json(\\\"|\\')\\s*?\\,\\s*?function\\s*?\\(\\s*?json\\s*?\\)\\s*?\\{/gi), 'message: You should be making use of the getJSON method given in the description to load data from the JSON file.');", - "assert(code.match(/\\$\\s*?\\(\\s*?(\\\"|\\')\\.message(\\\"|\\')\\s*?\\)\\s*?\\.\\s*?html\\s*?\\(\\s*?JSON\\s*?\\.\\s*?stringify\\s*?\\(\\s*?json\\s*?\\)\\s*?\\)/gi), 'message: Don't forget to make the .html change the contents of the message box so that it contains the result of the getJSON.');" + "assert(code.match(/\\$\\s*?\\(\\s*?(\\\"|\\')\\#getMessage(\\\"|\\')\\s*?\\)\\s*?\\.\\s*?on\\s*?\\(\\s*?(\\\"|\\')click(\\\"|\\')\\s*?\\,\\s*?function\\s*?\\(\\s*?\\)\\s*?\\{/g), 'message: You should have a click handler on the getMessage button to trigger the AJAX request.');", + "assert(code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/g), 'message: You should have at least one closing set of brackets and parenthesis.');", + "assert(code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/g) && code.match(/\\,\\s*?function\\s*?\\(\\s*?[A-Za-z_\\$]?\\w*?\\s*?\\)\\s*?\\{/g) && code.match(/\\s*?\\}\\s*?\\)\\s*?\\;/g).length === code.match(/\\s*?function\\s*?\\(\\s*?[A-Za-z_\\$]?\\w*?\\s*?\\)\\s*?\\{/g).length, 'message: Each callback function should have a closing set of brackets and parenthesis.');", + "assert(code.match(/\\$\\s*?\\.\\s*?getJSON\\s*?\\(\\s*?(\\\"|\\')\\/json\\/cats\\.json(\\\"|\\')\\s*?\\,\\s*?function\\s*?\\(\\s*?[A-Za-z_\\$]\\w*\\s*?\\)\\s*?\\{/g), 'message: You should be making use of the getJSON method given in the description to load data from the JSON file.');", + "assert(code.match(/\\$\\s*?\\.\\s*?getJSON\\s*?\\(\\s*?(\\\"|\\')\\/json\\/cats\\.json(\\\"|\\')\\s*?\\,\\s*?function\\s*?\\(\\s*?([A-Za-z_\\$]\\w*)\\s*?\\)\\s*?{/g) && /\\$\\s*?\\.\\s*?getJSON\\s*?\\(\\s*?(\\\"|\\')\\/json\\/cats\\.json(\\\"|\\')\\s*?,\\s*?function\\s*?\\(([A-Za-z_\\$]\\w*)\\s*?\\)/g.exec(code)[3] === /\\$\\(\\s*?(\\\"|\\')\\.message\\s*?(\\\"|\\')\\s*?\\)\\s*?\\.html\\s*?\\(\\s*?JSON\\s*?\\.\\s*?stringify\\s*?\\(\\s*?([A-Za-z_\\$]\\w*)\\s*?\\)\\s*?\\)/g.exec(code)[3], 'message: Don't forget to make the .html change the contents of the message box so that it contains the result of the getJSON.');" ], "type": "waypoint", "challengeType": 0, From ae3f031fd1deff1bef7bcc41c0fab31f93572492 Mon Sep 17 00:00:00 2001 From: Arun Date: Sun, 26 Jun 2016 21:56:52 +0530 Subject: [PATCH 05/25] Fix broken challenge links by renaming challenges --- .../01-front-end-development-certification/basic-bonfires.json | 2 +- .../front-end-development-certificate.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-bonfires.json b/seed/challenges/01-front-end-development-certification/basic-bonfires.json index c6928f88cb..01234b97f2 100644 --- a/seed/challenges/01-front-end-development-certification/basic-bonfires.json +++ b/seed/challenges/01-front-end-development-certification/basic-bonfires.json @@ -366,7 +366,7 @@ }, { "id": "afcc8d540bea9ea2669306b6", - "title": "Repeat a string", + "title": "Repeat a string repeat a string", "description": [ "Repeat a given string (first argument) num times (second argument). Return an empty string if num is not a positive number.", "Remember to use Read-Search-Ask if you get stuck. Write your own code." diff --git a/seed/challenges/01-front-end-development-certification/front-end-development-certificate.json b/seed/challenges/01-front-end-development-certification/front-end-development-certificate.json index 4284162d8e..d48e9f18e9 100644 --- a/seed/challenges/01-front-end-development-certification/front-end-development-certificate.json +++ b/seed/challenges/01-front-end-development-certification/front-end-development-certificate.json @@ -123,7 +123,7 @@ }, { "id": "a8e512fbe388ac2f9198f0fa", - "title": "Where art thou" + "title": "Wherefore art thou" }, { "id": "a0b5010f579e69b815e7c5d6", From 86749c58d404d9f8e4595ad1832068c548707b28 Mon Sep 17 00:00:00 2001 From: Arun Date: Tue, 28 Jun 2016 18:18:20 +0530 Subject: [PATCH 06/25] Fix tests to allow switch of operands for !== operator --- .../basic-javascript.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 90454cbd69..0541df4145 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -2845,7 +2845,7 @@ "assert(testStrictNotEqual(\"17\") === \"Not Equal\", 'message: testStrictNotEqual(\"17\") should return \"Not Equal\"');", "assert(testStrictNotEqual(12) === \"Not Equal\", 'message: testStrictNotEqual(12) should return \"Not Equal\"');", "assert(testStrictNotEqual(\"bob\") === \"Not Equal\", 'message: testStrictNotEqual(\"bob\") should return \"Not Equal\"');", - "assert(code.match(/val\\s*!==\\s*\\d+/g).length > 0, 'message: You should use the !== operator');" + "assert(code.match(/(val\\s*!==\\s*\\d+)|(\\d+\\s*!==\\s*val)/g).length > 0, 'message: You should use the !== operator');" ], "type": "waypoint", "challengeType": 1, From 45525511db31a041b8e9b89089c04a4dfc2dff85 Mon Sep 17 00:00:00 2001 From: Ryan Will Date: Tue, 28 Jun 2016 13:59:10 -0500 Subject: [PATCH 07/25] Added a line to html5-and-css.json to clarify instructions forgot the period :) --- .../01-front-end-development-certification/html5-and-css.json | 1 + 1 file changed, 1 insertion(+) diff --git a/seed/challenges/01-front-end-development-certification/html5-and-css.json b/seed/challenges/01-front-end-development-certification/html5-and-css.json index 44c4e70664..fe481d3fa3 100644 --- a/seed/challenges/01-front-end-development-certification/html5-and-css.json +++ b/seed/challenges/01-front-end-development-certification/html5-and-css.json @@ -1634,6 +1634,7 @@ "Nest your image within an a element. Here's an example:", "<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\"></a>", "Remember to use # as your a element's href property in order to turn it into a dead link.", + "Place the existing image element within an anchor element.", "Once you've done this, hover over your image with your cursor. Your cursor's normal pointer should become the link clicking pointer. The photo is now a link." ], "challengeSeed": [ From 374b4fbc619453ab611e89e6e49490a1dc61a66e Mon Sep 17 00:00:00 2001 From: Sunny Thodupunuri Date: Sun, 26 Jun 2016 12:00:21 -0500 Subject: [PATCH 08/25] Update jQuery.json Added instructions to use double quotes on jQuery selectors since this is stylistically preferred and FreeCodeCamp's tests don't seem to support double-quote selectors. This change will clarify this issue for learners. Removed escape from quote. Added link in Get Geo-location Data challenge to remind users to use double quotes around selectors. --- .../01-front-end-development-certification/jquery.json | 3 ++- .../json-apis-and-ajax.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/jquery.json b/seed/challenges/01-front-end-development-certification/jquery.json index db5730aced..6092982ecc 100644 --- a/seed/challenges/01-front-end-development-certification/jquery.json +++ b/seed/challenges/01-front-end-development-certification/jquery.json @@ -80,7 +80,8 @@ "jQuery often selects an HTML element with a selector, then does something to that element.", "For example, let's make all of your button elements bounce. Just add this code inside your document ready function:", "$(\"button\").addClass(\"animated bounce\");", - "Note that we've already included both the jQuery library and the Animate.css library in the background so that you can use them in the editor. So you are using jQuery to apply the Animate.css bounce class to your button elements." + "Note that we've already included both the jQuery library and the Animate.css library in the background so that you can use them in the editor. So you are using jQuery to apply the Animate.css bounce class to your button elements.", + "Additionally make sure to use $(\"button\").addClass(\"animated bounce\"); instead of $('button').addClass(\"animated bounce\"); since single-quote selectors will not pass our tests." ], "challengeSeed": [ "fccss", diff --git a/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json b/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json index d64d6f00ab..ccf1334b59 100644 --- a/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json +++ b/seed/challenges/01-front-end-development-certification/json-apis-and-ajax.json @@ -447,7 +447,8 @@ "You will see a prompt to allow or block this site from knowing your current location. The challenge can be completed either way, as long as the code is correct.", "By selecting allow you will see the text on the output phone change to your latitude and longitude", "Here's some code that does this:", - "
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$(\"#data\").html(\"latitude: \" + position.coords.latitude + \"<br>longitude: \" + position.coords.longitude);
});
}
" + "
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$(\"#data\").html(\"latitude: \" + position.coords.latitude + \"<br>longitude: \" + position.coords.longitude);
});
}
", + "Don't forget to use double quotes around selectors as mentioned here." ], "challengeSeed": [ "fccss", From e90956236b36521d11daac3e7f7520b3230e1ef7 Mon Sep 17 00:00:00 2001 From: trion129 Date: Wed, 29 Jun 2016 12:38:02 +0530 Subject: [PATCH 09/25] Updated links for certificate samples --- .../00-getting-started/getting-started.json | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/seed/challenges/00-getting-started/getting-started.json b/seed/challenges/00-getting-started/getting-started.json index e994de1857..3236c8df90 100644 --- a/seed/challenges/00-getting-started/getting-started.json +++ b/seed/challenges/00-getting-started/getting-started.json @@ -51,19 +51,19 @@ "" ], [ - "//i.imgur.com/k8btNUB.jpg", + "//i.imgur.com/akGfLoa.jpg", "A screenshot of our Front End Development Certificate", "To earn our verified Front End Development Certification, you'll build 10 projects using HTML, CSS, jQuery, and JavaScript.", "" ], [ - "//i.imgur.com/Et3iD74.jpg", + "//i.imgur.com/ocEL0D3.jpg", "A screenshot of our Data Visualization Certificate", "To earn our Data Visualization Certification, you'll build 10 projects using React, Sass and D3.js.", "" ], [ - "//i.imgur.com/8v3t84p.jpg", + "//i.imgur.com/8HCk1Od.jpg", "A screenshot of our Back End Development Certificate", "To earn our Back End Development Certification, you'll build 10 projects using Node.js, Express, and MongoDB. You'll use Git and Heroku to deploy them to the cloud.", "" @@ -130,19 +130,19 @@ "" ], [ - "//i.imgur.com/k8btNUB.jpg", + "//i.imgur.com/akGfLoa.jpg", "Une capture d'écran de notre certificat développeur Front-End", "Pour réussir notre certificat Front-End vérifié, vous allez construire 10 projets utilisant HTML , CSS , jQuery et JavaScript.", "" ], [ - "//i.imgur.com/Et3iD74.jpg", + "//i.imgur.com/ocEL0D3.jpg", "Une capture d'écran de notre certificat de visualisation de données", "Pour gagner notre certification de visualisation de données , vous allez construire 10 projets utilisant Réagir, Sass et D3.js.", "" ], [ - "//i.imgur.com/8v3t84p.jpg", + "//i.imgur.com/8HCk1Od.jpg", "Une capture d'écran de notre certificat Back-End", "Pour gagner notre certification de développeur Back-End, vous allez construire 10 projets utilisant Node.js , Express, et MongoDB . Vous allez utiliser Git et Heroku de les déployer dans le cloud.", "" @@ -205,19 +205,19 @@ "" ], [ - "//i.imgur.com/k8btNUB.jpg", + "//i.imgur.com/akGfLoa.jpg", "Una imagen de nuestro Certificado de Desarrollo de Interfaces", "Para obtener nuestra certificación verificada de Desarrollo de Interfaces, construirás 10 proyectos usando HTML, CSS, jQuery y JavaScript.", "" ], [ - "//i.imgur.com/Et3iD74.jpg", + "//i.imgur.com/ocEL0D3.jpg", "Una imagen de nuestro Certificado de Visualización de Datos", "Para obtener nuestra certificación en Visualización de Datos, construirás 10 proyectos usando React, Sass y D3.js.", "" ], [ - "//i.imgur.com/8v3t84p.jpg", + "//i.imgur.com/8HCk1Od.jpg", "Una imagen de nuestro Certificado de Desarrollo al Lado del Servidor", "Para obtener nuestro Certificado de Desarrollo al Lado del Servidor, construirás 10 proyectos empleando Node.js, Express y MongoDB. Usarás Git y Heroku para desplegarlos en la nube.", "" @@ -280,19 +280,19 @@ "" ], [ - "//i.imgur.com/k8btNUB.jpg", + "//i.imgur.com/akGfLoa.jpg", "Ein Screenshot von unserem Frontendzertifikat", "Um sich unser geprüftes Frontend-Entwicklungszertifikat zu verdienen, wirst du 10 Projekte mit HTML, CSS, jQuery und Javascript umsetzen.", "" ], [ - "//i.imgur.com/Et3iD74.jpg", + "//i.imgur.com/ocEL0D3.jpg", "Ein Screenshot von unserem Datenvisualisierungszertifikat", "Für unser Datenvisualisierungszertifikat, wirst du 10 Projekte mit React, Sass und D3.js umsetzen.", "" ], [ - "//i.imgur.com/8v3t84p.jpg", + "//i.imgur.com/8HCk1Od.jpg", "Ein Screenshot von unserem Backend-Entwicklungszertifikat", "Um unser Backend-Entwicklungszertifikat zu erhalten, wirst du 10 Projekte mit Node.js, Express und MongoDB umsetzen. Du wirst Git und Heroku verwenden um sie in der Cloud zu veröffentlichen.", "" From 00d0e03a3be43809b29ad9256607bb61025677e4 Mon Sep 17 00:00:00 2001 From: BKinahan Date: Wed, 29 Jun 2016 16:32:22 +0000 Subject: [PATCH 10/25] Simplify escape sequences and associated tests --- .../basic-javascript.json | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 0541df4145..a2b344d86d 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -1036,14 +1036,14 @@ "title": "Escape Sequences in Strings", "description": [ "Quotes are not the only characters that can be escaped inside a string. Here is a table of common escape sequences:", - "
CodeOutput
\\'single quote
\\\"double quote
\\\\backslash
\\nnew line
\\rcarriage return
\\ttab
\\bbackspace
\\fform feed
", + "
CodeOutput
\\'single quote
\\\"double quote
\\\\backslash
\\nnewline
\\rcarriage return
\\ttab
\\bbackspace
\\fform feed
", "Note that the backslash itself must be escaped in order to display as a backslash.", "

Instructions

", - "Assign the following two lines of text into the single variable myStr using escape sequences.", - "
Here is a backslash: \\.
        Here is a new line with two tabs.
", - "You will need to use escape sequences to insert special characters correctly. You will also need to follow the spacing as it looks above with no additional spaces between each escape sequence.", + "Assign the following three lines of text into the single variable myStr using escape sequences.", + "
FirstLine
\\SecondLine\\
ThirdLine
", + "You will need to use escape sequences to insert special characters correctly. You will also need to follow the spacing as it looks above, with no spaces between escape sequences or words.", "Here is the text with the escape sequences written out.", - "Here is a backslash: backslash.newline tab tab Here is a new line with two tabs." + "FirstLinenewlinebackslashSecondLinebackslashcarriage-returnThirdLine" ], "releasedOn": "January 1, 2016", "challengeSeed": [ @@ -1058,14 +1058,13 @@ "else{return null;}})();" ], "solutions": [ - "var myStr = \"Here is a backslash: \\\\.\\n\\t\\tHere is a new line with two tabs.\";" + "var myStr = \"FirstLine\\n\\\\SecondLine\\\\\\rThirdLine\";" ], "tests": [ - "assert(myStr === \"Here is a backslash: \\\\.\\n\\t\\tHere is a new line with two tabs.\", 'message: myStr should have encoded text with the proper escape sequences and spacing.');", - "assert(myStr.match(/\\t/g).length == 2, 'message: myStr should have two tab characters \\t');", + "assert(myStr === \"FirstLine\\n\\\\SecondLine\\\\\\rThirdLine\", 'message: myStr should have encoded text with the proper escape sequences and no spacing.');", "assert(myStr.match(/\\n/g).length == 1, 'message: myStr should have one newline character \\n');", - "assert(myStr.match(/\\\\/g).length == 1, 'message: myStr should have a correctly escaped backslash character \\\\');", - "assert(myStr === \"Here is a backslash: \\\\.\\n\\t\\tHere is a new line with two tabs.\", 'message: myStr should not have any spaces in between consecutive escape sequences.');" + "assert(myStr.match(/\\r/g).length == 1, 'message: myStr should have one carriage return character \\r');", + "assert(myStr.match(/\\\\/g).length == 2, 'message: myStr should have two correctly escaped backslash characters \\\\');" ], "type": "waypoint", "challengeType": 1, From 3ae560c3fa9963cf0a8c979a5ecc7dc8ee349534 Mon Sep 17 00:00:00 2001 From: Mrugesh Mohapatra Date: Wed, 29 Jun 2016 22:11:03 +0530 Subject: [PATCH 11/25] Update PR Template --- .github/PULL_REQUEST_TEMPLATE.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b5fe971fce..764a1bc73c 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,8 +5,8 @@ #### Pre-Submission Checklist - - + + - [ ] Your pull request targets the `staging` branch of FreeCodeCamp. - [ ] Branch starts with either `fix/`, `feature/`, or `translate/` (e.g. `fix/signin-issue`) @@ -14,14 +14,14 @@ - [ ] All new and existing tests pass the command `npm run test-challenges`. Use `git commit --amend` to amend any fixes. #### Type of Change - + - [ ] Small bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds new functionality) - [ ] Breaking change (fix or feature that would change existing functionality) - [ ] Add new translation (feature adding new translations) #### Checklist: - + - [ ] Tested changes locally. - [ ] Closes currently open issue (replace XXXX with an issue no): Closes #XXXX From 76bbff537502302efd8fecbbec5cbe99e6484022 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 29 Jun 2016 12:21:25 -0700 Subject: [PATCH 12/25] Simplify landing page and update about page --- server/views/home.jade | 41 ++++++++---------- server/views/resources/about.jade | 70 ++++++------------------------- 2 files changed, 30 insertions(+), 81 deletions(-) diff --git a/server/views/home.jade b/server/views/home.jade index f5096ae9a4..68a25055a8 100644 --- a/server/views/home.jade +++ b/server/views/home.jade @@ -1,40 +1,38 @@ extends layout block content .text-center - h1.landing-heading Learn to code and help nonprofits. - .spacer .row + h1.landing-heading Learn to code and help nonprofits .big-break .big-break .big-break - .col-xs-12.col-sm-12.col-md-3 + .col-xs-12.col-sm-12.col-md-4 img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg', alt='Get great references and connections to start your software engineer career') - p.large-p Join a community of 400,000+ developers. - .col-xs-12.col-sm-12.col-md-3 - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg', alt='Learn to code and learn full stack JavaScript') - p.large-p Work on coding challenges together. - .col-xs-12.col-sm-12.col-md-3 - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg', alt='Build a portfolio of apps for nonprofits') - p.large-p Build a portfolio of apps that solve real problems. - .col-xs-12.col-sm-12.col-md-3 - img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg', alt='Empower nonprofits with code') - p.large-p Empower nonprofits with code. - .big-break - .big-break + p.large-p + a(href='/map') 17,000,000+ + |  coding challenges solved + .col-xs-12.col-sm-12.col-md-4 + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg', alt='Help nonprofits with bro bono code projects') + p.large-p + a(href='/nonprofits') $1,000,000+ + |  in donated development work + .col-xs-12.col-sm-12.col-md-4 + img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg', alt='Get hired as a developer and start your software engineer career') + p.large-p + a(href='/stories') 2,000+ + |  campers now have developer jobs .big-break .big-break .row .col-xs-12.col-sm-8.col-sm-offset-2 a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start coding (it's free) - .button-spacer - a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits") My nonprofit needs coding help .spacer h2 As featured in: img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png') .spacer hr .spacer - h2 Launch your career as a software engineer: + h2 Launch your developer career .spacer .row .col-xs-12.col-sm-12.col-md-4 @@ -50,14 +48,9 @@ block content p.testimonial-copy I started Free Code Camp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer. h3 - Maxim Orlov .spacer - .row - .col-xs-12.col-sm-8.col-sm-offset-2 - a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href='/stories') Hear from more of our campers - .spacer - .spacer hr .spacer - h2 Skills you'll learn: + h2 Learn powerful skills .spacer .row .text-center.negative-35 diff --git a/server/views/resources/about.jade b/server/views/resources/about.jade index 52420e8a29..bc09a1af4a 100644 --- a/server/views/resources/about.jade +++ b/server/views/resources/about.jade @@ -23,7 +23,7 @@ block content | to nonprofits .row .col-xs-12.col-sm-10.col-sm-offset-1.col-md-6.col-md-offset-3 - h2.text-center Certifications + h2.text-center Certificates hr ul.population-table li.nowrap @@ -117,7 +117,7 @@ block content td.text-center i.fa.fa-comment td - a(href="/stories") Stories from campers who've become professional software engineers + a(href="/stories") Stories from campers who've become professional software developers .spacer .row .col-xs-12.col-sm-10.col-sm-offset-1.col-md-6.col-md-offset-3 @@ -127,25 +127,23 @@ block content

What is Free Code Camp?

We’re an open source community that helps you learn to code.

How do you help me learn to code?

-

You can work through our self-paced coding challenges, build projects, and earn certifications. We also connect you with people in your city so you can code together.

-

Can Free Code Camp help me get a job as a software engineer?

-

Yes. Hundreds of people have gotten software engineering jobs after completing our coding challenges.

+

You can work through our self-paced coding challenges, build projects, and earn certificates. We also connect you with people in your city so you can code together.

+

Can Free Code Camp help me get a job as a software developer?

+

Yes. Thousands of people have gotten software developer jobs after joining our open source community.

Is Free Code Camp a coding bootcamp?

No. A lot of coding bootcamps use Free Code Camp as part of their curriculum, though.

Is Free Code Camp really free?

-

Yes. Our curriculum, nonprofit projects, and verified certifications are all free.

-

Which certifications does Free Code Camp offer?

-

We offer four free verified certifications: front end development, back end development, data visualization, and full stack development.

+

Yes. Our curriculum, nonprofit projects, and verified certificates are all free.

How can I help nonprofits through Free Code Camp?

-

Once you finish the first three certifications, you’ll get to build a series of solutions for nonprofits. You’ll work in pairs, under the supervision of a volunteer project manager and a stakeholder from the nonprofit.

+

Once you finish the first 1,200 hours of challenges, you’ll get to build a series of solutions for nonprofits. You’ll work in pairs, under the supervision of a volunteer project manager and a stakeholder from the nonprofit.

How much money has Free Code Camp saved nonprofits?

-

Our community has done nearly a million dollars worth of pro-bono coding for nonprofits so far.

-

Is there a way I can help nonprofits before I earn my certifications?

-

Yes. You can pledge a monthly donation to a nonprofit of your choosing while you learn.

+

Our community has donated more than a million dollars worth of pro-bono coding for nonprofits so far.

+

Is there a way I can help nonprofits before I earn my certificates?

+

Yes. You can pledge a monthly donation to a nonprofit of your choosing while you learn.

How long does Free Code Camp take?

-

It takes about 2,080 hours to earn all four of our certifications. This translates into one year of full-time coding. We’re completely self-paced though, so take as long as you need.

+

It takes about 2,080 hours to complete Full Stack Developer certificate. This translates into one year of full-time coding. We’re completely self-paced though, so take as long as you need.

Is Free Code Camp a replacement for a 4-year degree?

-

No. Please don’t drop out of college just to pursue Free Code Camp. You can pursue both concurrently. Even though you don’t need a 4-year degree to work as a software engineer, it still helps a lot.

+

No. Please don’t drop out of college just to pursue Free Code Camp. You can pursue both concurrently. Even though you don’t need a 4-year degree to work as a software developer, it still helps a lot.

I'm a teacher. Is Free Code Camp an appropriate resource for my class?

Yes. Many high school, college, and adult ed programs incorporate Free Code Camp into their coursework. We're open source, so no licenses or special permission from us is necessary. We're even building special tools for teachers.

Should I complete all of these challenges in order?

@@ -169,49 +167,7 @@ block content

Can I donate to Free Code Camp?

We don’t accept donations. Instead, you should support us through our shop.

- .spacer - .row - .col-xs-12.col-sm-10.col-sm-offset-1.col-md-6.col-md-offset-3 - h2.text-center Whom to contact for what - table.table.table-stripe - tr - td Support ( - a(href='mailto:team@freecodecamp.com') team@freecodecamp.com - | ) - td - a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson - tr - td Facebook page - td - a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson - tr - td Twitter feed - td - a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson - tr - td Medium publication - td - a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson - tr - td Media inquiries - td - a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson - tr - td Open source codebase contributions - td - a(href='https://gitter.im/BerkeleyTrue' target='_blank') @BerkeleyTrue - tr - td Server problems - td - a(href='https://gitter.im/BerkeleyTrue' target='_blank') @BerkeleyTrue - tr - td Nonprofit projects - td - a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit - tr - td Volunteer agile project managers - td - a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit + tr td Commit program td From 00bf7f11fced8e857a35b595dce3a46ce0ab50b5 Mon Sep 17 00:00:00 2001 From: Daniel C Date: Wed, 29 Jun 2016 22:30:58 +0300 Subject: [PATCH 13/25] wider instructions column in all 2-column layouts --- server/views/challenges/showBonfire.jade | 4 ++-- server/views/challenges/showJS.jade | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/server/views/challenges/showBonfire.jade b/server/views/challenges/showBonfire.jade index 7b01d104ff..a95099e53b 100644 --- a/server/views/challenges/showBonfire.jade +++ b/server/views/challenges/showBonfire.jade @@ -6,7 +6,7 @@ block content link(rel='stylesheet', href='/css/ubuntu.css') include ../partials/flyer .row - .col-md-4.col-lg-3 + .col-md-4 .scroll-locker(id = "scroll-locker") .innerMarginFix(style=' width: 99%') #testCreatePanel @@ -56,7 +56,7 @@ block content #testSuite br - .col-md-8.col-lg-9 + .col-md-8 .editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;") #mainEditorPanel form.code diff --git a/server/views/challenges/showJS.jade b/server/views/challenges/showJS.jade index bdebab3ad8..40e2753857 100644 --- a/server/views/challenges/showJS.jade +++ b/server/views/challenges/showJS.jade @@ -6,7 +6,7 @@ block content link(rel='stylesheet', href='/css/ubuntu.css') include ../partials/flyer .row - .col-md-4.col-lg-3 + .col-md-4 .scroll-locker(id = "scroll-locker") .innerMarginFix(style = "width: 99%;") #testCreatePanel @@ -56,7 +56,7 @@ block content br #testSuite br - .col-md-8.col-lg-9 + .col-md-8 .editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;") #mainEditorPanel form.code From d07419a0cf45d5bcee6def9f856a324d4808f349 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 29 Jun 2016 13:11:06 -0700 Subject: [PATCH 14/25] Fix contact list and add Michael Henderson to it. --- server/views/resources/about.jade | 124 ++++++++++++++++++++---------- 1 file changed, 84 insertions(+), 40 deletions(-) diff --git a/server/views/resources/about.jade b/server/views/resources/about.jade index bc09a1af4a..8c73d62517 100644 --- a/server/views/resources/about.jade +++ b/server/views/resources/about.jade @@ -145,15 +145,13 @@ block content

Is Free Code Camp a replacement for a 4-year degree?

No. Please don’t drop out of college just to pursue Free Code Camp. You can pursue both concurrently. Even though you don’t need a 4-year degree to work as a software developer, it still helps a lot.

I'm a teacher. Is Free Code Camp an appropriate resource for my class?

-

Yes. Many high school, college, and adult ed programs incorporate Free Code Camp into their coursework. We're open source, so no licenses or special permission from us is necessary. We're even building special tools for teachers.

+

Yes. Many high school, college, and adult ed programs incorporate Free Code Camp into their coursework. We're open source, so no license or special permission from us is necessary. We're even building special tools for teachers.

Should I complete all of these challenges in order?

We’ve put a lot of thought into how we introduce concepts. But you’re free to jump around.

Do I have to use CodePen for the front end projects?

As long as your code is publicly viewable, and you have a live demo, you can use whatever you want.

When will you release the additional React, Sass, and D3 challenges?

We’ll release these in Summer 2016. In the meantime, other people have completed our React/Sass and D3 projects by referencing their official documentation.

-

How can I hire Free Code Camp alumni?

-

You can reach out to them through our alumni network.

How did Free Code Camp get started?

Quincy started our open source community in 2014. He is now just one of many active contributors.

How is Free Code Camp incorporated?

@@ -167,40 +165,86 @@ block content

Can I donate to Free Code Camp?

We don’t accept donations. Instead, you should support us through our shop.

- - tr - td Commit program - td - a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit - tr - td Video challenge curriculum - td - a(href='https://gitter.im/BrianaMarie' target='_blank') @BrianaMarie - tr - td Youtube channel - td - a(href='https://gitter.im/Septimus' target='_blank') @Septimus - tr - td JavaScript curriculum - td - a(href='https://gitter.im/SaintPeter' target='_blank') @SaintPeter - tr - td Data Science and Open Data - td - a(href='https://gitter.im/Evaristoc' target='_blank') @Evaristoc - tr - td CamperBot - td - a(href='https://gitter.im/LTegman' target='_blank') @LTegman - tr - td Translation and Internationalization - td - a(href='https://gitter.im/Vtamara' target='_blank') @Vtamara - tr - td Wiki - td - a(href='https://gitter.im/Rafase282' target='_blank') @Rafase282 - tr - td Local groups - td - a(href='https://gitter.im/Hallaathrad' target='_blank') @Hallaathrad + .spacer + .row + .col-xs-12.col-sm-10.col-sm-offset-1.col-md-6.col-md-offset-3 + h2.text-center Whom to contact for what + table.table.table-stripe + tr + td Support ( + a(href='mailto:team@freecodecamp.com') team@freecodecamp.com + | ) + td + a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson + tr + td Facebook page + td + a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson + tr + td Twitter feed + td + a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson + tr + td Medium publication + td + a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson + tr + td Media inquiries + td + a(href='https://gitter.im/QuincyLarson' target='_blank') @QuincyLarson + tr + td Open source codebase contributions + td + a(href='https://gitter.im/BerkeleyTrue' target='_blank') @BerkeleyTrue + tr + td Server problems + td + a(href='https://gitter.im/BerkeleyTrue' target='_blank') @BerkeleyTrue + tr + td Nonprofit projects + td + a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit + tr + td Volunteer agile project managers + td + a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit + tr + td Commit program + td + a(href='https://gitter.im/CodeNonprofit' target='_blank') @CodeNonprofit + tr + td Video challenge curriculum + td + a(href='https://gitter.im/BrianaMarie' target='_blank') @BrianaMarie + tr + td Youtube channel + td + a(href='https://gitter.im/Septimus' target='_blank') @Septimus + tr + td JavaScript curriculum + td + a(href='https://gitter.im/SaintPeter' target='_blank') @SaintPeter + tr + td Data Science and Open Data + td + a(href='https://gitter.im/Evaristoc' target='_blank') @Evaristoc + tr + td CamperBot + td + a(href='https://gitter.im/LTegman' target='_blank') @LTegman + tr + td Translation and Internationalization + td + a(href='https://gitter.im/Vtamara' target='_blank') @Vtamara + tr + td Wiki + td + a(href='https://gitter.im/Rafase282' target='_blank') @Rafase282 + tr + td Local groups + td + a(href='https://gitter.im/Hallaathrad' target='_blank') @Hallaathrad + tr + td Forum + td + a(href='https://gitter.im/m-henderson' target='_blank') @m-henderson From c14c4ea448b27c3c20ce8ba88b2e1eabc8606f5b Mon Sep 17 00:00:00 2001 From: Daksh Shah Date: Wed, 29 Jun 2016 23:44:35 +0300 Subject: [PATCH 15/25] Update tests for Delete Properties from a JavaScript Object --- .../basic-javascript.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index 0541df4145..79b39e1890 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -4197,7 +4197,7 @@ "var ourDog = {\n \"name\": \"Camper\",\n \"legs\": 4,\n \"tails\": 1,\n \"friends\": [\"everything!\"],\n \"bark\": \"bow-wow\"\n};\nvar myDog = {\n \"name\": \"Happy Coder\",\n \"legs\": 4,\n \"tails\": 1,\n \"friends\": [\"Free Code Camp Campers\"],\n \"bark\": \"woof\"\n};\ndelete myDog.tails;" ], "tests": [ - "assert(myDog.tails === undefined, 'message: Delete the property \"tails\" from myDog.');", + "assert(typeof myDog === \"object\" && myDog.tails === undefined, 'message: Delete the property \"tails\" from myDog.');", "assert(code.match(/\"tails\": 1/g).length > 1, 'message: Do not modify the myDog setup');" ], "type": "waypoint", From c0474784124a56510688cd193185118fdcb7821c Mon Sep 17 00:00:00 2001 From: Arun Date: Thu, 30 Jun 2016 07:58:31 +0530 Subject: [PATCH 16/25] Fix tests for override styles using important keyword challenge --- .../01-front-end-development-certification/html5-and-css.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/html5-and-css.json b/seed/challenges/01-front-end-development-certification/html5-and-css.json index fe481d3fa3..804378d371 100644 --- a/seed/challenges/01-front-end-development-certification/html5-and-css.json +++ b/seed/challenges/01-front-end-development-certification/html5-and-css.json @@ -4267,7 +4267,7 @@ "assert($(\"h1\").hasClass(\"blue-text\"), 'message: Your h1 element should have the class blue-text.');", "assert($(\"h1\").attr(\"id\") === \"orange-text\", 'message: Your h1 element should have the id of orange-text.');", "assert(code.match(/h1 element should have the inline style of color: white.');", - "assert(code.match(/\\.pink-text\\s*?\\{\\s+color:.*pink.*!important;\\s+\\}/gi), 'message: Your pink-text class declaration should have the !important keyword to override all other declarations.');", + "assert(code.match(/\\.pink-text\\s*?\\{[\\s\\S]*?color:.*pink.*!important;[^\\.]*\\}/g), 'message: Your pink-text class declaration should have the !important keyword to override all other declarations.');", "assert($(\"h1\").css(\"color\") === \"rgb(255, 192, 203)\", 'message: Your h1 element should be pink.');" ], "descriptionPtBR": [ From 4d001de7b839560703f11d742f8e3a3f2c2ba8b6 Mon Sep 17 00:00:00 2001 From: Max Ono Date: Thu, 30 Jun 2016 11:53:10 -0700 Subject: [PATCH 17/25] Update description of Record Collection code challenge. --- .../basic-javascript.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/basic-javascript.json b/seed/challenges/01-front-end-development-certification/basic-javascript.json index bbb56f5a6e..0994d97e47 100644 --- a/seed/challenges/01-front-end-development-certification/basic-javascript.json +++ b/seed/challenges/01-front-end-development-certification/basic-javascript.json @@ -4517,14 +4517,14 @@ "id": "56533eb9ac21ba0edf2244cf", "title": "Record Collection", "description": [ - "You are given a JSON object representing (a small part of) your record collection. Each album is identified by a unique id number (its key) and has several properties. Not all albums have complete information.", - "Write a function which takes an id, a property (prop), and a value.", - "For the given id in collection:", - "If prop does not contain the key \"tracks\", then update or set the value for that incomplete prop.", - "If prop does not contain the key \"tracks\" before you update it, create an empty array before pushing a track to it.", - "If prop does contain the key \"tracks\" and its value is non-blank, then push the value onto the end of its existing tracks array.", - "If value is blank, delete that prop.", - "Always return the entire collection object.", + "You are given a JSON object representing a part of your musical album collection. Each album has several properties and a unique id number as its key. Not all albums have complete information.", + "Write a function which takes an album's id (like 2548), a property prop (like \"artist\" or \"tracks\"), and a value (like \"Addicted to Love\") to modify the data in this collection.", + "If prop isn't \"tracks\" and value isn't blank, update or set the value for that record album's property.", + "Your function must always return the entire collection object.", + "There are several rules for handling incomplete data:", + "If prop is \"tracks\" but the album doesn't have a \"tracks\" property, create an empty array before adding the new value to the album's corresponding property.", + "If prop is \"tracks\" and value isn't blank, push the value onto the end of the album's existing tracks array.", + "If value is blank, delete that property from the album.", "Hints
Use bracket notation when accessing object properties with variables.", "Push is an array method you can read about on Mozilla Developer Network.", "You may refer back to Manipulating Complex ObjectsIntroducing JavaScript Object Notation (JSON) for a refresher." From f229aad1b69339fc41413db0af99532f41cc1bc6 Mon Sep 17 00:00:00 2001 From: Damien Cosset Date: Fri, 1 Jul 2016 02:02:03 +0200 Subject: [PATCH 18/25] French translation of first four jQuery challenges (#9468) * French translation jQuery Challenge * French Translation jQuery Challenges 2, 3 and 4 * Update jquery.json * Update jquery.json --- .../jquery.json | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/seed/challenges/01-front-end-development-certification/jquery.json b/seed/challenges/01-front-end-development-certification/jquery.json index 746653ddf5..0bcebbe37a 100644 --- a/seed/challenges/01-front-end-development-certification/jquery.json +++ b/seed/challenges/01-front-end-development-certification/jquery.json @@ -69,6 +69,16 @@ "Füge innerhalb deines script Elements folgenden Code hinzu: $(document).ready(function() {. Schließe ihn danach in der nächsten Zeile (noch immer innerhalb deines script Elements) mit: });", "Wir werden später noch mehr über Funktionen lernen. Wichtig zu wissen ist, dass der Code innerhalb der Funktion ausgeführt wird, sobald der Browser die Seite geladen hat.", "Das ist wichtig, denn ohne deine Document Ready Funktion könnte dein Code ausgeführt werden, bevor das HTML gerendert wurde - was zu Fehlern führen kann." + ], + "titleFr" : "Apprendre comment fonctionnent les balises Script et Document Ready", + "descriptionFr": [ + "Nous sommes maintenant prêt à apprendre jQuery, l'outil Javascript le plus populaire de tout les temps. Ne vous inquiétez pas à propos de JavaScript lui-même, nous y viendrons bientôt.", + "Avant de pouvoir utiliser jQuery, nous avons besoin d'ajouter certaines choses à notre HTML.", + "Premièrement, ajoutez un élément script en haut de votre page. Assurez-vous de le fermer à la ligne suivante.", + "Votre navigateur exécutera JavaScript à l'intérieur de l'élement script, y compris jQuery.", + "Á l'intérieur de votre élement script, ajoutez ce code : $(document).ready(function() { à votre script. Puis fermez-le à la ligne suivante (toujours à l'intérieur de votre élement script avec: });", + "Nous en apprendrons plus sur les functions plus tard. Le plus important à savoir est que le code à l'intérieur de cette function sera exécuté dès que le navigateur aura chargé votre page.", + "Ceci est important car sans votre document ready function, votre code pourrait être exécuté avant que votre HTML soit affiché, ce qui pourrait causer des problèmes." ] }, { @@ -137,6 +147,16 @@ "Zum Beispiel, lasse alle deine Button Elemente hüpfen. Dazu musst du nur folgenden Code in deine Document Ready Funktion hinzufügen:", "$(\"button\").addClass(\"animated bounce\");", "Beachte, dass wir bereits jQuery und Animate.css im Hintergrund hinzugefügt haben, damit du diese im Editor nutzen kannst. Du nutzt also jQuery um die bounce Klasse von Animate.css zu deinen Button Elementen hinzuzufügen." + ], + "titleFr": "Cibler des élements HTML par sélecteurs avec jQuery", + "descriptionFr" : [ + "Nous avons maintenant un document ready function.", + "Nous allons à présent écrire notre première expression jQuery. Chaque fonction jQuery commence avec un $, habituellement nommé opérateur dollar, ou bling.", + "jQuery sélectionne souvent un élément HTML à l'aide d'un selector, puis fait quelque chose à cet élement.", + "Par exemple, faisons en sorte que tous nos button rebondissent. Ajoutez juste ce code à l'intérieur de votre $(document).ready(function(){:", + "$(\"button\").addClass(\"animated bounce\");", + "Notez que nous avons déjà inclus à la fois la librairie jQuery et la librairie Animate.css en amont donc nous pouvons les utiliser dans l'éditeur. Donc, vous utilisez jQuery pour appliquer la classe bounce d'Animate.css à vos éléments button.", + "De plus, assurez-vous d'utiliser $(\"button\").addClass(\"animated bounce\"); et non $('button').addClass(\"animated bounce\"); car les apostrophes ne passeront pas nos tests." ] }, { @@ -207,6 +227,16 @@ "Dann nutze die jQuery Funktion .addClass() um die Klassen animated und shake hinzuzufügen.", "Zum Beispiel könntest du alle Elemente mit der Klasse text-primary schütteln lassen, indem du folgendes zu deiner Document Ready Funktion hinzufügst:", "$(\".text-primary\").addClass(\"animated shake\");" + ], + "titleFr" : "Cibler les élements par Classe avec jQuery", + "descriptionFr" : [ + "Voyez comment nous avons fait rebondir tous nos éléments button? Nous les avons sélectionné avec $(\"button\"), puis nous leur avons ajouté des classes CSS avec .addClass(\"animated bounce\");.", + "Vous venez d'utiliser la fonction jQuery .addClass(), ce qui nous permet d'ajouter des classes aux éléments.", + "Tout d'abord, ciblons nos éléments div qui ont la classe well en utilisant le sélecteur $(\".well\").", + "Notez que, tout comme les expressions CSS, vous ajoutez un . avant le nom de la classe.", + "Puis, vous utilisez la fonction jQuery .addClass() pour ajouter les classes animated et shake.", + "Par exemple, vous pouvez faire en sorte que tous les éléments avec la classe text-primary s'agitent en ajoutant le code suivant à votre document ready function:", + "$(\".text-primary\").addClass(\"animated shake\");" ] }, { @@ -277,6 +307,15 @@ "Dann nutze die jQuery Funktion .addClass() um die Klassen animated und fadeOut hinzuzufügen.", "So könntest du das Button Element mit der ID target6 ausblenden lassen:", "$(\"#target6\").addClass(\"animated fadeOut\")." + ], + "titleFr" : "Cibler les éléments par ID avec jQuery", + "descriptionFr" : [ + "Vous pouvez également cibler les éléments à l'aide de leurs attributs id.", + "Premièrement, cibler votre élément button avec l'id target3 en utilisant le sélecteur $(\"#target\").", + "Notez que, tout comme les expressions CSS, vous ajoutez un # avant le nom de l'id.", + "Puis, utilisez la fonction jQuery .addClass() afin d'ajouter les classes animated et fadeOut.", + "Voici comment vous pouvez faire en sorte que l'élément button avec l'id target6 disparaisse en fondu:", + "$(\"#target6\").addClass(\"animated fadeOut\")." ] }, { From aa43aeafe4c9b96e0810e202e30e1def66371adc Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Thu, 30 Jun 2016 23:40:12 -0700 Subject: [PATCH 19/25] fix typo pointed out by @atjonathan --- server/views/resources/about.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/views/resources/about.jade b/server/views/resources/about.jade index 8c73d62517..62e7dabef2 100644 --- a/server/views/resources/about.jade +++ b/server/views/resources/about.jade @@ -141,7 +141,7 @@ block content

Is there a way I can help nonprofits before I earn my certificates?

Yes. You can pledge a monthly donation to a nonprofit of your choosing while you learn.

How long does Free Code Camp take?

-

It takes about 2,080 hours to complete Full Stack Developer certificate. This translates into one year of full-time coding. We’re completely self-paced though, so take as long as you need.

+

It takes about 2,080 hours to complete our Full Stack Developer certificate. This translates into one year of full-time coding. We’re completely self-paced though, so take as long as you need.

Is Free Code Camp a replacement for a 4-year degree?

No. Please don’t drop out of college just to pursue Free Code Camp. You can pursue both concurrently. Even though you don’t need a 4-year degree to work as a software developer, it still helps a lot.

I'm a teacher. Is Free Code Camp an appropriate resource for my class?

From cffd7c11f4cf3f00733bbeb7749562105ad875a6 Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Fri, 1 Jul 2016 00:25:01 -0700 Subject: [PATCH 20/25] make pledge-related notifications more specific and helpful (#9040) * make pledge-related notifications more specific and helpful * further improve commit flash messages * fix minor whitespace issue --- server/boot/commit.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/server/boot/commit.js b/server/boot/commit.js index 77c7008a41..8f900fb59a 100644 --- a/server/boot/commit.js +++ b/server/boot/commit.js @@ -104,7 +104,9 @@ export default function commit(app) { req.flash('info', { msg: dedent` Looks like you already have a pledge to ${pledge.displayName}. - Hitting commit here will replace your old commitment. + Clicking "Commit" here will replace your old commitment. If you + do change your commitment, please remember to cancel your + previous recurring donation directly with ${pledge.displayName}. ` }); } @@ -169,7 +171,8 @@ export default function commit(app) { msg: dedent` Congratulations, you have committed to giving ${displayName} $${amount} each month until you have completed - your ${goal}. + your ${goal}. Please remember to cancel your pledge directly + with ${displayName} once you finish. ` }); res.redirect('/' + user.username); @@ -217,11 +220,18 @@ export default function commit(app) { }) .subscribe( pledge => { - let msg = 'You have successfully stopped your pledge.'; + let msg = dedent` + You have successfully stopped your pledge. Please + rememberto cancel your recurring donation directly + with the nonprofit if you haven't already done so. + `; if (!pledge) { - msg = `No pledge found for user ${user.username}.`; + msg = dedent` + It doesn't look like you had an active pledge, so + there's no pledge to stop. + `; } - req.flash('errors', { msg }); + req.flash('info', { msg }); return res.redirect(`/${user.username}`); }, next From 944983846fcc5085cec48aa2999aebdf5f4a2d66 Mon Sep 17 00:00:00 2001 From: Jonathan Coleman Date: Fri, 1 Jul 2016 04:12:13 -0400 Subject: [PATCH 21/25] modify test case for class to allow for unquoted string as class (#9408) * modify test case for class to allow for unquoted string as class * Add more tests to account for more than one image tag and to ensure that image has the correct src --- .../01-front-end-development-certification/html5-and-css.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/html5-and-css.json b/seed/challenges/01-front-end-development-certification/html5-and-css.json index fe481d3fa3..c8406bab73 100644 --- a/seed/challenges/01-front-end-development-certification/html5-and-css.json +++ b/seed/challenges/01-front-end-development-certification/html5-and-css.json @@ -1094,7 +1094,9 @@ "

Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.

" ], "tests": [ - "assert($(\"img\").hasClass(\"smaller-image\"), 'message: Your img element should have the class smaller-image.');", + "assert($(\"img\").length === 1, 'message: Your code should only have 1 img tag.');", + "assert($(\"img\").attr(\"src\") && $(\"img\").attr(\"src\") === \"https://bit.ly/fcc-relaxing-cat\", 'message: Your img should have a src attribute with a value of https://bit.ly/fcc-relaxing-cat.');", + "assert($('img').attr(\"class\") && $(\"img\").attr(\"class\").match(/(^|\\s)smaller-image($|\\s)/), 'message: Your img element should have the class smaller-image.');", "assert($(\"img\").width() === 100, 'message: Your image should be 100 pixels wide. Browser zoom should be at 100%.');" ], "type": "waypoint", From dec28488901d4ad63456b22d3eeae77da17a11e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Fortier?= Date: Wed, 29 Jun 2016 22:35:15 -0400 Subject: [PATCH 22/25] First 9 challenges translated Fixed several typos --- .../html5-and-css.json | 78 ++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/html5-and-css.json b/seed/challenges/01-front-end-development-certification/html5-and-css.json index 44c4e70664..7989319f49 100644 --- a/seed/challenges/01-front-end-development-certification/html5-and-css.json +++ b/seed/challenges/01-front-end-development-certification/html5-and-css.json @@ -44,6 +44,20 @@ "Каждое испытание имеет функцию проверки решения, которую вы можете запустить в любой момент нажатием на кнопку \"Run tests\". Как только ваше решение будет удовлетворять всем требованиям, вы сможете перейти к следующему испытанию.", "Для прохождения этого испытания измените текст элемента h1 с \"Hello\" на \"Hello World\". Затем нажмите кнопку \"Run tests\"." ], + "titleFR": "Dites bonjour aux éléments HTML", + "descriptionFR": [ + "Bienvenue au premier défi de code de Free Code Camp.", + "Vous pouvez modifier le code dans votre éditeur texte, lequel est disponible dans cette page.", + "Voyez-vous le code dans l'éditeur texte qui dit <h1>Hello</h1>? C'est un élément HTML.", + "La plupart des éléments HTML ont une balise ouvrante et une balise fermante", + "Les balises ouvrantes ont cette apparence :", + "<h1>", + "Les balises fermantes ont cette apparence :", + "</h1>", + "Notez que la seule différence entre une balise ouvrante et fermante est que la balise fermante a une barre oblique après son chevron ouvrant.", + "Chaque défi contient des tests que vous pouvez éxécuter en cliquant sur le bouton \"Run tests\". Lorsque tous les tests sont réussis, vous pouvez poursuivre avec le défi suivant.", + "Pour réussir le test de ce défi, changez le texte de l'élément h1 pour \"Hello World\" plutôt que \"Hello\". Cliquez ensuite sur le bouton \"Run tests\"." + ], "title": "Say Hello to HTML Elements", "description": [ "Welcome to Free Code Camp's first coding challenge.", @@ -108,6 +122,14 @@ "Этот элемент сообщает браузеру о структуре вашего web-сайта. Элементы h1 часто применяют в качестве главных заголовков, в то время как элементы h2 обычно используют для обозначения позаголовков. Также существуют элементы h3, h4, h5 и h6 для обозначения отдельных секций.", "Добавьте метку h2 с текстом \"CatPhotoApp\" для создания второго HTML элемента под вашим элементом h1 с текстом \"Hello World\"." ], + "titleFR": "Un titre avec l'élément h2", + "descriptionFR": [ + "Pour les quelques prochains défis, nous construirons une application HTML5 qui ressemblera à ceci :", + "\"Une", + "L'élément h2 que vous entrerez créera un élément h2 sur le site.", + "Cet élément renseigne votre navigateur sur la structure de votre site. Les éléments h1 sont souvent utilisés comme titre, tandis que les éléments h2 sont généralement utilisés comme sous-titres. Il existe également les éléments h3, h4, h5 et h6 qui indiquent une nouvelle et différente section.", + "Ajoutez une balise h2 contenant \"CatPhotoApp\" pour créer un second élément HTML sous l'élément h1 contenant \"Hello World\"." + ], "title": "Headline with the h2 Element", "description": [ "Over the next few challenges, we'll build an HTML5 app that will look something like this:", @@ -160,6 +182,13 @@ "<p>Я метка p!</p>", "Создайте элемент p под вашим элементом h2 и присвойте ему текст \"Hello Paragraph\"." ], + "titleFR": "Informez avec l'élément paragraphe", + "descriptionFR": [ + "L'élément p est le préféré pour les textes de paragraphes de taille normale. P est l'acronyme de \"paragraphe\",", + "Vous pouvez créer un élément p comme ceci :", + "<p>Je suis une balise p!</p>", + "Créez un élément p sous votre élément h2 et inscrivez-y le texte \"Hello Paragraph\"." + ], "title": "Inform with the Paragraph Element", "description": [ "p elements are the preferred element for normal-sized paragraph text on websites. P is short for \"paragraph\".", @@ -209,6 +238,13 @@ "Вы можете начать комментарий с <!-- и закончить его -->", "Раскомментируйте свои элементы h1, h2 и p." ], + "titleFR": "Décommenter du HTML", + "descriptionFR": [ + "Commenter est une façon de laisser des commentaires dans votre code sans affecter le fonctionnement du code.", + "Commenter est aussi un moyen pratique de rendre du code inactif sans devoir le supprimer entièrement.", + "Vous pouvez débuter un commentaire avec <!-- et le terminer avec -->.", + "Décommenter vos éléments h1, h2 et p." + ], "title": "Uncomment HTML", "description": [ "Commenting is a way that you can leave comments within your code without affecting the code itself.", @@ -261,6 +297,12 @@ "Тут вам необходимо завершить комментарий до начала вашего элемента h2.", "Закомментируйте ваши элементы h1 и p, но оставьте ваш элемент h2 раскомментированным." ], + "titleFR": "Commentez du HTML", + "descriptionFR": [ + "Souvenez-vous que pour débuter un commentaire, vous devez utiliser <!-- et que pour le terminer, vous devez utiliser -->.", + "Ici vous devrez terminer le commentaire juste avant que l'élément h2 commence.", + "Commentez les éléments h1 et p, mais laissez l'élément h2 tel quel." + ], "title": "Comment out HTML", "description": [ "Remember that in order to start a comment, you need to use <!-- and to end a comment, you need to use -->", @@ -314,7 +356,14 @@ "Текст lorem ipsum применяется в качестве замещающего текста наборщиками с 16-го века, и эта традиция продолжается в сети.", "5 веков довольно долгий период. Так как мы строим приложение CatPhotoApp, давайте используем нечто называемое текстом kitty ipsum.", "Замените текст внутри вашего элемента p первыми двумя словами текста kitty ipsum: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff." - ], + ], + "titleFR": "Remplissez les blancs avec du faux-texte", + "descriptionFR": [ + "Les développeurs Web utilisent traditionnellement du lorem ipsum comme texte de substitution. Le texte lorem ipsum provient d'un extrait de Cicero, de la Rome antique.", + "Le texte lorem ipsum a été utilisé comme faux-texte par des typographes depuis le 16ème siècle et cette tradition se poursuit sur le Web.", + "Enfin, 5 siècles est suffisament long. Étant donné que nous fabriquons une application de photos de chats, utilisons plutôt du texte Kitty ipsum.", + "Remplacez le texte à l'intérieur des éléments p avec ces quelques mots du texte Kitty ipsum : Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff." + ], "title": "Fill in the Blank with Placeholder Text", "description": [ "Web developers traditionally use lorem ipsum text as placeholder text. The 'lorem ipsum' text is randomly scraped from a famous passage by Cicero of Ancient Rome.", @@ -362,6 +411,12 @@ "Давайте удалим некоторые ненужные элементы, чтобы мы могли приступить к созданию приложения CatPhotoApp.", "Удалите ваш h1 элемент, чтобы упростить общий вид." ], + "titleFR": "Supprimer des éléments HTML", + "descriptionFR": [ + "Notre téléphone n'a pas beaucoup d'espace vertical.", + "Enlevons les éléments superflus pour débuter la construction de notre application de photos de chats.", + "Supprimez l'élément h1 afin de simplifier l'affichage." + ], "title": "Delete HTML Elements", "description": [ "Our phone doesn't have much vertical space.", @@ -418,6 +473,15 @@ "<h2 style=\"color: blue\">CatPhotoApp</h2>", "Измените стиль вашего элемента h2 таким образом, чтобы текст элемента стал красным." ], + "titleFR": "Changer la couleur du texte", + "descriptionFR": [ + "Changeons maintenant la couleur de quelques-uns de nos textes.", + "Nous pouvons le faire en changeant le style de votre élément h2.", + "Le style responsable de la couleur de texte d'un élément est \"color\".", + "Voici comment changer en bleu la couleur du texte de votre élément h2 :", + "<h2 style=\"color: blue\">CatPhotoApp</h2>", + "Changez le style de votre élément h2 pour que son texte soit de couleur rouge." + ], "title": "Change the Color of Text", "description": [ "Now let's change the color of some of our text.", @@ -486,6 +550,18 @@ "Обратите внимание, что важно наличие открывающих и закрывающих фигурных скобок ({ и }) вокруг стиля каждого элемента. Также вам необходимо убедиться в том, что стиль элемента присвоен внутри элемента style. В завершении, убедитесь, что строка объявления каждого элемента стиля должна заканчиваться точкой с запятой.", "Удалите атрибут стиль вашего элемента h2 и взамен создайте CSS-элемент style. Добавьте необходимый CSS, чтобы все элементы h2 стали синими." ], + "titleFR": "Utiliser les sélecteurs CSS pour styliser des éléments", + "descriptionFR": [ + "Avec CSS, il y a des centaines de propriétés que vous pouvez utliser pour changer l'apparence d'un élément dans votre page.", + "Quand vous avez entré <h2 style=\"color: red\">CatPhotoApp</h2>, vous donniez à cet élément h2 uniquement, un style inline.", + "C'est une des façons d'ajouter un style à un élément, mais une meilleure approche est d'utiliser CSS, acronyme de Cascading Style Sheets.", + "Au sommet de votre code, créez un élément style comme ceci :", + "
<style>
</style>
", + "À l'intérieur de cet élément style, vous pouvez créer des sélecteurs CSS pour tous les éléments h2. Par exemple, si vous voulez que tous les éléments h2 soient en rouge, votre élément style ressemblerait à ceci :", + "
<style>
  h2 {color: red;}
</style>
", + "Prenez note qu'il est important d'avoir les accolades ouvrantes et fermantes ({ and }) autour de chaque élément de style. Vous devez aussi vous assurer que vos styles se retrouvent entre une balise style ouvrante et fermante. Finalement, assurez-vous d'ajouter un point-virgule â la fin de chacun des styles d'éléments.", + "Supprimez les attributs de styles de votre élément h2 et créez plutôt un élément de style CSS. Ajoutez le CSS nécessaire pour rendre tous vos éléments h2 de couleur bleu." + ], "title": "Use CSS Selectors to Style Elements", "description": [ "With CSS, there are hundreds of CSS properties that you can use to change the way an element looks on your page.", From 8876eb595afa36403e16e0f83b7b44cc7d9ab845 Mon Sep 17 00:00:00 2001 From: ariessa Date: Fri, 1 Jul 2016 22:27:46 +0800 Subject: [PATCH 23/25] Update link in PR Template --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 764a1bc73c..65a6a27838 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,7 +10,7 @@ - [ ] Your pull request targets the `staging` branch of FreeCodeCamp. - [ ] Branch starts with either `fix/`, `feature/`, or `translate/` (e.g. `fix/signin-issue`) -- [ ] You have only one commit (if not, [squash](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/git-rebase#squashing-multiple-commits-into-one) them into one commit). +- [ ] You have only one commit (if not, [squash](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Git-Squash) them into one commit). - [ ] All new and existing tests pass the command `npm run test-challenges`. Use `git commit --amend` to amend any fixes. #### Type of Change From f747f1eb8e8fc3a338ab03151fb70bb71f47c64d Mon Sep 17 00:00:00 2001 From: Damien Cosset Date: Fri, 1 Jul 2016 17:37:21 +0200 Subject: [PATCH 24/25] jQuery Challenge 5 to 10 French Translation (#9486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * French Translation jQuery Challenges n°5 to n°10 * French Translation jQuery Challenges n°5 to n°10 * French translation jQuery Challenges 5 to 10 * Update jquery.json * Update jquery.json --- .../jquery.json | 58 +++++++++++++++++-- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/seed/challenges/01-front-end-development-certification/jquery.json b/seed/challenges/01-front-end-development-certification/jquery.json index 0bcebbe37a..1ba836e28a 100644 --- a/seed/challenges/01-front-end-development-certification/jquery.json +++ b/seed/challenges/01-front-end-development-certification/jquery.json @@ -377,7 +377,12 @@ "descriptionDe": [ "Anfangs waren diese Animationen noch cool, jetzt sind sie aber ein wenig störend.", "Lösche alle drei jQuery Funktionen deiner Document Ready Funktion, aber lasse die Document Ready Funktion selbst intakt." - ] + ], + "titleFr" : "Effacer vos fonctions jQuery", + "descriptionFr" : [ + "Ces animations sont sympathiques à première vue, mais maintenant elles deviennent plutôt distrayantes.", + "Effacez les trois fonctions jQuery de votre document ready function, mais laissez votre document ready function lui-même intact." + ] }, { "id": "bad87fee1348bd9aed908626", @@ -447,7 +452,15 @@ "Füge die Klasse animated zu allen Elementen des Typs button hinzu.", "Füge die Klasse shake zu allen Buttons mit der Klasse .btn hinzu.", "Füge die Klasse btn-primary zu dem Button mit der ID #target1 hinzu." - ] + ], + "titleFr" : "Cibler le même élément avec plusieurs sélecteurs jQuery", + "descriptionFr" : [ + "À présent, vous connaissez trois façons de cibler les éléments: par type: $(\"button\"), par classe: $(\".btn\"), et par id $(\"#target1\").", + "En utilisant .addClass(), ajoutez uniquement une classe à la fois au même élément, de trois façons différentes:", + "Ajoutez la classe animated à tous les éléments de type button.", + "Ajoutez la classe shake à tous les boutons qui ont la classe .btn.", + "Ajoutez la classe btn-primary au bouton qui a l'id #target1." + ] }, { "id": "bad87fee1348bd9aed918626", @@ -512,7 +525,14 @@ "So könntest du das bei einem spezifischen Button machen:", "$(\"#target2\").removeClass(\"btn-default\");", "Lass uns alle btn-default Klassen von unseren Button Elementen entfernen." - ] + ], + "titleFr" : "Supprimer des classes d'un élément avec jQuery", + "descriptionFr" : [ + "De la même façon que vous pouvez ajouter des classes à un élément avec la fonction jQuery addClass(), vous pouvez les supprimer avec la fonction jQuery removeClass().", + "Voici comment procéder pour un bouton spécifique:", + "$(\"#target2\").removeClass(\"btn-default\");", + "Supprimons la classe btn-default de tous nos éléments button." + ] }, { "id": "bad87fee1348bd9aed908826", @@ -586,7 +606,17 @@ "Das ist ein wenig anders als eine normale CSS-Deklaration, weil die CSS-Eigenschaft und deren Wert in Anführungszeichen sind und durch ein Komma anstatt eines Doppelpunkts getrennt werden.", "Lösche deine jQuery Selektoren, damit eine leere Document Ready Funktion übrig bleibt.", "Wähle target1 und ändere dessen Farbe zu Rot." - ] + ], + "titleFr" : "Changer le CSS d'un élément en utilisant jQuery", + "descriptionFr" : [ + "Nous pouvons aussi changer le CSS d'un élément HTML directement avec jQuery.", + "jQuery dispose d'une fonction appelée .css() qui vous permet de changer le CSS d'un élément.", + "Voici comment changer sa couleur en bleu:", + "$(\"#target1\").css(\"color\", \"blue\");", + "Ceci est légèrement différent d'une expression CSS normale, car la propriété CSS et sa valeur sont entre guillemets, et separées par une virgule au lieu de deux points.", + "Effacez vos sélecteurs jQuery, laissant votre document ready function vide.", + "Sélectionnez target1 et changez sa couleur en rouge." + ] }, { "id": "bad87fee1348bd9aed808826", @@ -655,7 +685,25 @@ "So kannst du alle Buttons deaktivieren:", "$(\"button\").prop(\"disabled\", true);", "Deaktiviere nur den target1 Button." - ] + ], + "titleFr" : "Désactivez un élément en utilisant jQuery", + "descriptionFr" : [ + "Vous pouvez également changer les propriétés non-CSS des éléments HTML avec jQuery. Par exemple, vous pouvez désactiver les boutons.", + "Lorsque vous désactivez un bouton, il devient gris et on ne peut plus cliquer dessus.", + "jQuery dispose d'une fonction appelée .prop() qui vous permet de modifier les propriétés des éléments.", + "Voici comment vous pouvez désactiver tous les boutons:", + "$(\"button\").prop(\"disabled\", true);", + "Désactivez uniquement le bouton target1" + ], + "titleFr" : "Changer le texte à l'intérieur d'un élément en utilisant jQuery", + "descriptionFr" : [ + "En utilisant jQuery, vous pouvez changer le texte entre les balises ouvrante et fermante d'un élément. Vous pouvez même changer les balises HTML.", + "jQuery dispose d'une fonction appelée .html() qui vous permet d'ajouter des balises HTML et du texte à l'intérieur d'un élément. Tout le contenu de l'élément sera alors remplacé par le contenu que vous indiquerez en utilisant la fonction.", + "Voici comment vous pourriez ré-écrire et mettre en italique le texte de notre titre:", + "$(\"h3\").html(\"<em>jQuery Playground</em>\");", + "jQuery dispose également d'une fonction similaire appelée .text() qui change uniquement le texte sans ajouter de balises. Autrement dit, cette fonction n'évaluera aucune balise HTML que vous lui donnez, mais les traitera comme du texte que vous désirez ajouter à votre élément.", + "Changez le bouton avec l'id target4 en mettant en italique son texte." + ] }, { "id": "564944c91be2204b269d51e3", From 93b9b787c1011d93742a99bb0940c7f6fdaa59f7 Mon Sep 17 00:00:00 2001 From: Andrew McKeever Date: Wed, 22 Jun 2016 21:50:59 +0200 Subject: [PATCH 25/25] added more descriptive instructions for users. Clearer that they must use three different methods to add a class Improved instructions for users to see that they must use three different ways to add a class Added clearer instructions to JQuery/Json challenge added closing tags to button and em spelling fix possbile => possible --- .../01-front-end-development-certification/jquery.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seed/challenges/01-front-end-development-certification/jquery.json b/seed/challenges/01-front-end-development-certification/jquery.json index a3a15489c5..b13cbec31f 100644 --- a/seed/challenges/01-front-end-development-certification/jquery.json +++ b/seed/challenges/01-front-end-development-certification/jquery.json @@ -344,10 +344,12 @@ "title": "Target the same element with multiple jQuery Selectors", "description": [ "Now you know three ways of targeting elements: by type: $(\"button\"), by class: $(\".btn\"), and by id $(\"#target1\").", + "Although it is possible to add multiple classes in a single .addClass() call, let's add them to the same element in three separate ways.", "Using .addClass(), add only one class at a time to the same element, three different ways:", "Add the animated class to all elements with type button.", "Add the shake class to all the buttons with class .btn.", - "Add the btn-primary class to the button with id #target1." + "Add the btn-primary class to the button with id #target1.", + "Note
You should only be targeting one element and adding only one class at a time. Altogether, your three individual selectors will end up adding the three classes shake, animated, and btn-primary to #target1." ], "challengeSeed": [ "fccss",