From 3ce51feceac7c5bf7267a0d2e11362e6bcef0501 Mon Sep 17 00:00:00 2001 From: Matias Cao Date: Tue, 16 Jun 2015 18:27:58 -0300 Subject: [PATCH 01/20] WP11 ES Translation --- challenges/basic-html5-and-css.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/challenges/basic-html5-and-css.json b/challenges/basic-html5-and-css.json index 4640facb09..f1b8f5608c 100644 --- a/challenges/basic-html5-and-css.json +++ b/challenges/basic-html5-and-css.json @@ -439,8 +439,17 @@ "descriptionFr": [], "nameRu": "", "descriptionRu": [], - "nameEs": "", - "descriptionEs": [], + "nameEs": "Waypoint: Utiliza una clase CSS para darle estilo a un elemento", + "descriptionEs": [ + "Crea una clase CSS llamada \"red-text\" y aplicala a tu elemento h2.", + "Las clases son estilos reutilizables que pueden ser añadidos a elementos HTML", + "Esta es la anatomía de una clase CSS:", + "a diagram of how style tags are composed, which is also described in detail on the following lines.", + "Puedes ver que hemos creado una clase CSS llamada \"blue-text\" dentro de la etiqueta <style>.", + "Puedes aplicar una clase a un elemento HTML de esta manera: <h2 class=\"blue-text\">CatPhotoApp</h2>.", + "Nota que en el elemento CSS style, las clases deberían comenzar con un punto. En los elementos HTML, las declaraciones de clase, NO deberían comenzar con punto. ", + "En vez de de crear un nuevo elemento style, prueba remover la declaración de estilo de h2 y reemplazarla por la declaración \"red-text\"." + ], "namePt": "", "descriptionPt": [] }, From 120879e10b9c0f41f591132956d4940048d8e3d3 Mon Sep 17 00:00:00 2001 From: Matias Cao Date: Mon, 22 Jun 2015 20:22:09 -0300 Subject: [PATCH 02/20] WP 12-13 ES Translation --- challenges/basic-html5-and-css.json | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/challenges/basic-html5-and-css.json b/challenges/basic-html5-and-css.json index f1b8f5608c..fcb1eb9f77 100644 --- a/challenges/basic-html5-and-css.json +++ b/challenges/basic-html5-and-css.json @@ -487,8 +487,12 @@ "descriptionFr": [], "nameRu": "", "descriptionRu": [], - "nameEs": "", - "descriptionEs": [], + "nameEs": "Waypoint: Estila multiples elementos con una clase CSS", + "descriptionEs": [ + "Aplica la clase \"red-text\" a tus elementos h2 y p.", + "Recuerda que puedes agregar clases a elementos HTML utilizando class=\"your-class-here\" dentro de la tag de entrada del mismo.", + "Recuerda que los selectores CSS requieren un punto al principio: .blue-text { color: blue; }, pero que las declaraciones de clase NO llevan punto: <h2 class=\"blue-text\">CatPhotoApp<h2>." + ], "namePt": "", "descriptionPt": [] }, @@ -527,8 +531,13 @@ "descriptionFr": [], "nameRu": "", "descriptionRu": [], - "nameEs": "", - "descriptionEs": [], + "nameEs": "Waypoint: Cambia el tamaño de fuente de un elemento.", + "descriptionEs": [ + "Crea un segundo elemento p. Luego, dentro de tu elemento <style>, pon el \"font-size\" de todos los elementos p a 16 pixeles.", + "El tamaño de fuente es controlado por el atributo CSS \"font-size\", como aquí: h1 { font-size: 30px; }.", + "Primero, crea un segundo elemento p con el siguiente texto Kitty Ipsum: Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.", + "Ve si puedes encontrar una manera de darle a ambos elementos p un font-size de 16 pixeles (16px). Puedes hacer esto dentro de la misma etiqueta <style> que creamos para la clase \"red-text\"." + ], "namePt": "", "descriptionPt": [] }, From 333c195b328af247215f8439440e230eaffadcd8 Mon Sep 17 00:00:00 2001 From: Ben Date: Tue, 4 Aug 2015 11:04:40 -0500 Subject: [PATCH 03/20] Update bootstrap.json fixed line 1886, changed col-xs-12 to col-xs-6 "assert($('.col-xs-6').children('h4') && $('.col-xs-6').children('h4').length > 1, 'Add an h4 element to each of your <div class=\\'col-xs-6\\'> elements.');", --- challenges/bootstrap.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/bootstrap.json b/challenges/bootstrap.json index c0b4014f93..68d6c70fc9 100644 --- a/challenges/bootstrap.json +++ b/challenges/bootstrap.json @@ -1883,7 +1883,7 @@ "Above your right-well, inside its \"col-xs-6\" div element, add a h4 element with the text \"#right-well\"." ], "tests": [ - "assert($('.col-xs-12').children('h4') && $('.col-xs-12').children('h4').length > 1, 'Add an h4 element to each of your <div class=\\'col-xs-6\\'> elements.');", + "assert($('.col-xs-6').children('h4') && $('.col-xs-6').children('h4').length > 1, 'Add an h4 element to each of your <div class=\\'col-xs-6\\'> elements.');", "assert(new RegExp('#left-well','gi').test($('h4').text()), 'One h4 element should have the text \"#left-well\".');", "assert(new RegExp('#right-well','gi').test($('h4').text()), 'One h4 element should have the text \"#right-well\".');" ], From 08c2138cee9a906af3f205a2803080705f793cd5 Mon Sep 17 00:00:00 2001 From: ahstro Date: Thu, 6 Aug 2015 23:28:27 +0200 Subject: [PATCH 04/20] Improves 'Target Elements by ID Using jQuery' --- challenges/jquery-ajax-and-json.json | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/challenges/jquery-ajax-and-json.json b/challenges/jquery-ajax-and-json.json index dad707f590..ce8cf694d9 100644 --- a/challenges/jquery-ajax-and-json.json +++ b/challenges/jquery-ajax-and-json.json @@ -153,15 +153,17 @@ "dashedName": "waypoint-target-elements-by-id-using-jquery", "difficulty": 3.04, "description": [ - "You can also target elements by their id attributes.", - "First target your div element with the class \"target3\" by using the $('#target3') selector.", - "Note that, just like with CSS declarations, you type a # before the class's name.", - "Then use jQuery's .addClass() function to add the classes \"animated\" and \"fadeOut\".", - "Make all the button element with the id \"target3\" fadeOut. $('#target3').addClass('animated fadeOut')." + "Just like you can target elements by their classes, you can also target them by their id attributes.", + "First target the element with the id target3 by using the $('#target3') selector.", + "Note that, just like with CSS selectors, you type a # before the id's name.", + "Then use jQuery's .addClass() function to add the class fadeOut.", + "Since #target3 is a button, and we already added the animated-class to all button-elements, we do not need to add it again.", + "Make all the elements with the id target3 fade out. $('#target3').addClass('fadeOut')." ], "tests": [ - "assert($('#target3').hasClass('animated') && $('#target3').hasClass('fadeOut'), 'Select the buttonelement with the id of \"target3\" and use the jQuery addClass() function to give it the classes of \"animated\" and \"fadeOut\".');", - "assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.');" + "assert($('#target3').hasClass('animated'), 'Make sure the old animated-class is still added to all buttons.')", + "assert($('#target3').hasClass('fadeOut'), 'Target the element with the id target3 and use the jQuery addClass() function to give it the class fadeOut.')", + "assert(!editor.match(/class.*animated/g), 'Only use jQuery to add these classes to the element.')" ], "challengeSeed": [ "fccss", From 83005129cb3350ac2efc54ca25288bdc1e24a01b Mon Sep 17 00:00:00 2001 From: Samuel Plumppu Date: Fri, 7 Aug 2015 16:32:20 +0200 Subject: [PATCH 05/20] clarified description for waypoint: make images mobile responsive --- challenges/bootstrap.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/bootstrap.json b/challenges/bootstrap.json index def874e207..c929ee9591 100644 --- a/challenges/bootstrap.json +++ b/challenges/bootstrap.json @@ -92,7 +92,7 @@ "dashedName": "waypoint-make-images-mobile-responsive", "difficulty": 2.02, "description": [ - "First, Add a new image with the src attribute of \"http://bit.ly/fcc-kittens2\".", + "First, Add a new image below the existing one. Set it's src attribute to \"http://bit.ly/fcc-kittens2\".", "It would be great if this image could be exactly the width of our phone's screen.", "Fortunately, with Bootstrap, all we need to do is add the \"img-responsive\" class to your image. Do this, and the image should perfectly fit the width of your page." ], From 9966f496782686c27e35266444ebeaa2530f9959 Mon Sep 17 00:00:00 2001 From: ahstro Date: Sat, 8 Aug 2015 03:29:22 +0200 Subject: [PATCH 06/20] 'Convert HTML Entities' now allows upper and lower case entities #1647 --- challenges/intermediate-bonfires.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/challenges/intermediate-bonfires.json b/challenges/intermediate-bonfires.json index 184a648748..7f6c88ae26 100644 --- a/challenges/intermediate-bonfires.json +++ b/challenges/intermediate-bonfires.json @@ -398,12 +398,12 @@ "convert('Dolce & Gabbana');" ], "tests": [ - "assert.strictEqual(convert('Dolce & Gabbana'), 'Dolce & Gabbana', 'should escape characters');", - "assert.strictEqual(convert('Hamburgers < Pizza < Tacos'), 'Hamburgers < Pizza < Tacos', 'should escape characters');", - "assert.strictEqual(convert('Sixty > twelve'), 'Sixty > twelve', 'should escape characters');", - "assert.strictEqual(convert('Stuff in \"quotation marks\"'), 'Stuff in "quotation marks"', 'should escape characters');", - "assert.strictEqual(convert(\"Shindler's List\"), 'Shindler's List', 'should escape characters');", - "assert.strictEqual(convert('<>'), '<>', 'should escape characters');", + "assert.match(convert('Dolce & Gabbana'), /Dolce &(amp|AMP); Gabbana/, 'should escape characters');", + "assert.match(convert('Hamburgers < Pizza < Tacos'), /Hamburgers &(lt|LT); Pizza &(lt|LT); Tacos/, 'should escape characters');", + "assert.match(convert('Sixty > twelve'), /Sixty &(gt|GT); twelve/, 'should escape characters');", + "assert.match(convert('Stuff in \"quotation marks\"'), /Stuff in &(quot|QUOT);quotation marks&(quot|QUOT);/, 'should escape characters');", + "assert.match(convert(\"Shindler's List\"), /Shindler&(apos|APOS);s List/, 'should escape characters');", + "assert.match(convert('<>'), /&(lt|LT);&(gt|GT);/, 'should escape characters');", "assert.strictEqual(convert('abc'), 'abc', 'should handle strings with nothing to escape');" ], "MDNlinks": [ From 7c3740ddc88d813d4f680f9b78979c145a4f5ad9 Mon Sep 17 00:00:00 2001 From: ahstro Date: Sat, 8 Aug 2015 03:43:14 +0200 Subject: [PATCH 07/20] Added even more HTML entities and removed &APOS; --- challenges/intermediate-bonfires.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/challenges/intermediate-bonfires.json b/challenges/intermediate-bonfires.json index 7f6c88ae26..42b5178011 100644 --- a/challenges/intermediate-bonfires.json +++ b/challenges/intermediate-bonfires.json @@ -398,12 +398,12 @@ "convert('Dolce & Gabbana');" ], "tests": [ - "assert.match(convert('Dolce & Gabbana'), /Dolce &(amp|AMP); Gabbana/, 'should escape characters');", - "assert.match(convert('Hamburgers < Pizza < Tacos'), /Hamburgers &(lt|LT); Pizza &(lt|LT); Tacos/, 'should escape characters');", - "assert.match(convert('Sixty > twelve'), /Sixty &(gt|GT); twelve/, 'should escape characters');", - "assert.match(convert('Stuff in \"quotation marks\"'), /Stuff in &(quot|QUOT);quotation marks&(quot|QUOT);/, 'should escape characters');", - "assert.match(convert(\"Shindler's List\"), /Shindler&(apos|APOS);s List/, 'should escape characters');", - "assert.match(convert('<>'), /&(lt|LT);&(gt|GT);/, 'should escape characters');", + "assert.match(convert('Dolce & Gabbana'), /Dolce &(amp|AMP|#x00026|#38); Gabbana/, 'should escape characters');", + "assert.match(convert('Hamburgers < Pizza < Tacos'), /Hamburgers &(lt|LT|#x0003C|#60); Pizza &(lt|LT|#x0003C|#60); Tacos/, 'should escape characters');", + "assert.match(convert('Sixty > twelve'), /Sixty &(gt|GT|#x0003E|#62); twelve/, 'should escape characters');", + "assert.match(convert('Stuff in \"quotation marks\"'), /Stuff in &(quot|QUOT|#x00022|#34);quotation marks&(quot|QUOT|#x00022|#34);/, 'should escape characters');", + "assert.match(convert(\"Shindler's List\"), /Shindler&(apos|#x00027|#39);s List/, 'should escape characters');", + "assert.match(convert('<>'), /&(lt|LT|#x0003C|#60);&(gt|GT|#x0003E|#62);/, 'should escape characters');", "assert.strictEqual(convert('abc'), 'abc', 'should handle strings with nothing to escape');" ], "MDNlinks": [ From e7f1f12a6ff8d8efd06fc2b55343d13c8656a34f Mon Sep 17 00:00:00 2001 From: sonorangirl Date: Mon, 10 Aug 2015 18:05:07 -0700 Subject: [PATCH 08/20] Fixed typos in 1st slot machine challenge --- challenges/basic-javascript.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index c8cd7046a9..04fd44d166 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -1071,16 +1071,16 @@ "title": "Create a JavaScript Slot Machine", "difficulty":"9.988", "description":[ - "We are now going to try and combine some of the stuff we've just learnt abd create the logic for a slot machine game", + "We are now going to try and combine some of the stuff we've just learned and create the logic for a slot machine game", "For this we will need to generate three random numbers between 1 and 5 to represent the possible values of each individual slot", "Store the three random numbers in slotOne, slotTwo and slotThree", "Generate the random numbers by using the system we used earlier in /challenges/random-whole-numbers-in-a-range", "Math.floor(Math.random() * (5 - 1 + 1)) + 1; " ], "tests":[ - "assert(typeof(runSlots($('.slot'))[0]) == 'number', 'SlotOne should be a random number');", - "assert(typeof(runSlots($('.slot'))[1]) == 'number', 'SlotTwo should be a random number');", - "assert(typeof(runSlots($('.slot'))[2]) == 'number', 'SlotThree should be a random number');", + "assert(typeof(runSlots($('.slot'))[0]) == 'number', 'slotOne should be a random number');", + "assert(typeof(runSlots($('.slot'))[1]) == 'number', 'slotTwo should be a random number');", + "assert(typeof(runSlots($('.slot'))[2]) == 'number', 'slotThree should be a random number');", "assert((function(){if(editor.match(/Math.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi) !== null){return(editor.match(/Math.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (5 - 1 + 1)) + 1; three times to generate your random numbers');" ], "challengeSeed":[ From f8c63c9dbad14cd4f4438fad1e2574e2f6b1af05 Mon Sep 17 00:00:00 2001 From: sonorangirl Date: Mon, 10 Aug 2015 19:22:18 -0700 Subject: [PATCH 09/20] Fixed RegEx so that 4th test would pass --- challenges/basic-javascript.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index 04fd44d166..7834110ea0 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -1081,7 +1081,7 @@ "assert(typeof(runSlots($('.slot'))[0]) == 'number', 'slotOne should be a random number');", "assert(typeof(runSlots($('.slot'))[1]) == 'number', 'slotTwo should be a random number');", "assert(typeof(runSlots($('.slot'))[2]) == 'number', 'slotThree should be a random number');", - "assert((function(){if(editor.match(/Math.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi) !== null){return(editor.match(/Math.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (5 - 1 + 1)) + 1; three times to generate your random numbers');" + "assert((function(){if(editor.match(/Math\\.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi) !== null){return(editor.match(/Math\\.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (5 - 1 + 1)) + 1; three times to generate your random numbers');" ], "challengeSeed":[ "fccss", From 0670f73b6d67c81d5d7c564a40bb5de4ec3ac663 Mon Sep 17 00:00:00 2001 From: sonorangirl Date: Mon, 10 Aug 2015 19:32:52 -0700 Subject: [PATCH 10/20] Made some spaces optional for 4th test --- challenges/basic-javascript.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/basic-javascript.json b/challenges/basic-javascript.json index 7834110ea0..0aa6f4f02f 100644 --- a/challenges/basic-javascript.json +++ b/challenges/basic-javascript.json @@ -1081,7 +1081,7 @@ "assert(typeof(runSlots($('.slot'))[0]) == 'number', 'slotOne should be a random number');", "assert(typeof(runSlots($('.slot'))[1]) == 'number', 'slotTwo should be a random number');", "assert(typeof(runSlots($('.slot'))[2]) == 'number', 'slotThree should be a random number');", - "assert((function(){if(editor.match(/Math\\.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi) !== null){return(editor.match(/Math\\.floor\\(Math\\.random\\(\\)\\s\\*\\s\\(5\\s\\-\\s1\\s\\+\\s1\\)\\)\\s\\+\\s1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (5 - 1 + 1)) + 1; three times to generate your random numbers');" + "assert((function(){if(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?5\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi) !== null){return(editor.match(/Math\\.floor\\(\\s?Math\\.random\\(\\)\\s?\\*\\s?\\(\\s?5\\s?\\-\\s?1\\s?\\+\\s?1\\s?\\)\\s?\\)\\s?\\+\\s?1;/gi).length >= 3);}else{return(false);}})(), 'You should have used Math.floor(Math.random() * (5 - 1 + 1)) + 1; three times to generate your random numbers');" ], "challengeSeed":[ "fccss", From 382393e1f2adbd8db9390930a66d3a422505bc2a Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Mon, 10 Aug 2015 23:29:32 -0700 Subject: [PATCH 11/20] fix challenge ordering Now challenges are ordered on map first by top order value of json file second by index of array --- index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 38305428a2..334a11d3dc 100644 --- a/index.js +++ b/index.js @@ -63,7 +63,8 @@ Challenge.destroyAll(function(err, info) { .toLowerCase() .replace(/\:/g, '') .replace(/\s/g, '-'); - challenge.order = +('' + order + (index + 1)); + challenge.order = order; + challenge.suborder = index + 1; challenge.block = block; return challenge; From d18c819ebdc489dda179c1cf0a4c2196b05fdfda Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Tue, 11 Aug 2015 23:53:30 -0700 Subject: [PATCH 12/20] fix omission in simon zipline --- challenges/intermediate-ziplines.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/challenges/intermediate-ziplines.json b/challenges/intermediate-ziplines.json index 2a2d5af952..4839ec8760 100644 --- a/challenges/intermediate-ziplines.json +++ b/challenges/intermediate-ziplines.json @@ -140,7 +140,7 @@ "difficulty": 1.07, "challengeSeed": ["126415123"], "description": [ - "Objective: Build a CodePen.io app that successfully reverse-engineers this: http://codepen.io/dting/full/KpJXZV/.", + "Objective: Build a CodePen.io app that successfully reverse-engineers this: http://codepen.io/dting/full/KpJXZV/.", "Rule #1: Don't look at the example project's code on CodePen. Figure it out for yourself.", "Rule #2: You may use whichever libraries or APIs you need.", "Rule #3: Reverse engineer the example project's functionality, and also feel free to personalize it.", From 78441a49d41b95be13c0a5ed67fa84371074886a Mon Sep 17 00:00:00 2001 From: Quincy Larson Date: Wed, 12 Aug 2015 00:52:40 -0700 Subject: [PATCH 13/20] make all single quotes in jquery challenges double quotes --- challenges/jquery-ajax-and-json.json | 895 -------------------------- challenges/jquery.json | 899 +++++++++++++++++++++++++++ 2 files changed, 899 insertions(+), 895 deletions(-) delete mode 100644 challenges/jquery-ajax-and-json.json create mode 100644 challenges/jquery.json diff --git a/challenges/jquery-ajax-and-json.json b/challenges/jquery-ajax-and-json.json deleted file mode 100644 index 26cdb46b8a..0000000000 --- a/challenges/jquery-ajax-and-json.json +++ /dev/null @@ -1,895 +0,0 @@ -{ - "name": "jQuery", - "order": 0.004, - "challenges": [ - { - "id": "bad87fee1348bd9acdd08826", - "title": "Learn how Script Tags and Document Ready Work", - "difficulty": 3.01, - "description": [ - "Now we're ready to learn jQuery, the most popular JavaScript tool of all time. Don't worry about JavaScript itself - we will cover it soon.", - "Before we can start using jQuery, we need to add some things to our HTML.", - "First, add a script element at the top of your page. Be sure to close it on the following line.", - "Your browser will run any JavaScript inside a script element, including jQuery.", - "Inside your script element, add this code: $(document).ready(function() { to your script. Then close it on the following line (still inside your script element) with: });" - ], - "tests": [ - "assert(editor.match(/