From 94b20bd1559aaff022e715400ff41c252cf2ba22 Mon Sep 17 00:00:00 2001 From: camperbot Date: Mon, 6 Jan 2025 13:47:28 +0000 Subject: [PATCH] chore(i18n,learn): processed translations --- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../657f456223b8c1187b461987.md | 3 +- .../613e275749ebd008e74bb62e.md | 2 +- .../6145f02240ff8f09f7ec913c.md | 8 +- .../6148e335c1edd512d00e4691.md | 2 +- .../614ccc21ea91ef1736b9b578.md | 4 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5f3ef6e01f288a026d709587.md | 2 +- .../5f459225127805351a6ad057.md | 6 +- .../617b65579ce424bf5f02ca73.md | 2 +- .../617b8b38f32bf2080a140675.md | 6 +- .../617b954d9f4f6217a749380e.md | 6 +- .../619b7424f43ec9215e538afe.md | 8 +- .../619b761916dac02643940022.md | 8 +- .../61a489b8579e87364b2d2cdb.md | 10 +- .../61add929e41980b1edbdba7e.md | 2 +- .../61b092eb9e7fc020b43b1bb2.md | 2 +- .../61b09f739aa6572d2064f9b8.md | 4 +- .../61b0a1b2af494934b7ec1a72.md | 6 +- .../615380dff67172357fcf0425.md | 2 +- .../6143b9e1f5035c6e5f2a8231.md | 42 +- .../6148c5036ddad94692a66230.md | 6 +- .../6148d2444d01ab541e64a1e4.md | 2 +- .../6196928658b6010f28c39484.md | 2 +- .../6199429802b7c10dc79ff871.md | 2 +- .../619be73b3c806006ccc00bb0.md | 2 +- .../619d05c54dabca0b10058235.md | 10 +- .../619d237a107c10221ed743fa.md | 2 +- .../619d2b7a84e78b246f2d17a2.md | 12 +- .../5d822fd413a79914d39e98e9.md | 2 +- .../5d822fd413a79914d39e9902.md | 2 +- .../5d822fd413a79914d39e9903.md | 4 +- .../5d822fd413a79914d39e990c.md | 2 +- .../5d822fd413a79914d39e992b.md | 2 +- .../5d822fd413a79914d39e9938.md | 2 +- .../5d822fd413a79914d39e9939.md | 2 +- .../60f027c87bc98f050395c139.md | 8 +- .../60f81616cff80508badf9ad5.md | 2 +- .../60fab9f17fa294054b74228c.md | 2 +- .../60fc22d1e64d1b04cdd4e602.md | 10 +- .../60ffe1bc30415f042faea936.md | 2 +- .../60ffe3936796ac04959285a9.md | 2 +- .../646c586be7180e40ddf74ff6.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 2 +- .../61fd6343fb42013d99bcd7f3.md | 6 +- .../61fd9b7285bde783ad5b8aac.md | 2 +- .../612eaf56b7ba3257fdbfb0db.md | 2 +- .../612ebedec97e096c8bf64999.md | 4 +- .../60a3e3396c7b40068ad69973.md | 4 +- .../615f2abbe7d18d49a1e0e1c8.md | 2 +- .../615f378014c2da526a109c81.md | 2 +- .../615f4ce9d877b668417c0c42.md | 2 +- .../615f51257a8a516d80b6c743.md | 6 +- .../615f5fd85d0062761f288364.md | 2 +- .../615f7c71eab8218f846e4503.md | 16 +- .../615f887466db4ba14b5342cc.md | 2 +- .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../top-basic-functions-exercise-b.md | 10 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 2 +- .../66ec4c8e9878d8441956516f.md | 2 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 25 +- .../66ed41f912d0bb1dc62da5dd.md | 14 +- .../66f55eac933ff64ce654ca74.md | 140 +- .../657bdc55a322aae1eac3838f.md | 2 +- .../67051431a73f1ca25d9a6f25.md | 2 +- .../669e2f60e83c011754f711f9.md | 4 +- .../669e81368e52b3a5c35a2dc5.md | 5 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../66ed8fa2f45ce3ece4053eab.md | 8 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed901ff45ce3ece4053eba.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723d3cfdd0717d3f1bf27e3.md | 2 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../66cc0a9e06e00b75d6782be9.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../657f456223b8c1187b461987.md | 3 +- .../613e275749ebd008e74bb62e.md | 2 +- .../6145f02240ff8f09f7ec913c.md | 8 +- .../6148e335c1edd512d00e4691.md | 2 +- .../614ccc21ea91ef1736b9b578.md | 4 +- .../5f3477cb303c5cb61b43aa9b.md | 8 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5f3ef6e01f288a026d709587.md | 2 +- .../5f459225127805351a6ad057.md | 6 +- .../617b65579ce424bf5f02ca73.md | 2 +- .../617b8b38f32bf2080a140675.md | 6 +- .../617b954d9f4f6217a749380e.md | 6 +- .../619b7424f43ec9215e538afe.md | 8 +- .../619b761916dac02643940022.md | 8 +- .../61a489b8579e87364b2d2cdb.md | 10 +- .../61add929e41980b1edbdba7e.md | 2 +- .../61b092eb9e7fc020b43b1bb2.md | 2 +- .../61b09f739aa6572d2064f9b8.md | 4 +- .../61b0a1b2af494934b7ec1a72.md | 6 +- .../615380dff67172357fcf0425.md | 2 +- .../6143b9e1f5035c6e5f2a8231.md | 42 +- .../6148c5036ddad94692a66230.md | 6 +- .../6148d2444d01ab541e64a1e4.md | 2 +- .../6196928658b6010f28c39484.md | 2 +- .../6199429802b7c10dc79ff871.md | 2 +- .../619be73b3c806006ccc00bb0.md | 2 +- .../619d05c54dabca0b10058235.md | 10 +- .../619d237a107c10221ed743fa.md | 2 +- .../619d2b7a84e78b246f2d17a2.md | 12 +- .../5d822fd413a79914d39e98e9.md | 2 +- .../5d822fd413a79914d39e9902.md | 2 +- .../5d822fd413a79914d39e9903.md | 4 +- .../5d822fd413a79914d39e990c.md | 2 +- .../5d822fd413a79914d39e992b.md | 2 +- .../5d822fd413a79914d39e9938.md | 2 +- .../5d822fd413a79914d39e9939.md | 2 +- .../60f027c87bc98f050395c139.md | 8 +- .../60f81616cff80508badf9ad5.md | 2 +- .../60fab9f17fa294054b74228c.md | 2 +- .../60fc22d1e64d1b04cdd4e602.md | 10 +- .../60ffe1bc30415f042faea936.md | 2 +- .../60ffe3936796ac04959285a9.md | 2 +- .../646c586be7180e40ddf74ff6.md | 2 +- .../646ce9d790d2a44de5f99e04.md | 2 +- .../61fd6343fb42013d99bcd7f3.md | 6 +- .../61fd9b7285bde783ad5b8aac.md | 2 +- .../612eaf56b7ba3257fdbfb0db.md | 2 +- .../612ebedec97e096c8bf64999.md | 4 +- .../60a3e3396c7b40068ad69973.md | 4 +- .../615f2abbe7d18d49a1e0e1c8.md | 2 +- .../615f378014c2da526a109c81.md | 2 +- .../615f4ce9d877b668417c0c42.md | 2 +- .../615f51257a8a516d80b6c743.md | 6 +- .../615f5fd85d0062761f288364.md | 2 +- .../615f7c71eab8218f846e4503.md | 16 +- .../615f887466db4ba14b5342cc.md | 2 +- .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../top-basic-functions-exercise-b.md | 10 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 2 +- .../66ec4c8e9878d8441956516f.md | 2 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 25 +- .../66ed41f912d0bb1dc62da5dd.md | 14 +- .../66f55eac933ff64ce654ca74.md | 140 +- .../657bdc55a322aae1eac3838f.md | 2 +- .../67051431a73f1ca25d9a6f25.md | 2 +- .../669e2f60e83c011754f711f9.md | 4 +- .../669e81368e52b3a5c35a2dc5.md | 5 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../66ed8fa2f45ce3ece4053eab.md | 8 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed901ff45ce3ece4053eba.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723d3cfdd0717d3f1bf27e3.md | 2 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../66cc0a9e06e00b75d6782be9.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../657f456223b8c1187b461987.md | 3 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 2 +- .../66ec4c8e9878d8441956516f.md | 2 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 25 +- .../66ed41f912d0bb1dc62da5dd.md | 14 +- .../66f55eac933ff64ce654ca74.md | 140 +- .../657bdc55a322aae1eac3838f.md | 2 +- .../67051431a73f1ca25d9a6f25.md | 2 +- .../669e2f60e83c011754f711f9.md | 4 +- .../669e81368e52b3a5c35a2dc5.md | 5 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../66ed8fa2f45ce3ece4053eab.md | 8 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed901ff45ce3ece4053eba.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723d3cfdd0717d3f1bf27e3.md | 2 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../66cc0a9e06e00b75d6782be9.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- ...thms-and-data-structures-certification.yml | 2 +- ...s-and-data-structures-certification-v8.yml | 2 +- .../add-a-negative-margin-to-an-element.md | 4 +- .../add-borders-around-your-elements.md | 25 +- ...rent-margins-to-each-side-of-an-element.md | 16 +- ...rent-padding-to-each-side-of-an-element.md | 16 +- .../add-rounded-corners-with-border-radius.md | 19 +- .../adjust-the-margin-of-an-element.md | 4 +- .../adjust-the-padding-of-an-element.md | 4 +- ...tach-a-fallback-value-to-a-css-variable.md | 12 +- .../change-a-variable-for-a-specific-area.md | 8 +- .../basic-css/change-the-color-of-text.md | 6 +- .../change-the-font-size-of-an-element.md | 2 +- .../basic-css/create-a-custom-css-variable.md | 4 +- ...ive-a-background-color-to-a-div-element.md | 8 +- .../basic-css/import-a-google-font.md | 24 +- ...ve-compatibility-with-browser-fallbacks.md | 10 +- .../basic-css/inherit-css-variables.md | 5 +- .../inherit-styles-from-the-body-element.md | 44 +- ...ke-circular-images-with-a-border-radius.md | 6 +- ...ide-all-other-styles-by-using-important.md | 18 +- ...s-declarations-by-styling-id-attributes.md | 16 +- ...e-class-declarations-with-inline-styles.md | 12 +- .../override-styles-in-subsequent-css.md | 10 +- .../prioritize-one-style-over-another.md | 8 +- .../set-the-font-family-of-an-element.md | 9 +- .../basic-css/set-the-id-of-an-element.md | 2 +- .../basic-css/size-your-images.md | 15 +- .../specify-how-fonts-should-degrade.md | 18 +- ...tyle-multiple-elements-with-a-css-class.md | 24 +- .../basic-css/style-the-html-body-element.md | 13 +- ...derstand-absolute-versus-relative-units.md | 15 +- .../use-a-css-class-to-style-an-element.md | 10 +- .../basic-css/use-a-custom-css-variable.md | 24 +- .../use-a-media-query-to-change-a-variable.md | 12 +- .../basic-css/use-abbreviated-hex-code.md | 24 +- ...use-an-id-attribute-to-style-an-element.md | 15 +- ...e-attribute-selectors-to-style-elements.md | 40 +- ...ion-to-specify-the-margin-of-an-element.md | 23 +- ...on-to-specify-the-padding-of-an-element.md | 23 +- .../use-css-selectors-to-style-elements.md | 25 +- ...bles-to-change-several-elements-at-once.md | 12 +- .../use-hex-code-for-specific-colors.md | 10 +- .../basic-css/use-hex-code-to-mix-colors.md | 25 +- .../basic-css/use-rgb-to-mix-colors.md | 40 +- .../use-rgb-values-to-color-elements.md | 6 +- .../add-a-submit-button-to-a-form.md | 21 +- .../add-images-to-your-website.md | 15 +- .../add-placeholder-text-to-a-text-field.md | 17 +- ...radio-buttons-and-checkboxes-by-default.md | 4 +- .../basic-html-and-html5/comment-out-html.md | 16 +- .../create-a-bulleted-unordered-list.md | 22 +- .../create-a-form-element.md | 18 +- .../create-a-set-of-checkboxes.md | 18 +- .../create-a-set-of-radio-buttons.md | 33 +- .../create-a-text-field.md | 2 +- .../create-an-ordered-list.md | 42 +- ...declare-the-doctype-of-an-html-document.md | 6 +- ...e-the-head-and-body-of-an-html-document.md | 14 +- .../delete-html-elements.md | 7 +- ...fill-in-the-blank-with-placeholder-text.md | 2 +- .../headline-with-the-h2-element.md | 14 +- .../inform-with-the-paragraph-element.md | 10 +- .../introduction-to-html5-elements.md | 20 +- ...-to-external-pages-with-anchor-elements.md | 10 +- ...sections-of-a-page-with-anchor-elements.md | 20 +- .../make-dead-links-using-the-hash-symbol.md | 2 +- ...st-an-anchor-element-within-a-paragraph.md | 51 +- ...ny-elements-within-a-single-div-element.md | 18 +- .../say-hello-to-html-elements.md | 2 +- .../turn-an-image-into-a-link.md | 16 +- .../basic-html-and-html5/uncomment-html.md | 10 +- .../use-html5-to-require-a-field.md | 2 +- ...ibute-with-radio-buttons-and-checkboxes.md | 33 +- ...add-flex-superpowers-to-the-tweet-embed.md | 74 +- ...elements-using-the-align-items-property.md | 4 +- ...ents-using-the-justify-content-property.md | 5 +- ...y-to-create-a-column-in-the-tweet-embed.md | 63 +- ...perty-to-create-rows-in-the-tweet-embed.md | 57 +- .../use-display-flex-to-position-two-boxes.md | 4 +- ...align-items-property-in-the-tweet-embed.md | 63 +- .../use-the-align-self-property.md | 8 +- ...erty-to-set-the-initial-size-of-an-item.md | 12 +- ...lex-direction-property-to-make-a-column.md | 4 +- ...e-flex-direction-property-to-make-a-row.md | 4 +- ...-the-flex-grow-property-to-expand-items.md | 8 +- .../use-the-flex-shorthand-property.md | 28 +- ...he-flex-shrink-property-to-shrink-items.md | 8 +- ...x-wrap-property-to-wrap-a-row-or-column.md | 4 +- ...ify-content-property-in-the-tweet-embed.md | 66 +- ...e-the-order-property-to-rearrange-items.md | 8 +- .../add-columns-with-grid-template-columns.md | 31 +- .../css-grid/add-gaps-faster-with-grid-gap.md | 33 +- .../add-rows-with-grid-template-rows.md | 33 +- ...-items-horizontally-using-justify-items.md | 33 +- ...-all-items-vertically-using-align-items.md | 31 +- ...an-item-horizontally-using-justify-self.md | 27 +- ...ign-an-item-vertically-using-align-self.md | 24 +- ...eate-a-column-gap-using-grid-column-gap.md | 33 +- .../create-a-row-gap-using-grid-row-gap.md | 31 +- ...create-flexible-layouts-using-auto-fill.md | 47 +- .../create-flexible-layouts-using-auto-fit.md | 36 +- .../css-grid/create-grids-within-grids.md | 23 +- .../css-grid/create-your-first-css-grid.md | 28 +- .../divide-the-grid-into-an-area-template.md | 67 +- ...mit-item-size-using-the-minmax-function.md | 33 +- ...grid-areas-using-the-grid-area-property.md | 35 +- ...ce-repetition-using-the-repeat-function.md | 33 +- ...-to-change-the-size-of-columns-and-rows.md | 33 +- ...area-without-creating-an-areas-template.md | 36 +- .../use-grid-column-to-control-spacing.md | 47 +- .../use-grid-row-to-control-spacing.md | 45 +- ...ia-queries-to-create-responsive-layouts.md | 65 +- .../create-a-media-query.md | 45 +- .../make-an-image-responsive.md | 42 +- .../make-typography-responsive.md | 40 +- ...na-image-for-higher-resolution-displays.md | 31 +- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- ...t-json-with-the-javascript-fetch-method.md | 2 + .../exercise-tracker.md | 64 +- .../build-a-budget-app-project/budget-app.md | 352 ++++ .../657f456223b8c1187b461987.md | 3 +- .../build-a-personal-portfolio-webpage.md | 71 +- .../build-a-survey-form.md | 238 +-- .../build-a-technical-documentation-page.md | 168 +- .../build-a-tribute-page.md | 102 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5dc174fcf86c76b9248c6eb2.md | 8 +- .../671141feba228a35cefba82d.md | 2 +- .../646c48df8674cf2b91020ecc.md | 2 +- .../646ceb843412c74edee27a79.md | 16 +- .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../6352fcb156834128001ea945.md | 6 + .../65aac0678d51b3f1a0cb8061.md | 2 +- .../644b6d20eabd7e0149383254.md | 2 +- .../660ae8ad1475698da3c3c37d.md | 37 + .../660aea8782242e8f4bcc42d8.md | 39 + .../63c9e8fe3a6f022a05a04675.md | 162 +- .../64496d80bc174a158c973080.md | 51 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../660f280dda5040f707c76b4a.md | 6 + .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64ff04cc33779427a6412449.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../657e230500602983e01fff6e.md | 42 +- ...lem-462-permutation-of-3-smooth-numbers.md | 4 +- .../657b05367b59300bcb5f18ef.md | 5 +- .../657b068e28a3bd135ced0042.md | 8 +- .../657b190c4e736f5c4005b132.md | 2 +- .../657b1ae0c2fb4c64071ade7a.md | 2 +- .../657b23ad0df43588a6eadfa4.md | 6 +- .../657b24e5edd7708e93549565.md | 2 +- .../657b69e10d6606a0185d4d4f.md | 12 +- .../657b6f641e5c3ab1afc6efc1.md | 2 +- .../657b70cc934e0ab83cab4dbe.md | 2 +- .../657b92b25858f24caf6894aa.md | 6 +- .../657cb68bf15f349a744b5fba.md | 4 +- .../657cd962b45f48127c183d7b.md | 12 +- .../657cdc5a8e30191d1abec8b7.md | 2 +- .../657ce061cda4a42a99c65d89.md | 2 +- .../657cfeeeabb34d946d437dc7.md | 2 +- .../657cff86dd812f98672e2649.md | 2 +- .../657dc1d18a0a6f25302badba.md | 2 +- .../657dc50830f9be380105f1ee.md | 2 +- .../657dc568fe84e53acc962fc3.md | 2 +- .../657dc9946a177a5938ad3854.md | 2 +- .../657dca763bc23c5fc3398d95.md | 6 +- .../657dce8ff35869721311a5e3.md | 4 +- .../657dcee413423174ca3747f5.md | 4 +- .../657dd047e755e37d58f5084f.md | 4 +- .../657ddaaf8d89b4a56e3fdf78.md | 4 +- .../657ddd7d4fc512b03741d9a3.md | 6 +- .../656cd6a37495961c5f242c5d.md | 2 +- .../657b1dfec76149836ea5c7d0.md | 7 +- .../657b30e1b9f035e7e656fd01.md | 2 +- .../65f3a5111de04c216a38d998.md | 2 +- .../65f3a5733a199c21ca589173.md | 2 +- .../65f52f761f23715bce60f9ce.md | 2 +- .../66415d2fc70cf753ed0723a4.md | 2 +- .../664274a516894a70a9111cb6.md | 2 +- .../6642914bd5def3734c59b763.md | 2 +- .../655b76340ecb8285060ab6d5.md | 2 +- .../655bdc7e9c4116509df13f34.md | 6 +- .../655c9a89818e18606c18ca4b.md | 4 +- .../655c9bcb5bedb4620acb6f18.md | 2 +- .../656a44b06bea9443b8ff45bd.md | 2 +- .../656a456b46b4b04437f2d3e9.md | 2 +- .../656a4ac4529e0f49ab900c3b.md | 2 +- .../656a4d1943d8f24c030ded74.md | 2 +- .../65fe10ef733aebd257f0677d.md | 2 +- .../65ff086669d84512c7d132f1.md | 2 +- .../6617e75a204e044552675f58.md | 2 +- .../661ed01f09114567cc8fa939.md | 2 +- .../661edda6df434c6f2161bea5.md | 2 +- .../661ee1436ecb9271c66be82c.md | 2 +- .../661eea69ca8a5177320d5e90.md | 2 +- .../65b22d1aeb5ecf1d590d30bf.md | 2 +- .../65b22e5388370c209a6b0b73.md | 2 +- .../65b25b541262654062a21e74.md | 4 +- .../65b25bcc98b00d41d06d2a2b.md | 2 +- .../65d86e08994c4a0436d92766.md | 2 +- .../65d89562dff69551e7683df3.md | 2 +- .../65daa8143ae77767ad914ba4.md | 4 +- .../65daa8cce1b9206995e4aec3.md | 4 +- .../65daab9b713d3e6e6272c8bf.md | 4 +- .../65dab1186529467ee5e463a7.md | 2 +- .../65dad153fd675cb51e8423b0.md | 2 +- .../6636f834a7b32443a43fa4e0.md | 2 +- .../663855865f5d53510f9cd9a5.md | 4 +- .../6638994f7dbcb3548e458202.md | 2 +- .../66389a37bc8a4b5539eab451.md | 2 +- .../66389e09cec2fa569567b15a.md | 2 +- .../6556bc95e6ce5d850d37dd07.md | 3 +- .../6556be93f9fcb88ac9e88b0d.md | 7 +- .../655792631f21afaa40c611e1.md | 5 +- .../6557985a95ab6db1c4a31b6c.md | 5 +- .../6557995f0d97e1b2837a3081.md | 4 +- .../65579a0e1613d5b31a034ee5.md | 4 +- .../6557aee56ed7dcb5506a66d6.md | 3 +- .../6557d6a229e541bfde2c560d.md | 3 +- .../6557d782bc7613c06aa7dafd.md | 3 +- .../6557db51366bf6c15a966fb0.md | 8 +- .../6557dc1aa6be93c1eb4e9efb.md | 5 +- .../6557dea8c258c1c2a767deb7.md | 5 +- .../6557e0adbee371c3ac455a01.md | 3 +- .../6557e5c6a854bfcad48808c4.md | 4 +- .../655a235215bab7fa2a2e4bb7.md | 3 +- .../655a33bb8f2009ff7a7abfaa.md | 4 +- .../655a367638e3f401eb0235ea.md | 2 +- .../655a3789069fc902eb2aaa4b.md | 5 +- .../655a39242197c9040ddedef2.md | 5 +- .../655a3cc030fb970687d6444d.md | 5 +- .../655a4a5af997350c187bd779.md | 5 +- .../655a4fc35818d90f73f63ba0.md | 5 +- .../655a51cff12fb7117aa611f9.md | 5 +- .../655a54506b259313b2d59577.md | 2 +- .../655a5bfadf47e1199f9b65eb.md | 8 +- .../655a5e76ca6f8d1b1a88e0f1.md | 10 +- .../655a78fdfac0e22b0c400e72.md | 2 +- .../655a79e595bd202b4cd5e2d2.md | 3 +- .../655a7c5211e5252cf8a4ed01.md | 12 +- .../655a7d752ffc542e5874af0b.md | 7 +- .../655a896f31ca6a32913d1106.md | 5 +- .../655a8c9d2a0ea136a0fd3631.md | 5 +- .../655b266c2ea5495f43b97ea5.md | 2 +- .../655b2b5cc4ea3062f9811dec.md | 5 +- .../655b3197bb31ca670081f6d7.md | 2 +- .../655b363149b5ba6b15434574.md | 2 +- .../65e46524078f872c3a871f9f.md | 2 +- .../661757150c7a75961a574a39.md | 2 +- .../66175792ec93b19771c55c62.md | 2 +- .../661772551b64ddd40c834b1e.md | 2 +- .../661796e4635cd3eb1c8c78a4.md | 4 +- .../661797b505f2d3ed4b170d74.md | 2 +- .../66179829f664e3ee9b42ce5f.md | 2 +- .../6617994636fa13f16060b12b.md | 4 +- .../6617aea9ccdd68f7088368d1.md | 2 +- .../6617af3ab73475f87b53a59d.md | 2 +- .../6617b500a7049808f3a2a593.md | 4 +- .../6617b53e5eda8e09c6c67d28.md | 2 +- .../6617b674eb480b0c8d3d6031.md | 2 +- .../6617b81046e7b11287a7bef8.md | 4 +- .../658157d104bbc92a95147e45.md | 2 +- .../65fc9a04edb4d56c8390bc3a.md | 4 +- .../65fc9ab3635ebc6d167f86e6.md | 2 +- .../656bd968e52c34220164de8d.md | 2 +- .../65a84dad1595bbbc2e9cd895.md | 4 +- .../65a84e922382a7bd112057ad.md | 2 +- .../65a85090914872be8ca97793.md | 2 +- .../65a9457392dfd7d564bc940e.md | 2 +- .../65b28bbe803df52c4e76dd15.md | 2 +- .../65b28f840a0d962f2240e800.md | 4 +- .../65b2af1545e34334b7573de9.md | 2 +- .../65b2b2781c59e837a5e0beb2.md | 2 +- .../65b2bb073ac8d03dfe507810.md | 2 +- .../6620e51c36d18c137b887081.md | 4 +- .../6622346c798d906ee4d31846.md | 2 +- .../65fd5f2abfdbc510942d76f8.md | 2 +- .../661005bbe1801e14c303a57a.md | 4 +- .../66100646290700150caff732.md | 2 +- .../661216bbf6d9a51b409172a8.md | 2 +- .../661256fe823f142fb9858beb.md | 2 +- .../66126744e24b0a31255718a7.md | 2 +- .../6579cf81a9cec6d21f872959.md | 2 +- .../6579d002683211d5c7d13ef3.md | 2 +- .../6579d4ca0578b4e95f1df60e.md | 2 +- .../6579d539b1e5c2ec64484e49.md | 2 +- .../6579d827ebd50afcacb829fe.md | 2 +- .../6579dbf6a3e8a5161a592169.md | 4 +- .../6579ddc94db61d2463022da3.md | 2 +- .../6579de040244fb274179f001.md | 2 +- .../6579e17ff05c5d451c2e4f35.md | 4 +- .../657e0868da73165e32763679.md | 2 +- .../657e15f175ecdf90b583ed01.md | 4 +- .../657e1c10bc3f2ea8e1c1d7f7.md | 2 +- .../657e31b82090130535456f65.md | 2 +- .../657e358a40dd95143df6fe26.md | 2 +- .../657e3dfda31b534042d06e39.md | 2 +- .../657e4a245cc71782126b3316.md | 2 +- .../657e4e482e3a38992b212c6f.md | 2 +- .../657e50576597e0a65cd97e24.md | 2 +- .../657e50dd1f6ff2a9873f9ff0.md | 2 +- .../657e5c296bdba2ea26c67ca0.md | 2 +- .../657e5d8f7f2274f2b1a8efcc.md | 4 +- .../657e76356b6af6c07fe338c1.md | 2 +- .../657e786b51f7eac240e92bcc.md | 2 +- .../657fff7dabba2ff23993b08c.md | 2 +- .../658010478daa16fe79d8113a.md | 2 +- .../6613d3fe6615374be0d10008.md | 2 +- .../6613d46936e9374c24cfaaab.md | 2 +- .../6613d550a08c194cd27607ec.md | 2 +- .../6613d6c3e74a984d6fcbd013.md | 2 +- .../6614ad58c102e15df06c96d5.md | 4 +- .../6614ae3e02cc465ebee68851.md | 4 +- .../6614b1f8ee220c5f79df89b8.md | 2 +- .../6614b3e52a6aca60bc3417fb.md | 2 +- .../6629ce1a4f6581a7266d6ca9.md | 2 +- .../662a2779b2aeb80c10508bf2.md | 4 +- .../662a2b1f0c9314142ae87955.md | 2 +- .../662a304552f2631d63aa7cab.md | 2 +- .../662b74055c06e60af4f9b976.md | 4 +- .../662b8975b11107146a49ec58.md | 4 +- .../662f074021418e2b24937af7.md | 2 +- .../662f0d350c37f42de48847fe.md | 2 +- .../662f2e4b96f60636d44eb7db.md | 2 +- .../662f31024608f337c0bf53a9.md | 8 +- .../662f3450de7c2139809fb72b.md | 2 +- .../657b400653813a1caa228aca.md | 2 +- .../657b68caf6debb2975503948.md | 10 +- .../657ca50a95d1c3828ee5a991.md | 2 +- .../657caa4012f1cf846dcaa619.md | 2 +- .../657cad90d6745e85569cdc06.md | 2 +- .../657caec5163c6c85e5b31284.md | 2 +- .../657cafc142a867006734c3ed.md | 2 +- .../657ccfa7eeb47305177d4a45.md | 2 +- .../657cd816f3caf509f85e4d4a.md | 2 +- .../657ce387f809d60eb54f06d6.md | 4 +- .../657ce691d6c57c107e650c5e.md | 2 +- .../657daa5ab8505427a5b99cd2.md | 2 +- .../657dab674b9de728828aa020.md | 2 +- .../657dadfc7d21eb294c9f057e.md | 2 +- .../657daf702ed04a29ee42de69.md | 2 +- .../657df21cc45b1f66112fb8fc.md | 2 +- .../657df2b22d7649667734d71e.md | 2 +- .../657df5d14291b56887825276.md | 4 +- .../657df6018a70e468f5dc016a.md | 2 +- .../657e4b7d381d567e8d97967c.md | 2 +- .../657e4c1f0bd3e97ef2d46644.md | 2 +- .../657e4cd7f87d4f7f6954446d.md | 2 +- .../657e4db2e3fc8d7fb41b8b85.md | 2 +- .../657e4fd2ecf31280ef673f0d.md | 2 +- .../657e539471b4aa82c7402c15.md | 2 +- .../657e5477269b94834908826f.md | 4 +- .../657e54f51fe1c983d840cb70.md | 2 +- .../657e55e612fac9847dc7ce03.md | 2 +- .../657e56e7034d2d858b6e9e00.md | 2 +- .../674f0332ec59564081ec8b87.md | 196 +++ .../674f0495e5f4b0485ed38cd4.md | 92 ++ .../674f06b4b4d6eb4f6139ad61.md | 52 + .../674f08fde55c2356b37e9b69.md | 92 ++ .../674f0afcd85abc5d478e150c.md | 92 ++ .../674f0d0dec2922641ce2c8e9.md | 111 ++ .../674f0f8e84b4c76c0f6ae6d3.md | 94 ++ .../674f1a33acb7717de4842822.md | 52 + .../674f1ba48f50b78294f89089.md | 102 ++ .../67504e15ec1851a15aad11c1.md | 92 ++ .../675052373a1887aaa89c9a22.md | 88 + .../67505766bad3bcbac2f16fe4.md | 113 ++ .../67505903fa6affc0910b7a9d.md | 101 ++ .../675106629f2c07cec9bf2c71.md | 111 ++ .../67510809633277d10d4fff4f.md | 80 + .../6751a781fd421fda55170fc8.md | 102 ++ .../6751a827719c0fdb5b66b8e3.md | 92 ++ .../6751a990269891dd6f0ab1c2.md | 102 ++ .../6751ab72ff11cae0021d02d8.md | 92 ++ .../6751aca2701270e188b07df9.md | 102 ++ .../6751ad79009d66e2f5878282.md | 102 ++ .../6751aeb422ef45e4af25434d.md | 92 ++ .../6751bc2826c791ea69d7e8f2.md | 102 ++ .../6751bd2301b9feebf3813ac3.md | 80 + .../6751bdd2f78adbed1ea0fa51.md | 102 ++ .../6751beb68c063aee92555abe.md | 113 ++ .../6752e404804c1c044c804b79.md | 52 + .../6752e54369231d06538b4ac0.md | 92 ++ .../6752e83a806f520923bd28fa.md | 102 ++ .../6752eb5797ad390c7f40ef08.md | 86 + .../6752f4680f2d251372d4ae64.md | 68 + .../6752f6ebff95ee1781462c02.md | 68 + .../6752fb3e6257c91b93721288.md | 66 + .../6752fb92ecc7811d3a0f3320.md | 66 + .../6752fc06607eba1e73a89929.md | 68 + .../675948c97c0d4fd3d596960a.md | 232 +++ .../67594c1c9c8fc90a8e6f2f75.md | 80 + .../67594e4ad681381278cee337.md | 94 ++ .../675950eed633ac1ac3884471.md | 102 ++ .../675961ce80a70e23e933fa8c.md | 52 + .../675963eadf3bcf2ae50f74fe.md | 88 + .../675966e572894133e1b3b275.md | 80 + .../6759a3d84d89c4474d6a06b6.md | 102 ++ .../6759a570761b794ba1dc57e5.md | 102 ++ .../6759a679b6934850b6b0a31d.md | 92 ++ .../6759a7cc60ea94557c578ed4.md | 92 ++ .../6759a98f5028cb5bdf0a6f4b.md | 90 + .../675beaae0511b83217778531.md | 111 ++ .../675d10fd9150e00d5ea464c2.md | 52 + .../675d1437a379f517d766a249.md | 92 ++ .../675d16180e3c3f1e843ed138.md | 102 ++ .../675d177b1b7aca23c7f1b6d9.md | 97 ++ .../675d18c725ee4928ba83fa7c.md | 111 ++ .../675d6e0e52e8ee2d7b2b69cf.md | 90 + .../675d6f815fb6c83276d12870.md | 103 ++ .../675d710fb8118237e416155a.md | 89 + .../675d72320c09a53c1020e59d.md | 111 ++ .../675d72b7d86e163e326979e5.md | 92 ++ .../675d7493249c24447ca9e166.md | 102 ++ .../675d86beee48ab4941767200.md | 52 + .../675d87ed627c734d9ee5c028.md | 88 + .../675d88ce781849512cd7d426.md | 101 ++ .../675d8aabc2397c583c081ea9.md | 111 ++ .../675d8b482d5fa45b0226a891.md | 92 ++ .../675d8c5d1a1d775f78424011.md | 102 ++ .../675d8dfaad5f4765cbd8c013.md | 52 + .../675d8eddf05fb469a75ef543.md | 113 ++ .../675d91adb9fb7173f4a7a4c7.md | 111 ++ .../675e6dfe0160bb66faa60a68.md | 97 ++ .../675e6f0bf7f7eb69ddffef81.md | 80 + .../675e70d7b854926d7f18693c.md | 102 ++ .../675e7387be428072d95baeac.md | 94 ++ .../675e79e6ecfda37e1f49be65.md | 64 + .../675e7cc999813e83379b139c.md | 64 + .../675e8013d40d0d860143c14f.md | 64 + .../675e80709ee205871518ba9b.md | 64 + .../675e8133c874a588f947de57.md | 64 + .../675ecdef47179ea4653c2b9f.md | 196 +++ .../675ecedbb04f6ca6dd620f0e.md | 92 ++ .../675ed1414303a6abfaac2d96.md | 80 + .../675ed59b1e938bb2443585a5.md | 111 ++ .../675ed69e54ae31b462edf95b.md | 80 + .../675ed905490b9ab8f4e640c4.md | 92 ++ .../675edb8012accfbd8f4135c5.md | 92 ++ .../675edc3228d9d1bf95c5e649.md | 52 + .../675edeea805bb0c44385d0d5.md | 80 + .../675ee01ee1d37cc722bbad83.md | 92 ++ .../675ee218782b4dcb26796c19.md | 102 ++ .../675fa4789b65761b6c562a1b.md | 80 + .../675fa66d590e0127ba60b7f6.md | 92 ++ .../675fa827b0a17832dc798ba0.md | 102 ++ .../675fb5315884dc456fad654a.md | 113 ++ .../675fb7824cbbe3539de6111b.md | 111 ++ .../675fba2a32b4aa625e2f7940.md | 38 + .../675fbba5f9807566fb0c39ef.md | 92 ++ .../675fbefa9f40157cad662e8d.md | 102 ++ .../675fbfc6fa824c820a7e49d4.md | 88 + .../675fc02724147984cfe068d5.md | 80 + .../675fe3fb72bdcb97dd10b7c8.md | 102 ++ .../675fe58fb4c9539cb37b4065.md | 80 + .../675fe6a1e81c4ba00f415364.md | 99 ++ .../675feaafa5546fab32aa0736.md | 111 ++ .../675febf4f03233af8e347802.md | 80 + .../675fee8f5d64f2b504e91281.md | 102 ++ .../675ff2b7f9405abf27f26740.md | 80 + .../675ff37bebf32bc223e3660a.md | 102 ++ .../675ff42fb8c8a6c4f21cd3bb.md | 104 ++ .../675ff94f80bd9bd12c8497e2.md | 92 ++ .../6760f057483bbf684bfa6457.md | 111 ++ .../6760f48b0fe69572664e85f1.md | 102 ++ .../6760f7ca38c9167853ebf917.md | 89 + .../676147de99ef019cee551581.md | 70 + .../6761493d2db43ba139340975.md | 70 + .../67614992d9e494a2b69f89bb.md | 70 + .../67614a0187bd80a49d438b1f.md | 70 + .../67614a6e5d4df6a6744127b7.md | 70 + .../66a91783d34e873290e9f5ec.md | 2 +- .../66a95606a32d5747dae3bfba.md | 2 +- .../66a958bb3ac85c4a75e5fe88.md | 2 +- .../66a9599790c94a4ba0e5dbd9.md | 2 +- .../66a95ab699d0064d16bdf469.md | 2 +- .../66a961222115ad5437ddf4fb.md | 4 +- .../66b13f2f0c5a415ccd41335e.md | 2 +- .../66b4f8f6c1af973bdfdc0228.md | 2 +- .../66b568bf34c34209600445ad.md | 6 +- .../66b56c0432933515821a4eeb.md | 6 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66b572bd3d3e122e9a8ff9df.md | 4 +- .../66b57e127321d8524c7ddda7.md | 6 +- .../66b580cb9307d46113a8a637.md | 10 +- .../66b58252cb001966f564c19e.md | 4 +- .../66b582d6978cff693c7b9455.md | 8 +- .../66b583275950846a87e88de8.md | 8 +- .../66bbba46fff0ef451b701bcd.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 4 +- .../66bbf183427671a86f5ac25e.md | 2 +- .../66c4e019a6cbfa3210603aef.md | 4 +- .../66c4ec1a03bb27643063f262.md | 2 +- .../66c4efaa80afd0729ae471d1.md | 6 +- .../66c4f19f86b5f07a71ac7642.md | 8 +- .../66c4f338d6b658809576ae77.md | 4 +- .../66c4f45289436884e6afc059.md | 4 +- .../66c4f90997120794595abd5c.md | 2 +- .../66c4fd010695b5a316201d03.md | 2 +- .../66c4ffe51866ecadb48304b9.md | 10 +- .../66c5012e6643c2b32b3af0be.md | 4 +- .../66c507bef7c69ac73fbc82cc.md | 8 +- .../66c611f2d1e400c2f41ad5d9.md | 2 +- .../66c613a4d11b69cdd746b5ed.md | 8 +- .../66c616d281199cda967c144d.md | 8 +- .../66c6184eda8a8be150b1a0b4.md | 4 +- .../66c6193e7546c4e51cbf64c9.md | 8 +- .../66c61a0197d7e7e87191e033.md | 12 +- .../66c61a57f6eca6e9fb0f61d7.md | 6 +- .../66c61dee09da09f603fa3dbc.md | 2 +- .../66c62046cf3df2fe7cf92230.md | 10 +- .../66c6213241b74d023adcf637.md | 2 +- .../66c62515cf6ae70e34eb361d.md | 10 +- .../66c625e03abcb711ca38ba5f.md | 4 +- .../66c62747744dc4178785207d.md | 4 +- .../66c628215739f51ac74cb5cc.md | 4 +- .../66c6293f674a0a1e960027c3.md | 2 +- .../66c62b0c65018625985a897d.md | 2 +- .../66c637ce17705151c64f9059.md | 10 +- .../66c63db09b73ad6539eeee61.md | 16 +- .../66c63fda0e11806e78090f36.md | 10 +- .../66c6409f492e5e71621d06b8.md | 10 +- .../66c640e2f81416727a42fd4c.md | 6 +- .../66609f86c2500e597c8cb52f.md | 209 ++- .../673519c3d750b013c96f1e6f.md | 90 + .../67351b96eefe7c282ec1424b.md | 107 ++ .../673653fa580778853a7a7afd.md | 108 ++ .../673654d11366b18b1c76d980.md | 82 + .../673655ea628630928b5b50b8.md | 107 ++ .../6736576b5407af9bdf1f41b7.md | 110 ++ .../67365a08481f68acc18a9639.md | 113 ++ .../673ba128855f6e78cd392dab.md | 109 ++ .../673ba3a9d1858104dfbba180.md | 82 + .../673ba5bf35e3b51211c27c2b.md | 106 ++ .../673ba72bd5ef6a1bc39ba037.md | 101 ++ .../673ba8558f0a93235de58ccb.md | 111 ++ .../673ba99a1280af2ba7770b56.md | 111 ++ .../673bab51ecb42c369eb6b37b.md | 101 ++ .../673bad5d57b0a6444819ca0e.md | 94 ++ .../673baec00a78e04d5c6a9ea2.md | 92 ++ .../673c03eb9c3d4c2e12555aaf.md | 80 + .../673c06abb58d403f7e4533fb.md | 113 ++ .../673c07da6aa1be470dc55332.md | 92 ++ .../673c097ad524db51cca7ae3f.md | 104 ++ .../673c0bf736904660a9077269.md | 102 ++ .../67472118e6040e52ad3ca5b0.md | 101 ++ .../67472280c0b01f5e1442f8da.md | 115 ++ .../67472348ce54e263862c5386.md | 99 ++ .../674e3864432aea6f5ce708ed.md | 92 ++ .../674e3b2f69b2e481d4f6cebe.md | 94 ++ .../674e3bc223f6c5862facf3e2.md | 88 + .../674e3cb5a611618cd5301758.md | 99 ++ .../67506acdf255ff94e0ba712e.md | 111 ++ .../67506bd2d567359bac72f760.md | 90 + .../67506c7db9d148a0308107d8.md | 88 + .../67506d2c92a80fa4b7a912a7.md | 104 ++ .../67506e16a9e0bdaad7267c35.md | 98 ++ .../67506e940e1d20ae6f0fc7e2.md | 88 + .../67506f57df7629b3d8d90f11.md | 102 ++ .../675070049d1f9fb8c1bced11.md | 89 + .../675070d075960bbe3f92eca6.md | 99 ++ .../675074863d75f1d559b039df.md | 108 ++ .../6750758f8581d3dcfeb1c386.md | 124 ++ .../6750775f2b0832e88216e98c.md | 110 ++ .../6750784c1399a9ef62b27e9e.md | 90 + .../67507a47729d85fb7c88ee06.md | 88 + .../67507adbc31ab8ffa2dc5243.md | 111 ++ .../67507f042946421936eb425a.md | 117 ++ .../67508b92b31af876eed82c66.md | 96 ++ .../6752100607e30e31bd85af76.md | 70 + .../6752133caed6e849142fcc19.md | 70 + .../6752136c94c79a4ad803f0cf.md | 70 + .../675213a1aa7da34c876d94e9.md | 72 + .../675213f5a47d9e4ef23d9050.md | 72 + .../67531709d628ef047202e6ae.md | 196 +++ .../675318543812fa0f15f42c10.md | 95 ++ .../67531ca2cb308e28acf3bdc1.md | 104 ++ .../67531f0c699943385e41734c.md | 90 + .../67531ff45ade873e5ff17211.md | 90 + .../67532227a04e5e4cd4ccf987.md | 92 ++ .../675323b130ad71572ef10510.md | 104 ++ .../67532445152d375af93d4d19.md | 104 ++ .../675325cfea799165252500d4.md | 100 ++ .../675326de48b3e36c45ba1328.md | 78 + .../675327d73a38d5731235d764.md | 104 ++ .../675329bc0e2bfa7f1c4f7411.md | 90 + .../67532ac8b110a08666ee5f18.md | 90 + .../67532bbaa817558e7691df51.md | 82 + .../67532c49e75faf929fd9378d.md | 84 + .../6753314748a2feb09a3059b2.md | 139 ++ .../67533335139a96bd1eb18395.md | 97 ++ .../6753357b948f6acb55e35e3b.md | 101 ++ .../67535bfb5c07ec6334ec8ea3.md | 108 ++ .../67535e02fd808570ca6cb599.md | 88 + .../675743f6f7016d1074a9bca1.md | 82 + .../675746c2d3d2f222111918d4.md | 134 ++ .../6757488ee5dfb72d866a36df.md | 89 + .../6757498f826b0634696f224e.md | 111 ++ .../67574a712cb1143a3920f2a3.md | 113 ++ .../67574bb2fe3c4c42bae7b6e5.md | 88 + .../67574c6d474104486add91a7.md | 106 ++ .../67574d8786f50e500eae8e67.md | 97 ++ .../67575000c0fd5b5f211d89c4.md | 121 ++ .../6757531dc5fbb973e1912e1a.md | 90 + .../675753a815259c781d2b6913.md | 80 + .../67575473b14c837d8de3a866.md | 96 ++ .../67575588dfebc085e31941e4.md | 101 ++ .../67575734a3672990f7c4385a.md | 117 ++ .../6757585d71b1ad9924a96eb9.md | 90 + .../675758e09f09139cb34169f9.md | 110 ++ .../67575a0d4b966da41383050b.md | 92 ++ .../675c8db0264a83364dc521ac.md | 90 + .../675c8f75eaf3914275999cae.md | 92 ++ .../675c900ff099fa46fad7624d.md | 117 ++ .../675c91b0c74a72519ebb0a83.md | 92 ++ .../675c92e9a6133659ccad5424.md | 92 ++ .../675c94decb56d46654acf008.md | 109 ++ .../675c9579b10f316b5542b331.md | 100 ++ .../675c96e7feed5f75004ea8a4.md | 115 ++ .../675c9900820144823ed5b11a.md | 109 ++ .../675c9a309dcbc3053601e653.md | 101 ++ .../675c9a9d87d492086e1ab3cf.md | 117 ++ .../67619dab2031295f7b4dcee1.md | 96 ++ .../6761c4698166cd2462c1d685.md | 178 ++ .../6761c69821431133f4860640.md | 70 + .../6761ca7cf0fd854c646ebd11.md | 76 + .../6761cae47045b54f50840915.md | 72 + .../6761cb950d555c54150b2212.md | 74 + .../6761e3efbd12c067489c90fe.md | 82 + .../6761e51505b1d96f537b089e.md | 124 ++ .../6761e7b82f98fc7fb7d9c06b.md | 124 ++ .../6761e90350ebde88221daeea.md | 125 ++ .../6761e99e3e0f098cc0f265aa.md | 124 ++ .../6761eb2e4b1192968b2303f4.md | 124 ++ .../6761ecb48889faa066740143.md | 106 ++ .../6761ee00596d9fa8c8c3ac90.md | 103 ++ .../6761f0dc81967cbbe1118dae.md | 113 ++ .../6761f1e5287834c2cb5f4631.md | 98 ++ .../6761f2fbd2db7aca063b6a5c.md | 106 ++ .../6761f509323d5ad6cfe9d212.md | 90 + .../6761f66b536d13df9a6e4b87.md | 84 + .../6761f6dc272d86e2f315b79c.md | 106 ++ .../6761f838245300ebfcf372cd.md | 80 + .../6761f9d7a849d8f61aa12deb.md | 119 ++ .../6762dceeac22841f223b0101.md | 96 ++ .../6762e2adb437563844364cf1.md | 108 ++ .../6762e430c7646a422c17966f.md | 104 ++ .../6762edd89388ad7b3950d01a.md | 108 ++ .../6762f11f6a96d19057229bf2.md | 101 ++ .../676320cd1c9cee55ab53687a.md | 113 ++ .../676321f8a8692b5d4b211dde.md | 113 ++ .../67632267336dcf6068f39407.md | 110 ++ .../6763238e902cdf688f49152f.md | 92 ++ .../6763251d0b7d8872b5543df8.md | 116 ++ .../676325dfad1ee0784c7f1a5e.md | 88 + .../6763271c3d195780a672e061.md | 121 ++ .../6763285df9a9b6039696c389.md | 92 ++ .../67632a419a12aa10b1e76954.md | 110 ++ .../67632cefda53f021ab6ecfb4.md | 100 ++ .../67632e1b477101295cf2fc77.md | 119 ++ .../67632f1219de712fcf37d295.md | 99 ++ .../67633077c55c0f38b9166323.md | 108 ++ .../6763322b77048c43b92f9c28.md | 102 ++ .../67633424bfc56f4fec3edf3c.md | 98 ++ .../676335dbbbe14c5acdafc970.md | 108 ++ .../676338a796ace16be009e9d6.md | 89 + .../676339b7a8460f7302b2d966.md | 98 ++ .../67633a6ff2f2ef78701975c9.md | 136 ++ .../67633b012085337c52b93096.md | 92 ++ .../67633b85c9f913803fd8591c.md | 111 ++ .../67633d331eeb858a9803794f.md | 97 ++ .../67634107b478caa17f37c628.md | 72 + .../67634294671bb8ac40e2cc85.md | 64 + .../676342de292eafae91acee29.md | 64 + .../6763432a8c2ae1b0de0e1fc0.md | 64 + .../66c8ffb7c913438ad893dcf2.md | 2 +- .../67325a5443667173c717856f.md | 2 +- .../67325bae5d23157c74091944.md | 2 +- .../67326cb0e9a72b69d6efd417.md | 2 +- .../67326fb4b198b97e4bcf4a69.md | 2 +- .../6732800300eff4f49912e30f.md | 2 +- .../66609a1199ddd03548c45423.md | 234 ++- .../6704f438e6e9120d5a1274c6.md | 106 ++ .../6704fbd43885300e4aa221e9.md | 92 ++ .../6704fd952ad2560e9a7ca070.md | 108 ++ .../6705055b28e3c20fce27a15c.md | 92 ++ .../67050a8becee6d10619fa5ff.md | 92 ++ .../67050fd29a37de112051064b.md | 84 + .../670515561e620a11f2d7308c.md | 113 ++ .../6705177d1d3dbb124955a397.md | 94 ++ .../670518bd8ec6f012af235433.md | 96 ++ .../67051b185149b6130426a9ad.md | 114 ++ .../67053619dd65bd1459449bf0.md | 148 ++ .../670538f8565fb514ddf24b85.md | 92 ++ .../67053b9fe0a27715979bee1b.md | 94 ++ .../67053ea535fe23160e6b29c1.md | 96 ++ .../67053faa1471c916446ad615.md | 116 ++ .../670541bdd115c71686a398c3.md | 84 + .../6705425a4b3df216cb6de9a7.md | 94 ++ .../6705442e6a6ebf1725bc8e1f.md | 142 ++ .../6705573e13b1211820a3ac67.md | 108 ++ .../67055872382df21871200427.md | 84 + .../67055c02b6774a18f8f7186f.md | 98 ++ .../67055d274231051940d0c8ea.md | 94 ++ .../67055f5c9bdb8e1999102827.md | 120 ++ .../6705605c7fb8f619e0068634.md | 114 ++ .../670561a8af3d901a431549fe.md | 117 ++ .../670562a2aa92081a89ba77f6.md | 113 ++ .../6705638c3791881aed186e9d.md | 90 + .../670564e883b7911b4ec31e29.md | 134 ++ .../67056697de96ba1ba012eb44.md | 60 + .../67056b4950144e1cf10c53a6.md | 64 + .../670570ad97d26e1d6bad572d.md | 66 + .../6705725e2814c91dd738e8f4.md | 66 + .../6705742b9616e01e275e5c08.md | 66 + .../67057604ca099f1e7df78e77.md | 66 + .../67057e02da44871f492f6f35.md | 66 + .../670f6ca334a541048d0e9a76.md | 223 +++ .../670f71de33e0be053934a9c3.md | 106 ++ .../670f74145be4b907a1b9c915.md | 92 ++ .../6710bc2f9f242e03ebeccbe9.md | 92 ++ .../6710bf5df20df90498c991a2.md | 106 ++ .../6710c59075616806206fcf44.md | 90 + .../6710c7bd388290075f19552c.md | 106 ++ .../6710e0e2cafeeb09e6cb2d8f.md | 115 ++ .../6710e614f70bd10afb6ca7f7.md | 107 ++ .../6710ef64fecf900ca5296978.md | 119 ++ .../67121364e79da2047818b743.md | 107 ++ .../67121be3d5093805dfdbaa71.md | 108 ++ .../67121d26052fb606bd59705c.md | 115 ++ .../67122e8300d8e90843b04967.md | 110 ++ .../67176c867303f30476f3d126.md | 90 + .../6717756d3483e6060d2cd800.md | 110 ++ .../671775877ee558061e6eebf8.md | 90 + .../671775a360c128062f906b24.md | 106 ++ .../671775bb104def063ffbdaab.md | 82 + .../671775db2ecd44064fdb1f04.md | 94 ++ .../671775f2f55c4c066193a1c1.md | 94 ++ .../6717760c06f5e10671ef0268.md | 94 ++ .../6717b543037e030fc7008aa7.md | 106 ++ .../6717b55fb3b4160fd757b7af.md | 106 ++ .../6717b5754dcaae0fe7bb179b.md | 82 + .../6717b59830cdb50ff9f67623.md | 106 ++ .../6717b5b2b0c1d21009b2b0fd.md | 94 ++ .../6717b5c73e81e8101bed0ea2.md | 96 ++ .../6717b5dc5fd2c0102b2aacec.md | 103 ++ .../6717b5f5be4456103b8ff767.md | 115 ++ .../6717b611f1230c104cbf5d38.md | 90 + .../6717b6a5308335105c51cfe6.md | 106 ++ .../671d19c62da85c0982472a57.md | 68 + .../671d1f358f62320b707af87f.md | 62 + .../671d1f5590e7110b82940771.md | 62 + .../671d1f7ca5f2aa0bb63b9e22.md | 62 + .../671d1f94461c820bc68e3694.md | 62 + .../671d1fab38a4710bd7a6b9c0.md | 62 + .../671d292ef6180210164c33e8.md | 196 +++ .../671f7579f5e0000560fcce55.md | 94 ++ .../671f7592e571ad05716b2c67.md | 90 + .../671f75ab41a1520581f5923a.md | 84 + .../671f75ca1748e8059234fa3d.md | 104 ++ .../671f75e368cbd505a301ca7d.md | 94 ++ .../671f75fea017ea05b31a80c6.md | 94 ++ .../671f761703824805c35c2eda.md | 108 ++ .../671f765a22e32e05d4f5074e.md | 94 ++ .../671f76959b3ca3060eddbe70.md | 103 ++ .../671f76b915c1cf062570fdfc.md | 138 ++ .../671f76d4b7384c063c097048.md | 103 ++ .../671f76eede9f200652954940.md | 91 ++ .../671f7708379ef00668b843d4.md | 119 ++ .../671f7727d2e4240680c126bc.md | 143 ++ .../671f774373f2ce0696fe9621.md | 98 ++ .../671f7767854d6806ac4fb5f4.md | 110 ++ .../671f77bfcd2bc306c2f6f338.md | 114 ++ .../671f77dedcc3b006dcfa9c73.md | 92 ++ .../671f7800b5174406f2d0df76.md | 70 + .../671f78193bb0510709b169b8.md | 62 + .../671f7834b9a323071f7a325e.md | 62 + .../671f7852f3a7e80737cc21d0.md | 62 + .../671f786a18c275074d55d298.md | 62 + .../671f788c2665b807636b31a8.md | 62 + .../6746005e0cf96b701d861793.md | 108 ++ .../674604ef287b978febd50bc9.md | 80 + .../674605049656269110601a79.md | 86 + .../674609a92ccf079d86cd81db.md | 110 ++ .../67460b84234b70a4772d2094.md | 95 ++ .../67461094ba7296b13c1bb045.md | 136 ++ .../674612ab7e6b0ab83408262a.md | 86 + .../674616565854f7c788740cee.md | 110 ++ .../674619b6699a06d064c9717f.md | 94 ++ .../67461c06865e13d715967f1d.md | 89 + .../675060b39af6ab3f14f394e2.md | 142 ++ .../6750651aafcea04c6958a4e5.md | 88 + .../6750697ee8b87f5e665c0712.md | 88 + .../675846ef3e2e50e95e99aded.md | 92 ++ .../6758486d05a8fcf01a20c8b4.md | 115 ++ .../67165185a42acc499c6ada3d.md | 4 +- .../6716531210ee374ae822fe83.md | 2 +- .../671655545e5bfc4c3dfe9871.md | 4 +- .../67165855c3dd824eabc1b474.md | 2 +- .../6716593b4f24da4fac3154bf.md | 4 +- .../6717b20b952c096b3dee0834.md | 6 +- .../6717b6aa217d3d6ed6f83e53.md | 2 +- .../6717ba3d37ec4e73a50878da.md | 4 +- .../6717c0dc8b764279dfc9326b.md | 6 +- .../6717c3557815a17d6369a778.md | 4 +- .../671a383a56179f510b83cc1e.md | 14 +- .../671a3c13a3d6b21a1b0008f7.md | 4 +- .../671a3dde9c50241c6c16e331.md | 4 +- .../671a3ed10fd6e81d06dd4690.md | 4 +- .../671a40b415343c1f26e0c005.md | 2 +- .../671a41b8576531207749bdae.md | 4 +- .../671a438ac97103231787ab5a.md | 4 +- .../671a45f9b4ee3325393f0d0b.md | 4 +- .../671a46fe18ae6a26c76f42f6.md | 8 +- .../671a4aeac046082b1bf6335b.md | 2 +- .../671a4e181afe602d37786dd8.md | 16 +- .../671b71da8e1b963c69b6d011.md | 6 +- .../671b769169e38f3fe57b141c.md | 16 +- .../671b77cf9ef25a416449b109.md | 16 +- .../671b7c10cd0d274552e7b686.md | 18 +- .../671b7dd730712747aa2d9974.md | 8 +- .../671f46b8a64a336294268cf6.md | 2 +- .../671f4766b90543639b60a79d.md | 2 +- .../671f47b9343cd364309aa802.md | 2 +- .../671f4c29b6c10a677571c3e9.md | 2 +- .../671f8ab3f5add66eb16be177.md | 4 +- .../671f8cdb0d31cb710d7ad031.md | 2 +- .../671f8e2ca90546729b1911fa.md | 6 +- .../671f92684454b37660c3f82a.md | 4 +- .../671f9ca66765d781de7213f3.md | 4 +- .../671f9e83b440da8486fdf76e.md | 2 +- .../6720cf38beae8c4f1d7af1c0.md | 6 +- .../6720e69c2152da7b9dad577e.md | 4 +- .../6720f18957013d8de8ebbe91.md | 4 +- .../6720f2d525d22693e3fe2a99.md | 8 +- .../6720f45529e496998cced6b6.md | 4 +- .../6720f45ff33dd69a10d14e9d.md | 4 +- .../67278e07d5544c1a93f7f113.md | 8 +- .../67278fa39133d120afee631c.md | 8 +- .../672830d9aa2e0c2ff2fad7f8.md | 6 +- .../672836d6ec0ae23f4724ccb1.md | 4 +- .../6728378c94eaf541fce8f334.md | 6 +- .../67289c4908f407948ef08a55.md | 4 +- .../6728c369d38d3ea6634c1649.md | 4 +- .../6728c6fad8d9caa92837c75f.md | 2 +- .../672a1c6ca33f8115728e7f79.md | 4 +- .../672a1e2fbec6a61bf477ea49.md | 2 +- .../672a21a4b40ed3279d513888.md | 4 +- .../672a296a309d9c46658c071a.md | 2 +- .../672afc3d3758e25087697611.md | 2 +- .../672afe3809d2a55224868ea5.md | 6 +- .../672b25e2a59e2956bca1a42f.md | 2 +- .../672b33b15bd8bf5b2523772a.md | 6 +- .../672b42dafa37fe61e80a2b40.md | 2 +- .../672b4539b9ab5d645e7dcfb8.md | 6 +- .../672b46def9325065dbc7b29f.md | 4 +- .../672b4812ec997567058875da.md | 4 +- .../672b491aa3c094689007baf1.md | 4 +- .../672cca3d15975a9390545877.md | 2 +- .../672ccc988693199500b4cdfd.md | 4 +- .../672dc928d8765dc9f923ca71.md | 2 +- .../672de8ad97d683d3734ce5cd.md | 2 +- .../672debc75e32a8d6e2593eac.md | 6 +- .../672dec93f008b3d8169568e8.md | 2 +- .../672e0ec28d829ee2b5e909f3.md | 2 +- .../672e16bcc0d877e5d3eb7f4e.md | 2 +- .../672e17e63be5dce6ff5b9189.md | 2 +- .../672e1bb0774f2fea953e9388.md | 6 +- .../672e1c3031816ceb9dccc66a.md | 8 +- .../672e1f1a51e86aed84df7c94.md | 2 +- .../672e1fff03af3aeed5d7a84b.md | 4 +- .../672f4b05585d501f533789b4.md | 4 +- .../672f606201263928a06b2a04.md | 2 +- .../672f630337512b2b62595731.md | 2 +- .../672f63cadac41a2c9b1897a1.md | 2 +- .../672f64ba4f91492e1192b829.md | 2 +- .../672f657580a34f2f78e278e2.md | 10 +- .../673de712f2dc6db0cfe76b31.md | 2 +- .../673df0c78bdd11c7195010cb.md | 6 +- .../66b36358ed4f261d64840c24.md | 2 +- .../6718d2d59337c822ecb697ff.md | 2 +- .../66eaddd04a9e533fba689001.md | 2 +- .../66ec4c8e9878d8441956516f.md | 4 +- .../66a207974c806a19d6607073.md | 2 +- .../67172b43f84bcd2dec238a3d.md | 2 +- .../66def5467aee701733aaf8cc.md | 2 +- .../6690e10ebe2181212abc9652.md | 2 +- .../66da326c02141df538f29ba5.md | 11 +- .../66f3f6eb66ea9dc41cdc30df.md | 210 +++ .../66bba6fff611169359d9d36a.md | 2 +- .../66f26c32ec6f90df01a44f60.md | 2 +- .../67279fe50237291f80eed8b8.md | 857 ++++++++++ .../66f686b8ebdb982fa8e14330.md | 6 +- .../6762ec275cef87635acc4fe3.md | 543 +++++++ .../66b205e6eacba4c4e54ea434.md | 2 +- .../66e45c8140f9fda5c105ae26.md | 2 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 27 +- .../66c07238b01053abaf812065.md | 15 +- .../66bf6bacf178eac7b96d4f5e.md | 2 +- .../673c91f0b934834bc4a3ecc2.md | 1312 ++++++++------- .../66e7ee20b79186306fc12da5.md | 2 +- .../66c06d618d075c7f7f1b890a.md | 2 +- .../66bb6a9c2dd58b73cd759034.md | 2 +- .../66d6a7a3e1aa411e94bf2346.md | 2 +- .../66d75dd0aa65a71600dc669b.md | 4 +- .../66ed41f912d0bb1dc62da5dd.md | 16 +- .../66faac4139dbbd5dd632c860.md | 5 +- .../66c06fad3475cd92421b9ac2.md | 6 +- .../66db57ad34c7089b9b41bfd6.md | 10 +- .../66db529d37ad966480ebb633.md | 2 +- .../6735a7370e0ae93a4577c689.md | 263 +++ .../66f55eac933ff64ce654ca74.md | 142 +- .../673b3d6b7ef7318eef926d5a.md | 278 ++-- .../66a37f37ef5823a313de8c26.md | 2 +- .../66ba762af611169359d9d369.md | 2 +- .../66be24cb4144f955b6bcc550.md | 2 +- .../657bdc55a322aae1eac3838f.md | 4 +- .../66f53dc2c5bd6a11d6c3282f.md | 116 ++ .../66fe4f33a2cc9b33f4d5cd9b.md | 2 +- .../bd7158d8c242eddfaeb5bd13.md | 652 ++++---- .../587d78af367417b2b2512b04.md | 4 +- .../67051431a73f1ca25d9a6f25.md | 4 +- .../66f2836c459cfb16ae76f24f.md | 2 +- .../lab-quiz-game/66f17db06803d11a1bd19a20.md | 7 +- .../66b62d0ad68488dd76228d6c.md | 2 +- .../66bb3e20d3dc5b6d0a21f5dd.md | 2 +- .../668f08ea07b99b1f4a91acab.md | 2 +- .../66e028680eca7d21db7e1aee.md | 2 +- .../673b02b03134b04637bf7055.md | 220 +-- .../66c057041df6394ca796bf33.md | 22 +- .../6716249b5405164036fd0b0d.md | 599 +++++++ .../66c051d13a6a20255a963695.md | 229 +-- .../587d78af367417b2b2512b03.md | 153 +- .../587d78b0367417b2b2512b05.md | 180 +- .../669e2f60e83c011754f711f9.md | 196 ++- .../bd7158d8c442eddfaeb5bd18.md | 117 +- .../669e81368e52b3a5c35a2dc5.md | 7 +- .../673b567e3ba535dda140d278.md | 116 +- .../66f12a88741aeb16b9246c59.md | 728 +++++---- .../672aa8d65995be62ef1c7515.md | 2 +- .../672cf764cf55a70433590def.md | 2 +- .../672aa82768e00d600305afc0.md | 2 +- .../672c35a79fa53e00de9f2a49.md | 36 +- .../672aa8873d4e25618870764f.md | 2 +- .../672cf05c3ad533eabe1e8197.md | 2 +- .../672cf06c8f46f9eb04db9832.md | 2 +- .../672cf07a2b9796eb49719e03.md | 20 +- .../672ac9705b07a64439b73b59.md | 2 +- .../672bb619f0d4538d0528760d.md | 6 +- .../6733aa9b006d29f4d11307a5.md | 20 +- .../6733bec70d86e13522e98a4f.md | 2 +- .../6733becf4b0c353553b9bfa4.md | 2 +- .../6733bee844600f35c05b8264.md | 18 +- .../6733befb703ca6361da3755b.md | 18 +- .../670803abcb3e980233da4768.md | 34 +- .../6708382cf088b216580a9ff1.md | 20 +- .../67083868d5fdcb17bf8c14bd.md | 2 +- .../670838977810401844af6fe0.md | 2 +- .../670838b10ee87a18e5faff62.md | 2 +- .../670838e914096b194b0c51aa.md | 2 +- .../670839051794aa19fcef6dc8.md | 2 +- .../67083952f800051a8a21fcfd.md | 8 +- .../6708396caa00e11b597b3365.md | 16 +- .../672a51e9e4fd8b8552eeb758.md | 2 +- .../672a5310d7e46b8a34d48dfd.md | 2 +- .../672a5326a7606a8a766cbedb.md | 2 +- .../672a533e6041c28ad680eb8f.md | 2 +- .../672a5361ef88158b25fbfba7.md | 2 +- .../672a536f8386288b9ed0a154.md | 8 +- .../672a537f05f3798bd4f57d2d.md | 2 +- .../672a538c029f9e8c1687460e.md | 2 +- .../672a539b887ec68c593cdc4b.md | 2 +- .../672a53ae8f1ad28c8a1ed0f0.md | 2 +- .../672a53cf67140d8cd85d4b0f.md | 2 +- .../672a549231b8728f7171ed9d.md | 2 +- .../672a54a6675c168faa84252d.md | 2 +- .../672a54bc58319c8fe6f78ad4.md | 2 +- .../672a54ce90c19e9038f481d7.md | 2 +- .../672a54dff9dc439089f1a219.md | 2 +- .../672a54f29d783890d1f94740.md | 2 +- .../672a5507d857a891139abc7f.md | 2 +- .../672a551975938a916c74802c.md | 2 +- .../672a55b5c0c14493328fe36e.md | 2 +- .../672a55dd1d86bc939606e204.md | 2 +- .../672a55eb7791559421ff0cd3.md | 2 +- .../672a55fbc2d95a9453151caf.md | 2 +- .../672985445d7da807c6b4f406.md | 12 +- .../6729959bf9c8e835f46b3f78.md | 16 +- .../672995c9e6f69436dbcccc79.md | 24 +- .../672995d673bd3237200b9e7c.md | 2 +- .../672995f16ed97837b365a9f6.md | 6 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../6734e3a9cc78faaf4248d335.md | 38 +- .../6734e867bbf41cc5b11648c4.md | 24 +- .../6734e86f590727c5e7e9ec5e.md | 22 +- .../6734e879c78ee6c61db25b90.md | 109 +- .../6734e88cc46e6dc679420040.md | 55 +- .../674ba6876f7ada867135bb95.md | 98 +- .../672d26385dbe73203c4dac81.md | 10 +- .../672d496eca926b5df8176a67.md | 2 +- .../672d497cb1a1675e47bf7ea1.md | 6 +- .../672d49959621885e9d3e672c.md | 4 +- .../672d49a5cf43945ee09e5fba.md | 2 +- .../672d49b2fb76df5f1d6117af.md | 2 +- .../672d49c4e899345f5b33c24c.md | 8 +- .../672d49d93b54b85faa4dbad7.md | 2 +- .../672d49e65a1c855fe7bb3fdb.md | 4 +- .../672aa6441bcd3758e9f52ae0.md | 36 - .../67329fbcfaf5ff5cdaa38a42.md | 2 +- .../67335f45489c5a11b71d0ed5.md | 2 +- .../6733b072bd8f5b06ccdbd9e2.md | 2 +- .../67340798c2c1776709d8a5fe.md | 2 +- .../673407a223891b6734563c89.md | 2 +- .../673407be6af21d6766ed4b96.md | 2 +- .../673407ca21117a67cf9521ca.md | 2 +- .../673407d56c3dce67fa97969b.md | 6 +- .../673407e02bcf0d682b9a49a9.md | 2 +- .../673407eb10ca9d68634e81d9.md | 2 +- .../672d26917a8ab3220c038a42.md | 2 +- .../673282bea35dbf129efb63d6.md | 4 +- .../672aa578a2129554d4675049.md | 2 +- .../672ab82c1a9bbd0e3aabc39d.md | 2 +- .../672ab83c4297910eade53c2e.md | 2 +- .../672ab849aa1ef70eefd29364.md | 6 +- .../672ab8573f32480f192aaae1.md | 2 +- .../67329f9e9eb84e5c6a5e4366.md | 2 +- .../6732c68f4520d160584a6fd2.md | 2 +- .../6732c69d82814160951b1aa7.md | 2 +- .../6732c6ab21031b60d2b0c999.md | 18 +- .../6732c6ba2ea42b610b9f9ce1.md | 2 +- .../6732c6c72d3738614e1230a2.md | 4 +- .../6732c6d4dec34c61850a1276.md | 2 +- .../6732c6e281c14a61c4858361.md | 2 +- .../6733aae9d25004f60d1e86f2.md | 2 +- .../6733d3a33abdd27cd562bdf2.md | 2 +- .../6733d3ab69e94b7df7ee91b0.md | 2 +- .../6733b0451d6be0065430b418.md | 67 +- .../6734061fe116df617a564a37.md | 48 +- .../6733affc29df1304e2c97e88.md | 2 +- .../673403ca2bb16658309e3632.md | 2 +- .../673403d2aa52d8586a14a269.md | 2 +- .../673403dbf5c9835898632c84.md | 2 +- .../672aa86da9937560d3dfe3d6.md | 2 +- .../672c3a84fb8d4613776cc99e.md | 8 +- .../672c3a8fac7c5613b4bb75de.md | 4 +- .../672c3a9d32c56113fcaedf24.md | 2 +- .../672c3aa9bc3a481425cb52b3.md | 2 +- .../67329fd6ad99c75d4a4b74e4.md | 2 +- .../6733b02d1e556005a544c5e3.md | 136 +- .../6732a06aed1b095f57b0bb82.md | 2 +- .../67338e93b75977a344cf6d40.md | 2 +- .../672bafe4ef812b78696b0e27.md | 2 +- .../672baffc684be178dd02fa06.md | 2 +- .../672bb009952c7a7904a750cb.md | 12 +- .../672baad7bbc4f86762ca173e.md | 16 +- .../6734ddabad59e593a49afafe.md | 2 +- .../6734e2c5780912abd874e79c.md | 2 +- .../6734e2dcb965e5ac0ea38e0f.md | 104 +- .../6763500bd5a85d5898cc21a9.md | 121 ++ .../672acc03c257524d6a5151e8.md | 18 +- .../672acc100d59d24da7b4e09c.md | 7 - .../672acc3f6f3e3c4e31ec3e12.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../6708143cab2b583ecd3324f5.md | 121 ++ .../67329f508a6ec45b046700b3.md | 40 +- .../6733ab12b60bd7f6b2b0b0c0.md | 18 +- .../6733d8203da84a08a0f5eab4.md | 26 +- .../6733d829d983c008d2db41a1.md | 20 +- .../6733d83630e76f08ff49e6dc.md | 24 +- .../6733d852175df50937f06061.md | 56 +- .../6733d8606fb893099e3d0df3.md | 18 +- .../672b98be592cfb451f651451.md | 2 +- .../672b98cd77b6b7456b6ef2de.md | 8 +- .../672b98db3bcdd545ab3b3c73.md | 16 +- .../6733ab64775d35f78f5238fe.md | 84 +- .../6733ff4a9319c8486750886c.md | 72 +- .../6733ff5814129c48b4fca88e.md | 78 +- .../6733ff6f02dde548ebe4a6d5.md | 62 +- .../6733ff8d06376149474a0c0d.md | 26 +- .../6733ff9d2fb9c449af68ad99.md | 47 +- .../6733ffacd0ad1e49ec2af051.md | 38 +- .../6733ffb59c62ee4a23522efe.md | 84 +- .../6733ffc7353af34a61ed683a.md | 22 +- .../672d45583fd75a504136fbbb.md | 16 +- .../672d266034b5242126271995.md | 2 +- .../67326c0d7bef01c539120766.md | 2 +- .../67326c15b3b2f0c5827927cc.md | 6 +- .../67326c1fdaf9c0c5ad1a2589.md | 4 +- .../67326c29dcd98fc5ecc49779.md | 25 +- .../67326c3392068ec6184a0c95.md | 2 +- .../67326c3c3ab931c644cea05b.md | 18 +- .../672aa8ac4631d1623ec5cd86.md | 2 +- .../673226732b19aa1cacd0a75c.md | 4 +- .../6732267ecab2151ced471cd4.md | 2 +- .../6732268d05c3661d32a0fee8.md | 2 +- .../6732269a7aa2ca1d6b6574fe.md | 2 +- .../673226a62eb2121da41a3d68.md | 2 +- .../673226afcd33991dd751937a.md | 2 +- .../673226b97d4a731e0577ae93.md | 18 +- .../672aa7e03c2e365e906e5733.md | 2 +- .../672bcc8ccc976fd791610f43.md | 2 +- .../672bcc9c4a6dd6d7dd3e6357.md | 2 +- .../672bccae6e556cd81cef6af2.md | 2 +- .../672bccc8ea33bad87abb3c56.md | 2 +- .../672bccdb8f1823d8c60f914c.md | 2 +- .../672bccebe1fc82d911c3f078.md | 2 +- .../672aa8985acb7361e656f94c.md | 16 +- .../672cf3ca326da9f63683e236.md | 2 +- .../6734e3ceee2da4b0301719b7.md | 128 +- .../673500abfe36cd015b67b1b7.md | 63 +- .../673500b41af8500191febedc.md | 72 +- .../673500bfe1f41601c1ddb1a2.md | 73 +- .../672d264645e289208e562f10.md | 2 +- .../6732518a8627876f4fcd18a4.md | 6 +- .../6733aafb9c0802f66cc1e056.md | 6 +- .../6733d608654c17868e01c0a2.md | 2 +- .../672ac37104dc2530a769e6a4.md | 2 +- .../6729974ec29be33cb00eb54d.md | 12 +- .../672d269da46786225e3fe3fd.md | 2 +- .../673284d5e52ef81a2169b097.md | 4 +- .../673284e7244c0c1a649121b9.md | 4 +- .../67329ffd75010f5ddeb4ea13.md | 2 +- .../67336296a3c1591da81856c2.md | 2 +- .../673362a34edda41dedf87623.md | 4 +- .../673362b3f763ae1e38e17df7.md | 2 +- .../673362be2f70c21e65bc5459.md | 2 +- .../673362cbb475e21eab726506.md | 4 +- .../673362d7f94d551edb532d24.md | 2 +- .../673362e43d57b51f1ad2d466.md | 2 +- .../672a4fa7d335bc7cfb63a392.md | 22 +- .../6716744f7245947a3dd60009.md | 2 +- .../671682dd88e461a8e2620f38.md | 2 +- .../6716830dbaf95da9564f2e3b.md | 8 +- .../67168323932391a9ee0d3a9e.md | 8 +- .../67329f7f3d1bd75c17896c66.md | 2 +- .../6732c04638420641dcca2e6e.md | 2 +- .../6732c05595ca7d422b9e55ff.md | 2 +- .../6732c06654ea3442724284fe.md | 2 +- .../6732c07238355642a9781dfb.md | 2 +- .../6733ab269b378bf724c9ac71.md | 2 +- .../6733dd694f91d61a5272b4ac.md | 2 +- .../6716743531fc9a797351c21e.md | 6 +- .../67167835def3588873f339c6.md | 12 +- .../6716823876aa22a68ba3e2ec.md | 28 +- .../6716825aff3434a71fdc3e99.md | 18 +- .../67168278ac6df6a799555db5.md | 6 +- .../671682b3983489a819507553.md | 6 +- .../672d26809d388621ad1ecd43.md | 2 +- .../6732808f3221720adc833e81.md | 4 +- .../673280a1c29d0a0b17316e56.md | 2 +- .../672d266e014ef8216df987d2.md | 2 +- .../673271884bf678d8b9c64f56.md | 72 +- .../67327195e77b1bd90bdd49d7.md | 64 +- .../6732719e2e3ad4d947410b65.md | 2 +- .../673271a8998ddfd97578d095.md | 4 +- .../673271b4213033d9b661c70e.md | 2 +- .../673271c7581a27d9dd78f6d6.md | 4 +- .../673271dffbc34fda31da9515.md | 2 +- .../673271e8e3d43bda89f723b3.md | 2 +- .../673271f39f124ddac28866d5.md | 2 +- .../673271fd11d063daf0cf8d20.md | 4 +- .../6732720e95f6a0db526a2e4d.md | 2 +- .../67327217e70ee0db7913b255.md | 4 +- .../67329f737126b75bcb949e13.md | 2 +- .../6732b721eb98f224868b44a6.md | 2 +- .../6732b72961f94324bd6390de.md | 2 +- .../6732b73509f71f24ef05e86e.md | 2 +- .../6732b73d25cc01251b778043.md | 2 +- .../6732b749b8aad125523dcda5.md | 2 +- .../6732b758194c97257d23fc72.md | 2 +- .../6732b76c03f7d825c7fc74ee.md | 2 +- .../6732b77adf9de12617a2dbb3.md | 2 +- .../6732b788046862264eeb1c39.md | 2 +- .../6732b79c6aa77826855a3f11.md | 2 +- .../6733aad43b3ebff588a26fb5.md | 2 +- .../6733c5ba834ded4bb067e67c.md | 4 +- .../6733c5c549775c4be710237c.md | 4 +- .../6733c5d0048bb74c18431296.md | 112 +- .../6733c5dc74176e4c496d09e6.md | 68 +- .../6733c5e54e3a154c8078ed48.md | 96 +- .../6733c5f20cc9584cada942a4.md | 115 +- .../672d2654f78cbf20e0ba4501.md | 18 +- .../673263d58da27ea7809963bf.md | 2 +- .../673263df0eb568a7b450f2fc.md | 2 +- .../673263e80dd43da7df3ae565.md | 4 +- .../673263f4a5899da8124542fd.md | 2 +- .../6732a0472f52015e511f8e58.md | 2 +- .../67336894ae148431a870694d.md | 2 +- .../6733689f9f31dd31e7d9c789.md | 2 +- .../673368b1cf26253212a3cfb2.md | 2 +- .../673368c0161e6b326a7e03f0.md | 2 +- .../673368ccf52205329b729378.md | 2 +- .../673368d97e8ce232cdcd6b68.md | 2 +- .../673368e7bd043f331919514d.md | 4 +- .../673368f272706633516e4873.md | 2 +- .../673368fbe12a2b337645053d.md | 2 +- .../673369067f824d33a90a0534.md | 2 +- .../673369101e5c4a33db0e8a02.md | 2 +- .../6733691d88e3053414689276.md | 2 +- .../6733692ffe1da034469f7917.md | 10 +- .../6733693bfce9a43489a355db.md | 2 +- .../6733694805a85d34ced08a9b.md | 2 +- .../67336956340e8a34fbd5d9f3.md | 2 +- .../6733696567d2273540aa6033.md | 2 +- .../6733697661182d357fc643d2.md | 2 +- .../673369829e232835c2732656.md | 2 +- .../66ed8fa2f45ce3ece4053eab.md | 18 +- .../66df3b712c41c499e9d31e5b.md | 50 +- .../66ed8fd0f45ce3ece4053eaf.md | 4 +- .../66ed8fd7f45ce3ece4053eb0.md | 36 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed9009f45ce3ece4053eb7.md | 68 +- .../66ed9010f45ce3ece4053eb8.md | 8 +- .../66edd10913f078e7669eca81.md | 2 +- .../66ed901ff45ce3ece4053eba.md | 40 +- .../66edd3403d7077eece6dc4b6.md | 2 +- .../quiz-git/66f1b06a5a5d10cc100af620.md | 8 +- .../66ed9026f45ce3ece4053ebb.md | 4 +- .../66ed902df45ce3ece4053ebc.md | 244 +-- .../67358ac128957c865dcf3ddf.md | 2 +- .../66edcd0ecb4b25dc64a34804.md | 18 +- .../66edd3011f18f4ee1bd9d28b.md | 4 +- .../66edc31c44f1b9c1d5c5ebca.md | 24 +- .../66edc25ae5ea80bf6f785552.md | 94 +- .../66ed903cf45ce3ece4053ebe.md | 4 +- .../66ed9043f45ce3ece4053ebf.md | 12 +- .../671a887a7e62c75e9ab1ee4a.md | 20 +- .../67072fc183c7ca6c588feb4d.md | 9 +- .../671a955b74ab5588735800d1.md | 2 +- .../671a88d636cebc5fbd407b78.md | 17 +- .../671a940c69cdee833d4cc312.md | 4 +- .../671a907bad4538752765f2ff.md | 2 +- .../review-css/671a9a0a140c2b9d6a75629f.md | 10 +- .../6723cd54fc196dbd053f9dfb.md | 4 +- .../6723cc7a8e7aa3b9befd4bac.md | 2 +- .../6723ce555ff2dfc0cc04b69a.md | 4 +- .../671a87a39b88245a579c2271.md | 38 +- .../review-html/671a883163d5ab5d47145880.md | 151 +- .../6723c66f623701a3cdf72130.md | 2 +- .../6723cf27c6e9a0c3f3041385.md | 10 +- .../6723cc0ca05ce9b87a319ceb.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723c463e51a2d9b747d7529.md | 2 +- .../6723cdfa4ae237bf6b7e32eb.md | 8 +- .../6723c1946e4cd7909a836bb4.md | 2 +- .../6723be264695fb7e619fe1fa.md | 6 +- .../6723d3cfdd0717d3f1bf27e3.md | 46 +- .../6723d0ac516099c902394e8b.md | 4 +- .../67487e141bb6a7140a352e12.md | 2 +- .../671a83934b61f64cefe87a61.md | 12 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5f35e5c4321f818cdc4bed30.md | 2 +- .../66cc0a9e06e00b75d6782be9.md | 2 +- .../63b61490e633a22b4593e62f.md | 2 +- .../63c9e8fe3a6f022a05a04675.md | 198 ++- .../660404511dbf1b90eb23b617.md | 4 +- .../6604080b66ff6e942d8225b1.md | 4 +- .../66040ae710de0e96c26a0201.md | 2 +- .../646c48df8674cf2b91020ecc.md | 2 +- .../646ceb843412c74edee27a79.md | 16 +- .../646cf2249f02ca5233d9af7c.md | 8 +- .../6676a8b01e56ec1a1e07c202.md | 16 +- .../5dc174fcf86c76b9248c6eb2.md | 8 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 3 +- .../671141feba228a35cefba82d.md | 2 +- .../61764c602bee6974e7790f35.md | 2 +- .../617bbb6b97a83f6d1f7d6e38.md | 2 +- .../61a49d15bdbb5e57cc6fd280.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../672b4434dd6d6a1edc405419.md | 2 +- .../6733319f1d586b1923e029e3.md | 6 +- .../673332a6b63f9f1e1f81ba9b.md | 6 +- .../673337337f794d3025ded433.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66a9401c9d660d6bb15993e2.md | 2 +- .../67116d7584d0b469b14579bf.md | 2 +- .../67116d7584d0b469b14579c1.md | 50 +- .../67116d7584d0b469b14579c2.md | 54 +- .../67116d7584d0b469b14579c3.md | 29 +- .../67116d7584d0b469b14579c4.md | 32 +- .../66c8ba975ee7230e29f6c4ad.md | 4 +- .../67471d60ce8e6268fe9e12f6.md | 604 +++++++ .../6747237371f13173c9f6c27e.md | 591 +++++++ .../674724ff8af92f7733e6d980.md | 585 +++++++ .../6747257cdf5412781e138bb2.md | 619 +++++++ .../6747274264e8a5799fb3e0b5.md | 626 +++++++ .../674728eda5829d7b4c360643.md | 629 +++++++ .../6747299cbed5107c6a00d64c.md | 656 ++++++++ .../67472ab9f570797dbb01568a.md | 656 ++++++++ .../67472eef7b4b7ba77b50929b.md | 664 ++++++++ .../67473042e8751eac62fafc82.md | 661 ++++++++ .../674735e3b28351b8b8f05807.md | 709 ++++++++ .../674757668684f9deaa6ac3c0.md | 676 ++++++++ .../674836ba82e9057dfee1849c.md | 690 ++++++++ .../674850b437668dd08edddbe2.md | 687 ++++++++ .../6748567229cc8fe3f706de02.md | 698 ++++++++ .../6748bab9827a356c39559214.md | 707 ++++++++ .../674dda6c6ae8bb538678e125.md | 671 ++++++++ .../674de4ee2039496c30a31b71.md | 693 ++++++++ .../674e2e4e04eb381ccfe92e15.md | 708 ++++++++ .../674e305b7bda7c1f4f37a930.md | 719 ++++++++ .../674e316e3892d32108ad2bb9.md | 692 ++++++++ .../674e34c42ee8f1237e4623cc.md | 712 ++++++++ .../674f489bf617af2bea9b92b5.md | 729 +++++++++ .../674f50cce486fb404751a29c.md | 729 +++++++++ .../674f534fa181f64a789ffcf9.md | 787 +++++++++ .../67503cecd563135d4f27b38e.md | 729 +++++++++ .../675057ce9acd418619127da4.md | 746 +++++++++ .../67505d3a32d45997d2af4c0f.md | 770 +++++++++ .../675069b67b8267b36fa550b3.md | 738 +++++++++ .../6750712ee950facad5edc203.md | 727 +++++++++ .../67516a431252ed30832fa7c6.md | 727 +++++++++ .../67516ca9b7fe6636208c5ab5.md | 726 +++++++++ .../67516e888477083c31614dc7.md | 743 +++++++++ .../67517ef2fae05b65108212db.md | 754 +++++++++ .../6751d5d32e58d065652e26a5.md | 747 +++++++++ .../6751e1c117350b7d3f356e1b.md | 749 +++++++++ .../6752c62efa90554c01415e7b.md | 768 +++++++++ .../6752ecd811c96d5dc33ae853.md | 760 +++++++++ .../6752edba757ff96404faf9e9.md | 769 +++++++++ .../675304e7937e62902e08a3ab.md | 764 +++++++++ .../675309b2795c2a9ae03b8812.md | 1442 +++++++++++++++++ .../67532282ab9b95d7083617ee.md | 795 +++++++++ .../675340b809683f45cae96539.md | 736 +++++++++ .../6757f2b25418da4f73e29eb6.md | 760 +++++++++ .../6758a61fc7e949923716ec41.md | 690 ++++++++ .../67594f37fa0c684835f1b064.md | 696 ++++++++ .../673339d96c56d36e963e888e.md | 2 +- .../6733b5632fb854bc6c58dc0d.md | 2 +- .../6733b5e6f210c1bd1afdf8b3.md | 2 +- .../67349ba230cff237c0f2bdf2.md | 2 +- .../67349d6e726b2c3c7f7301e8.md | 2 +- .../6734a13a29acdf47f2b8e161.md | 2 +- .../6734a2385c52c54d916a8b86.md | 2 +- .../6734a606e5968a5a19b77171.md | 4 +- .../6734a772196245601e4b80e0.md | 2 +- .../6734ab61e916486c80c490d1.md | 2 +- .../6734b36f1a3ce17e73327f24.md | 2 +- .../6734bbc0bd741598f942352e.md | 2 +- .../6734c10a327760a665b7d5b9.md | 2 +- .../6734eee1f9498cd90f9ae340.md | 2 +- .../6734f0ae9d1cf4dfd43a7805.md | 2 +- .../6734f6290ebd5cfbc75996af.md | 2 +- .../6734fa225c6667121e589f7e.md | 2 +- .../67350acfd2006f2777295b96.md | 2 +- .../67351225403acd3d6f70ed6d.md | 2 +- .../6735145b0ee741461bdbaa49.md | 2 +- .../673521668be7905059b2d555.md | 2 +- .../673529d08c0d9c5a4193a465.md | 2 +- .../673762590f4bc1771c3a1e97.md | 2 +- .../673788448f390305b34aa814.md | 2 +- .../6737a1a073a0d14c6544d301.md | 2 +- .../6737a5058ff3015829ce3265.md | 2 +- .../6737a95d5b431860f96ca7bb.md | 2 +- .../6737ac8e4fe7ae6b91c806bd.md | 2 +- .../6737c6d5d66b5cc3dac09c7b.md | 2 +- .../6738a5c704680355e29e077c.md | 2 +- .../6738a8035efec45acd8fdbf9.md | 2 +- .../6738ad2fd11775752d23ddc2.md | 2 +- .../67353fb237ffbd01af3be1cc.md | 36 +- .../673540f6e49ae33d6a235c20.md | 8 +- .../673542088e459b6def5d6e56.md | 8 +- .../6735424ecfeb557d81dcc9d1.md | 18 +- .../673543d867b44ac7580610a2.md | 44 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- .../6740495ba48aa94e5667b436.md | 1 + .../6745d9df333efe2543a1f457.md | 4 +- .../674ef11f75254548672d998c.md | 125 ++ .../674ef2d357676e50e4691658.md | 116 ++ .../674ef2d357676e50e4691659.md | 166 ++ .../674ef2d357676e50e469165a.md | 117 ++ .../674ef2d357676e50e469165b.md | 126 ++ .../674ef2d357676e50e469165c.md | 144 ++ .../674ef2d357676e50e469165d.md | 265 +++ .../66cf33305293e1b35c1aef7f.md | 2 +- .../66e2d680e129e1423116a541.md | 2 +- .../66e2e5d890ac8a54c9d703bd.md | 2 +- .../66e2eab8a5638f57b637b7cc.md | 2 +- .../66e2f06b191e305c00574e4d.md | 10 +- .../66c742d045c9fc2e09fa64b1.md | 1 + .../66c748ffdfbe4f2ede268be2.md | 6 +- .../671fafbae959c048d82bac8d.md | 6 +- .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64ff04cc33779427a6412449.md | 2 +- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../657f456223b8c1187b461987.md | 3 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../671141feba228a35cefba82d.md | 2 +- .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 2 +- .../67278e07d5544c1a93f7f113.md | 8 +- .../67278fa39133d120afee631c.md | 8 +- .../672836d6ec0ae23f4724ccb1.md | 2 +- .../6728378c94eaf541fce8f334.md | 2 +- .../67289c4908f407948ef08a55.md | 2 +- .../66ec4c8e9878d8441956516f.md | 2 +- .../66da326c02141df538f29ba5.md | 9 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 25 +- .../66ed41f912d0bb1dc62da5dd.md | 14 +- .../66f55eac933ff64ce654ca74.md | 140 +- .../657bdc55a322aae1eac3838f.md | 2 +- .../67051431a73f1ca25d9a6f25.md | 2 +- .../669e2f60e83c011754f711f9.md | 18 +- .../669e81368e52b3a5c35a2dc5.md | 5 +- .../670803abcb3e980233da4768.md | 44 +- .../6708382cf088b216580a9ff1.md | 14 +- .../67083952f800051a8a21fcfd.md | 6 +- .../6708396caa00e11b597b3365.md | 14 +- .../672985445d7da807c6b4f406.md | 12 +- .../672995f16ed97837b365a9f6.md | 6 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../6708143cab2b583ecd3324f5.md | 121 ++ .../6729974ec29be33cb00eb54d.md | 12 +- .../6716830dbaf95da9564f2e3b.md | 6 +- .../67168323932391a9ee0d3a9e.md | 6 +- .../6716743531fc9a797351c21e.md | 6 +- .../67167835def3588873f339c6.md | 12 +- .../6716823876aa22a68ba3e2ec.md | 28 +- .../6716825aff3434a71fdc3e99.md | 18 +- .../67168278ac6df6a799555db5.md | 6 +- .../671682b3983489a819507553.md | 6 +- .../66ed8fa2f45ce3ece4053eab.md | 8 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed901ff45ce3ece4053eba.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723d3cfdd0717d3f1bf27e3.md | 2 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../66cc0a9e06e00b75d6782be9.md | 2 +- .../671141feba228a35cefba82d.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../672b4434dd6d6a1edc405419.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- ...thms-and-data-structures-certification.yml | 2 +- ...s-and-data-structures-certification-v8.yml | 2 +- .../add-a-negative-margin-to-an-element.md | 4 +- .../add-borders-around-your-elements.md | 25 +- ...rent-margins-to-each-side-of-an-element.md | 16 +- ...rent-padding-to-each-side-of-an-element.md | 16 +- .../add-rounded-corners-with-border-radius.md | 19 +- .../adjust-the-margin-of-an-element.md | 4 +- .../adjust-the-padding-of-an-element.md | 4 +- ...tach-a-fallback-value-to-a-css-variable.md | 12 +- .../change-a-variable-for-a-specific-area.md | 8 +- .../basic-css/change-the-color-of-text.md | 6 +- .../change-the-font-size-of-an-element.md | 2 +- .../basic-css/create-a-custom-css-variable.md | 4 +- ...ive-a-background-color-to-a-div-element.md | 8 +- .../basic-css/import-a-google-font.md | 24 +- ...ve-compatibility-with-browser-fallbacks.md | 10 +- .../basic-css/inherit-css-variables.md | 5 +- .../inherit-styles-from-the-body-element.md | 44 +- ...ke-circular-images-with-a-border-radius.md | 6 +- ...ide-all-other-styles-by-using-important.md | 18 +- ...s-declarations-by-styling-id-attributes.md | 16 +- ...e-class-declarations-with-inline-styles.md | 12 +- .../override-styles-in-subsequent-css.md | 10 +- .../prioritize-one-style-over-another.md | 8 +- .../set-the-font-family-of-an-element.md | 9 +- .../basic-css/set-the-id-of-an-element.md | 2 +- .../basic-css/size-your-images.md | 15 +- .../specify-how-fonts-should-degrade.md | 18 +- ...tyle-multiple-elements-with-a-css-class.md | 24 +- .../basic-css/style-the-html-body-element.md | 13 +- ...derstand-absolute-versus-relative-units.md | 15 +- .../use-a-css-class-to-style-an-element.md | 10 +- .../basic-css/use-a-custom-css-variable.md | 24 +- .../use-a-media-query-to-change-a-variable.md | 12 +- .../basic-css/use-abbreviated-hex-code.md | 24 +- ...use-an-id-attribute-to-style-an-element.md | 15 +- ...e-attribute-selectors-to-style-elements.md | 40 +- ...ion-to-specify-the-margin-of-an-element.md | 23 +- ...on-to-specify-the-padding-of-an-element.md | 23 +- .../use-css-selectors-to-style-elements.md | 25 +- ...bles-to-change-several-elements-at-once.md | 12 +- .../use-hex-code-for-specific-colors.md | 10 +- .../basic-css/use-hex-code-to-mix-colors.md | 25 +- .../basic-css/use-rgb-to-mix-colors.md | 40 +- .../use-rgb-values-to-color-elements.md | 6 +- .../add-a-submit-button-to-a-form.md | 21 +- .../add-images-to-your-website.md | 15 +- .../add-placeholder-text-to-a-text-field.md | 17 +- ...radio-buttons-and-checkboxes-by-default.md | 4 +- .../basic-html-and-html5/comment-out-html.md | 16 +- .../create-a-bulleted-unordered-list.md | 22 +- .../create-a-form-element.md | 18 +- .../create-a-set-of-checkboxes.md | 18 +- .../create-a-set-of-radio-buttons.md | 33 +- .../create-a-text-field.md | 2 +- .../create-an-ordered-list.md | 42 +- ...declare-the-doctype-of-an-html-document.md | 6 +- ...e-the-head-and-body-of-an-html-document.md | 14 +- .../delete-html-elements.md | 7 +- ...fill-in-the-blank-with-placeholder-text.md | 2 +- .../headline-with-the-h2-element.md | 14 +- .../inform-with-the-paragraph-element.md | 10 +- .../introduction-to-html5-elements.md | 20 +- ...-to-external-pages-with-anchor-elements.md | 10 +- ...sections-of-a-page-with-anchor-elements.md | 20 +- .../make-dead-links-using-the-hash-symbol.md | 2 +- ...st-an-anchor-element-within-a-paragraph.md | 51 +- ...ny-elements-within-a-single-div-element.md | 18 +- .../say-hello-to-html-elements.md | 2 +- .../turn-an-image-into-a-link.md | 16 +- .../basic-html-and-html5/uncomment-html.md | 10 +- .../use-html5-to-require-a-field.md | 2 +- ...ibute-with-radio-buttons-and-checkboxes.md | 33 +- ...add-flex-superpowers-to-the-tweet-embed.md | 74 +- ...elements-using-the-align-items-property.md | 4 +- ...ents-using-the-justify-content-property.md | 5 +- ...y-to-create-a-column-in-the-tweet-embed.md | 63 +- ...perty-to-create-rows-in-the-tweet-embed.md | 57 +- .../use-display-flex-to-position-two-boxes.md | 4 +- ...align-items-property-in-the-tweet-embed.md | 63 +- .../use-the-align-self-property.md | 8 +- ...erty-to-set-the-initial-size-of-an-item.md | 12 +- ...lex-direction-property-to-make-a-column.md | 4 +- ...e-flex-direction-property-to-make-a-row.md | 4 +- ...-the-flex-grow-property-to-expand-items.md | 8 +- .../use-the-flex-shorthand-property.md | 28 +- ...he-flex-shrink-property-to-shrink-items.md | 8 +- ...x-wrap-property-to-wrap-a-row-or-column.md | 4 +- ...ify-content-property-in-the-tweet-embed.md | 66 +- ...e-the-order-property-to-rearrange-items.md | 8 +- .../add-columns-with-grid-template-columns.md | 31 +- .../css-grid/add-gaps-faster-with-grid-gap.md | 33 +- .../add-rows-with-grid-template-rows.md | 33 +- ...-items-horizontally-using-justify-items.md | 33 +- ...-all-items-vertically-using-align-items.md | 31 +- ...an-item-horizontally-using-justify-self.md | 27 +- ...ign-an-item-vertically-using-align-self.md | 24 +- ...eate-a-column-gap-using-grid-column-gap.md | 33 +- .../create-a-row-gap-using-grid-row-gap.md | 31 +- ...create-flexible-layouts-using-auto-fill.md | 47 +- .../create-flexible-layouts-using-auto-fit.md | 36 +- .../css-grid/create-grids-within-grids.md | 23 +- .../css-grid/create-your-first-css-grid.md | 28 +- .../divide-the-grid-into-an-area-template.md | 67 +- ...mit-item-size-using-the-minmax-function.md | 33 +- ...grid-areas-using-the-grid-area-property.md | 35 +- ...ce-repetition-using-the-repeat-function.md | 33 +- ...-to-change-the-size-of-columns-and-rows.md | 33 +- ...area-without-creating-an-areas-template.md | 36 +- .../use-grid-column-to-control-spacing.md | 47 +- .../use-grid-row-to-control-spacing.md | 45 +- ...ia-queries-to-create-responsive-layouts.md | 65 +- .../create-a-media-query.md | 45 +- .../make-an-image-responsive.md | 42 +- .../make-typography-responsive.md | 40 +- ...na-image-for-higher-resolution-displays.md | 31 +- .../basic-algorithm-scripting/boo-who.md | 22 +- .../chunky-monkey.md | 4 +- .../confirm-the-ending.md | 33 +- .../convert-celsius-to-fahrenheit.md | 14 +- .../factorialize-a-number.md | 10 +- .../falsy-bouncer.md | 6 +- .../find-the-longest-word-in-a-string.md | 29 +- .../basic-algorithm-scripting/mutations.md | 38 +- .../repeat-a-string-repeat-a-string.md | 24 +- .../return-largest-numbers-in-arrays.md | 18 +- .../reverse-a-string.md | 15 +- .../slice-and-splice.md | 4 +- .../title-case-a-sentence.md | 17 +- .../truncate-a-string.md | 30 +- .../where-do-i-belong.md | 54 +- .../build-a-25-5-clock.md | 2 +- .../build-a-drum-machine.md | 2 +- .../build-a-javascript-calculator.md | 2 +- .../build-a-markdown-previewer.md | 2 +- .../build-a-random-quote-machine.md | 2 +- ...t-json-with-the-javascript-fetch-method.md | 2 + .../exercise-tracker.md | 64 +- .../build-a-budget-app-project/budget-app.md | 352 ++++ .../657f456223b8c1187b461987.md | 3 +- .../build-a-personal-portfolio-webpage.md | 71 +- .../build-a-survey-form.md | 238 +-- .../build-a-technical-documentation-page.md | 168 +- .../build-a-tribute-page.md | 102 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5dc174fcf86c76b9248c6eb2.md | 8 +- .../671141feba228a35cefba82d.md | 2 +- .../646c48df8674cf2b91020ecc.md | 2 +- .../646ceb843412c74edee27a79.md | 16 +- .../build-a-cash-register.md | 4 +- .../build-a-palindrome-checker.md | 2 +- .../build-a-pokemon-search-app.md | 4 +- .../build-a-telephone-number-validator.md | 2 +- .../6352fcb156834128001ea945.md | 6 + .../65aac0678d51b3f1a0cb8061.md | 2 +- .../644b6d20eabd7e0149383254.md | 2 +- .../660ae8ad1475698da3c3c37d.md | 37 + .../660aea8782242e8f4bcc42d8.md | 39 + .../63c9e8fe3a6f022a05a04675.md | 162 +- .../64496d80bc174a158c973080.md | 51 +- .../64cb472593e3be6d10a7c13b.md | 4 +- .../64cb480723790d6d727b8ef5.md | 4 +- .../660f280dda5040f707c76b4a.md | 6 + .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64ff04cc33779427a6412449.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../657e230500602983e01fff6e.md | 42 +- ...lem-462-permutation-of-3-smooth-numbers.md | 4 +- .../657b05367b59300bcb5f18ef.md | 5 +- .../657b068e28a3bd135ced0042.md | 8 +- .../657b190c4e736f5c4005b132.md | 2 +- .../657b1ae0c2fb4c64071ade7a.md | 2 +- .../657b23ad0df43588a6eadfa4.md | 6 +- .../657b24e5edd7708e93549565.md | 2 +- .../657b69e10d6606a0185d4d4f.md | 12 +- .../657b6f641e5c3ab1afc6efc1.md | 2 +- .../657b70cc934e0ab83cab4dbe.md | 2 +- .../657b92b25858f24caf6894aa.md | 6 +- .../657cb68bf15f349a744b5fba.md | 4 +- .../657cd962b45f48127c183d7b.md | 12 +- .../657cdc5a8e30191d1abec8b7.md | 2 +- .../657ce061cda4a42a99c65d89.md | 2 +- .../657cfeeeabb34d946d437dc7.md | 2 +- .../657cff86dd812f98672e2649.md | 2 +- .../657dc1d18a0a6f25302badba.md | 2 +- .../657dc50830f9be380105f1ee.md | 2 +- .../657dc568fe84e53acc962fc3.md | 2 +- .../657dc9946a177a5938ad3854.md | 2 +- .../657dca763bc23c5fc3398d95.md | 6 +- .../657dce8ff35869721311a5e3.md | 4 +- .../657dcee413423174ca3747f5.md | 4 +- .../657dd047e755e37d58f5084f.md | 4 +- .../657ddaaf8d89b4a56e3fdf78.md | 4 +- .../657ddd7d4fc512b03741d9a3.md | 6 +- .../656cd6a37495961c5f242c5d.md | 2 +- .../657b1dfec76149836ea5c7d0.md | 7 +- .../657b30e1b9f035e7e656fd01.md | 2 +- .../65f3a5111de04c216a38d998.md | 2 +- .../65f3a5733a199c21ca589173.md | 2 +- .../65f52f761f23715bce60f9ce.md | 2 +- .../66415d2fc70cf753ed0723a4.md | 2 +- .../664274a516894a70a9111cb6.md | 2 +- .../6642914bd5def3734c59b763.md | 2 +- .../655b76340ecb8285060ab6d5.md | 2 +- .../655bdc7e9c4116509df13f34.md | 10 +- .../655c9a89818e18606c18ca4b.md | 4 +- .../655c9bcb5bedb4620acb6f18.md | 2 +- .../656a44b06bea9443b8ff45bd.md | 2 +- .../656a456b46b4b04437f2d3e9.md | 2 +- .../656a4ac4529e0f49ab900c3b.md | 2 +- .../656a4d1943d8f24c030ded74.md | 2 +- .../65fe10ef733aebd257f0677d.md | 2 +- .../65ff086669d84512c7d132f1.md | 2 +- .../6617e75a204e044552675f58.md | 2 +- .../661ed01f09114567cc8fa939.md | 2 +- .../661edda6df434c6f2161bea5.md | 2 +- .../661ee1436ecb9271c66be82c.md | 2 +- .../661eea69ca8a5177320d5e90.md | 2 +- .../65b22d1aeb5ecf1d590d30bf.md | 2 +- .../65b22e5388370c209a6b0b73.md | 2 +- .../65b25b541262654062a21e74.md | 4 +- .../65b25bcc98b00d41d06d2a2b.md | 2 +- .../65d86e08994c4a0436d92766.md | 2 +- .../65d89562dff69551e7683df3.md | 2 +- .../65daa8143ae77767ad914ba4.md | 4 +- .../65daa8cce1b9206995e4aec3.md | 4 +- .../65daab9b713d3e6e6272c8bf.md | 4 +- .../65dab1186529467ee5e463a7.md | 2 +- .../65dad153fd675cb51e8423b0.md | 2 +- .../6636f834a7b32443a43fa4e0.md | 2 +- .../663855865f5d53510f9cd9a5.md | 4 +- .../6638994f7dbcb3548e458202.md | 2 +- .../66389a37bc8a4b5539eab451.md | 2 +- .../66389e09cec2fa569567b15a.md | 2 +- .../6556bc95e6ce5d850d37dd07.md | 3 +- .../6556be93f9fcb88ac9e88b0d.md | 7 +- .../655792631f21afaa40c611e1.md | 5 +- .../6557985a95ab6db1c4a31b6c.md | 5 +- .../6557995f0d97e1b2837a3081.md | 4 +- .../65579a0e1613d5b31a034ee5.md | 4 +- .../6557aee56ed7dcb5506a66d6.md | 3 +- .../6557d6a229e541bfde2c560d.md | 3 +- .../6557d782bc7613c06aa7dafd.md | 3 +- .../6557db51366bf6c15a966fb0.md | 8 +- .../6557dc1aa6be93c1eb4e9efb.md | 5 +- .../6557dea8c258c1c2a767deb7.md | 5 +- .../6557e0adbee371c3ac455a01.md | 3 +- .../6557e5c6a854bfcad48808c4.md | 4 +- .../655a235215bab7fa2a2e4bb7.md | 3 +- .../655a33bb8f2009ff7a7abfaa.md | 4 +- .../655a367638e3f401eb0235ea.md | 2 +- .../655a3789069fc902eb2aaa4b.md | 5 +- .../655a39242197c9040ddedef2.md | 7 +- .../655a3cc030fb970687d6444d.md | 5 +- .../655a4a5af997350c187bd779.md | 5 +- .../655a4fc35818d90f73f63ba0.md | 5 +- .../655a51cff12fb7117aa611f9.md | 5 +- .../655a54506b259313b2d59577.md | 2 +- .../655a5bfadf47e1199f9b65eb.md | 8 +- .../655a5e76ca6f8d1b1a88e0f1.md | 10 +- .../655a78fdfac0e22b0c400e72.md | 2 +- .../655a79e595bd202b4cd5e2d2.md | 3 +- .../655a7c5211e5252cf8a4ed01.md | 12 +- .../655a7d752ffc542e5874af0b.md | 7 +- .../655a896f31ca6a32913d1106.md | 5 +- .../655a8c9d2a0ea136a0fd3631.md | 5 +- .../655b266c2ea5495f43b97ea5.md | 2 +- .../655b2b5cc4ea3062f9811dec.md | 5 +- .../655b3197bb31ca670081f6d7.md | 2 +- .../655b363149b5ba6b15434574.md | 2 +- .../65e46524078f872c3a871f9f.md | 2 +- .../661757150c7a75961a574a39.md | 2 +- .../66175792ec93b19771c55c62.md | 2 +- .../661772551b64ddd40c834b1e.md | 2 +- .../661796e4635cd3eb1c8c78a4.md | 4 +- .../661797b505f2d3ed4b170d74.md | 2 +- .../66179829f664e3ee9b42ce5f.md | 2 +- .../6617994636fa13f16060b12b.md | 4 +- .../6617aea9ccdd68f7088368d1.md | 2 +- .../6617af3ab73475f87b53a59d.md | 2 +- .../6617b500a7049808f3a2a593.md | 4 +- .../6617b53e5eda8e09c6c67d28.md | 2 +- .../6617b674eb480b0c8d3d6031.md | 2 +- .../6617b81046e7b11287a7bef8.md | 4 +- .../658157d104bbc92a95147e45.md | 2 +- .../65fc9a04edb4d56c8390bc3a.md | 4 +- .../65fc9ab3635ebc6d167f86e6.md | 2 +- .../656bd968e52c34220164de8d.md | 2 +- .../65a84dad1595bbbc2e9cd895.md | 4 +- .../65a84e922382a7bd112057ad.md | 2 +- .../65a85090914872be8ca97793.md | 2 +- .../65a9457392dfd7d564bc940e.md | 2 +- .../65b28bbe803df52c4e76dd15.md | 2 +- .../65b28f840a0d962f2240e800.md | 4 +- .../65b2af1545e34334b7573de9.md | 2 +- .../65b2b2781c59e837a5e0beb2.md | 2 +- .../65b2bb073ac8d03dfe507810.md | 2 +- .../6620e51c36d18c137b887081.md | 4 +- .../6622346c798d906ee4d31846.md | 2 +- .../65fd5f2abfdbc510942d76f8.md | 2 +- .../661005bbe1801e14c303a57a.md | 4 +- .../66100646290700150caff732.md | 2 +- .../661216bbf6d9a51b409172a8.md | 2 +- .../661256fe823f142fb9858beb.md | 2 +- .../66126744e24b0a31255718a7.md | 2 +- .../6579cf81a9cec6d21f872959.md | 2 +- .../6579d002683211d5c7d13ef3.md | 2 +- .../6579d4ca0578b4e95f1df60e.md | 2 +- .../6579d539b1e5c2ec64484e49.md | 2 +- .../6579d827ebd50afcacb829fe.md | 2 +- .../6579dbf6a3e8a5161a592169.md | 4 +- .../6579ddc94db61d2463022da3.md | 2 +- .../6579de040244fb274179f001.md | 2 +- .../6579e17ff05c5d451c2e4f35.md | 4 +- .../657e0868da73165e32763679.md | 2 +- .../657e15f175ecdf90b583ed01.md | 4 +- .../657e1c10bc3f2ea8e1c1d7f7.md | 2 +- .../657e31b82090130535456f65.md | 2 +- .../657e358a40dd95143df6fe26.md | 2 +- .../657e3dfda31b534042d06e39.md | 2 +- .../657e4a245cc71782126b3316.md | 2 +- .../657e4e482e3a38992b212c6f.md | 2 +- .../657e50576597e0a65cd97e24.md | 2 +- .../657e50dd1f6ff2a9873f9ff0.md | 2 +- .../657e5c296bdba2ea26c67ca0.md | 2 +- .../657e5d8f7f2274f2b1a8efcc.md | 4 +- .../657e76356b6af6c07fe338c1.md | 2 +- .../657e786b51f7eac240e92bcc.md | 2 +- .../657fff7dabba2ff23993b08c.md | 2 +- .../658010478daa16fe79d8113a.md | 2 +- .../6613d3fe6615374be0d10008.md | 2 +- .../6613d46936e9374c24cfaaab.md | 2 +- .../6613d550a08c194cd27607ec.md | 2 +- .../6613d6c3e74a984d6fcbd013.md | 2 +- .../6614ad58c102e15df06c96d5.md | 4 +- .../6614ae3e02cc465ebee68851.md | 4 +- .../6614b1f8ee220c5f79df89b8.md | 2 +- .../6614b3e52a6aca60bc3417fb.md | 2 +- .../6629ce1a4f6581a7266d6ca9.md | 2 +- .../662a2779b2aeb80c10508bf2.md | 4 +- .../662a2b1f0c9314142ae87955.md | 2 +- .../662a304552f2631d63aa7cab.md | 2 +- .../662b74055c06e60af4f9b976.md | 4 +- .../662b8975b11107146a49ec58.md | 4 +- .../662f074021418e2b24937af7.md | 2 +- .../662f0d350c37f42de48847fe.md | 2 +- .../662f2e4b96f60636d44eb7db.md | 2 +- .../662f31024608f337c0bf53a9.md | 8 +- .../662f3450de7c2139809fb72b.md | 2 +- .../657b400653813a1caa228aca.md | 2 +- .../657b68caf6debb2975503948.md | 10 +- .../657ca50a95d1c3828ee5a991.md | 2 +- .../657caa4012f1cf846dcaa619.md | 2 +- .../657cad90d6745e85569cdc06.md | 2 +- .../657caec5163c6c85e5b31284.md | 2 +- .../657cafc142a867006734c3ed.md | 2 +- .../657ccfa7eeb47305177d4a45.md | 2 +- .../657cd816f3caf509f85e4d4a.md | 2 +- .../657ce387f809d60eb54f06d6.md | 4 +- .../657ce691d6c57c107e650c5e.md | 2 +- .../657daa5ab8505427a5b99cd2.md | 2 +- .../657dab674b9de728828aa020.md | 2 +- .../657dadfc7d21eb294c9f057e.md | 2 +- .../657daf702ed04a29ee42de69.md | 2 +- .../657df21cc45b1f66112fb8fc.md | 2 +- .../657df2b22d7649667734d71e.md | 2 +- .../657df5d14291b56887825276.md | 4 +- .../657df6018a70e468f5dc016a.md | 2 +- .../657e4b7d381d567e8d97967c.md | 2 +- .../657e4c1f0bd3e97ef2d46644.md | 2 +- .../657e4cd7f87d4f7f6954446d.md | 2 +- .../657e4db2e3fc8d7fb41b8b85.md | 2 +- .../657e4fd2ecf31280ef673f0d.md | 2 +- .../657e539471b4aa82c7402c15.md | 2 +- .../657e5477269b94834908826f.md | 4 +- .../657e54f51fe1c983d840cb70.md | 2 +- .../657e55e612fac9847dc7ce03.md | 2 +- .../657e56e7034d2d858b6e9e00.md | 2 +- .../674f0332ec59564081ec8b87.md | 196 +++ .../674f0495e5f4b0485ed38cd4.md | 92 ++ .../674f06b4b4d6eb4f6139ad61.md | 52 + .../674f08fde55c2356b37e9b69.md | 92 ++ .../674f0afcd85abc5d478e150c.md | 92 ++ .../674f0d0dec2922641ce2c8e9.md | 111 ++ .../674f0f8e84b4c76c0f6ae6d3.md | 94 ++ .../674f1a33acb7717de4842822.md | 52 + .../674f1ba48f50b78294f89089.md | 102 ++ .../67504e15ec1851a15aad11c1.md | 92 ++ .../675052373a1887aaa89c9a22.md | 88 + .../67505766bad3bcbac2f16fe4.md | 113 ++ .../67505903fa6affc0910b7a9d.md | 101 ++ .../675106629f2c07cec9bf2c71.md | 111 ++ .../67510809633277d10d4fff4f.md | 80 + .../6751a781fd421fda55170fc8.md | 102 ++ .../6751a827719c0fdb5b66b8e3.md | 92 ++ .../6751a990269891dd6f0ab1c2.md | 102 ++ .../6751ab72ff11cae0021d02d8.md | 92 ++ .../6751aca2701270e188b07df9.md | 102 ++ .../6751ad79009d66e2f5878282.md | 102 ++ .../6751aeb422ef45e4af25434d.md | 92 ++ .../6751bc2826c791ea69d7e8f2.md | 102 ++ .../6751bd2301b9feebf3813ac3.md | 80 + .../6751bdd2f78adbed1ea0fa51.md | 102 ++ .../6751beb68c063aee92555abe.md | 113 ++ .../6752e404804c1c044c804b79.md | 52 + .../6752e54369231d06538b4ac0.md | 92 ++ .../6752e83a806f520923bd28fa.md | 102 ++ .../6752eb5797ad390c7f40ef08.md | 86 + .../6752f4680f2d251372d4ae64.md | 68 + .../6752f6ebff95ee1781462c02.md | 68 + .../6752fb3e6257c91b93721288.md | 66 + .../6752fb92ecc7811d3a0f3320.md | 66 + .../6752fc06607eba1e73a89929.md | 68 + .../675948c97c0d4fd3d596960a.md | 232 +++ .../67594c1c9c8fc90a8e6f2f75.md | 80 + .../67594e4ad681381278cee337.md | 94 ++ .../675950eed633ac1ac3884471.md | 102 ++ .../675961ce80a70e23e933fa8c.md | 52 + .../675963eadf3bcf2ae50f74fe.md | 88 + .../675966e572894133e1b3b275.md | 80 + .../6759a3d84d89c4474d6a06b6.md | 102 ++ .../6759a570761b794ba1dc57e5.md | 102 ++ .../6759a679b6934850b6b0a31d.md | 92 ++ .../6759a7cc60ea94557c578ed4.md | 92 ++ .../6759a98f5028cb5bdf0a6f4b.md | 90 + .../675beaae0511b83217778531.md | 111 ++ .../675d10fd9150e00d5ea464c2.md | 52 + .../675d1437a379f517d766a249.md | 92 ++ .../675d16180e3c3f1e843ed138.md | 102 ++ .../675d177b1b7aca23c7f1b6d9.md | 97 ++ .../675d18c725ee4928ba83fa7c.md | 111 ++ .../675d6e0e52e8ee2d7b2b69cf.md | 90 + .../675d6f815fb6c83276d12870.md | 103 ++ .../675d710fb8118237e416155a.md | 89 + .../675d72320c09a53c1020e59d.md | 111 ++ .../675d72b7d86e163e326979e5.md | 92 ++ .../675d7493249c24447ca9e166.md | 102 ++ .../675d86beee48ab4941767200.md | 52 + .../675d87ed627c734d9ee5c028.md | 88 + .../675d88ce781849512cd7d426.md | 101 ++ .../675d8aabc2397c583c081ea9.md | 111 ++ .../675d8b482d5fa45b0226a891.md | 92 ++ .../675d8c5d1a1d775f78424011.md | 102 ++ .../675d8dfaad5f4765cbd8c013.md | 52 + .../675d8eddf05fb469a75ef543.md | 113 ++ .../675d91adb9fb7173f4a7a4c7.md | 111 ++ .../675e6dfe0160bb66faa60a68.md | 97 ++ .../675e6f0bf7f7eb69ddffef81.md | 80 + .../675e70d7b854926d7f18693c.md | 102 ++ .../675e7387be428072d95baeac.md | 94 ++ .../675e79e6ecfda37e1f49be65.md | 64 + .../675e7cc999813e83379b139c.md | 64 + .../675e8013d40d0d860143c14f.md | 64 + .../675e80709ee205871518ba9b.md | 64 + .../675e8133c874a588f947de57.md | 64 + .../675ecdef47179ea4653c2b9f.md | 196 +++ .../675ecedbb04f6ca6dd620f0e.md | 92 ++ .../675ed1414303a6abfaac2d96.md | 80 + .../675ed59b1e938bb2443585a5.md | 111 ++ .../675ed69e54ae31b462edf95b.md | 80 + .../675ed905490b9ab8f4e640c4.md | 92 ++ .../675edb8012accfbd8f4135c5.md | 92 ++ .../675edc3228d9d1bf95c5e649.md | 52 + .../675edeea805bb0c44385d0d5.md | 80 + .../675ee01ee1d37cc722bbad83.md | 92 ++ .../675ee218782b4dcb26796c19.md | 102 ++ .../675fa4789b65761b6c562a1b.md | 80 + .../675fa66d590e0127ba60b7f6.md | 92 ++ .../675fa827b0a17832dc798ba0.md | 102 ++ .../675fb5315884dc456fad654a.md | 113 ++ .../675fb7824cbbe3539de6111b.md | 111 ++ .../675fba2a32b4aa625e2f7940.md | 38 + .../675fbba5f9807566fb0c39ef.md | 92 ++ .../675fbefa9f40157cad662e8d.md | 102 ++ .../675fbfc6fa824c820a7e49d4.md | 88 + .../675fc02724147984cfe068d5.md | 80 + .../675fe3fb72bdcb97dd10b7c8.md | 102 ++ .../675fe58fb4c9539cb37b4065.md | 80 + .../675fe6a1e81c4ba00f415364.md | 99 ++ .../675feaafa5546fab32aa0736.md | 111 ++ .../675febf4f03233af8e347802.md | 80 + .../675fee8f5d64f2b504e91281.md | 102 ++ .../675ff2b7f9405abf27f26740.md | 80 + .../675ff37bebf32bc223e3660a.md | 102 ++ .../675ff42fb8c8a6c4f21cd3bb.md | 104 ++ .../675ff94f80bd9bd12c8497e2.md | 92 ++ .../6760f057483bbf684bfa6457.md | 111 ++ .../6760f48b0fe69572664e85f1.md | 102 ++ .../6760f7ca38c9167853ebf917.md | 89 + .../676147de99ef019cee551581.md | 70 + .../6761493d2db43ba139340975.md | 70 + .../67614992d9e494a2b69f89bb.md | 70 + .../67614a0187bd80a49d438b1f.md | 70 + .../67614a6e5d4df6a6744127b7.md | 70 + .../66a91783d34e873290e9f5ec.md | 2 +- .../66a95606a32d5747dae3bfba.md | 2 +- .../66a958bb3ac85c4a75e5fe88.md | 2 +- .../66a9599790c94a4ba0e5dbd9.md | 2 +- .../66a95ab699d0064d16bdf469.md | 2 +- .../66a961222115ad5437ddf4fb.md | 4 +- .../66b13f2f0c5a415ccd41335e.md | 2 +- .../66b4f8f6c1af973bdfdc0228.md | 2 +- .../66b568bf34c34209600445ad.md | 6 +- .../66b56c0432933515821a4eeb.md | 6 +- .../66b56d36cc47571a0e2a3dc5.md | 2 +- .../66b572bd3d3e122e9a8ff9df.md | 4 +- .../66b57e127321d8524c7ddda7.md | 6 +- .../66b580cb9307d46113a8a637.md | 10 +- .../66b58252cb001966f564c19e.md | 4 +- .../66b582d6978cff693c7b9455.md | 8 +- .../66b583275950846a87e88de8.md | 8 +- .../66bbba46fff0ef451b701bcd.md | 2 +- .../66bbc147bc59c25e60e18aec.md | 4 +- .../66bbf183427671a86f5ac25e.md | 2 +- .../66c4e019a6cbfa3210603aef.md | 4 +- .../66c4ec1a03bb27643063f262.md | 2 +- .../66c4efaa80afd0729ae471d1.md | 6 +- .../66c4f19f86b5f07a71ac7642.md | 8 +- .../66c4f338d6b658809576ae77.md | 4 +- .../66c4f45289436884e6afc059.md | 4 +- .../66c4f90997120794595abd5c.md | 2 +- .../66c4fd010695b5a316201d03.md | 2 +- .../66c4ffe51866ecadb48304b9.md | 10 +- .../66c5012e6643c2b32b3af0be.md | 4 +- .../66c507bef7c69ac73fbc82cc.md | 8 +- .../66c611f2d1e400c2f41ad5d9.md | 2 +- .../66c613a4d11b69cdd746b5ed.md | 8 +- .../66c616d281199cda967c144d.md | 8 +- .../66c6184eda8a8be150b1a0b4.md | 4 +- .../66c6193e7546c4e51cbf64c9.md | 8 +- .../66c61a0197d7e7e87191e033.md | 12 +- .../66c61a57f6eca6e9fb0f61d7.md | 6 +- .../66c61dee09da09f603fa3dbc.md | 2 +- .../66c62046cf3df2fe7cf92230.md | 10 +- .../66c6213241b74d023adcf637.md | 2 +- .../66c62515cf6ae70e34eb361d.md | 10 +- .../66c625e03abcb711ca38ba5f.md | 4 +- .../66c62747744dc4178785207d.md | 4 +- .../66c628215739f51ac74cb5cc.md | 4 +- .../66c6293f674a0a1e960027c3.md | 2 +- .../66c62b0c65018625985a897d.md | 2 +- .../66c637ce17705151c64f9059.md | 10 +- .../66c63db09b73ad6539eeee61.md | 16 +- .../66c63fda0e11806e78090f36.md | 10 +- .../66c6409f492e5e71621d06b8.md | 10 +- .../66c640e2f81416727a42fd4c.md | 6 +- .../66609f86c2500e597c8cb52f.md | 209 ++- .../673519c3d750b013c96f1e6f.md | 90 + .../67351b96eefe7c282ec1424b.md | 107 ++ .../673653fa580778853a7a7afd.md | 108 ++ .../673654d11366b18b1c76d980.md | 82 + .../673655ea628630928b5b50b8.md | 107 ++ .../6736576b5407af9bdf1f41b7.md | 110 ++ .../67365a08481f68acc18a9639.md | 113 ++ .../673ba128855f6e78cd392dab.md | 109 ++ .../673ba3a9d1858104dfbba180.md | 82 + .../673ba5bf35e3b51211c27c2b.md | 106 ++ .../673ba72bd5ef6a1bc39ba037.md | 101 ++ .../673ba8558f0a93235de58ccb.md | 111 ++ .../673ba99a1280af2ba7770b56.md | 111 ++ .../673bab51ecb42c369eb6b37b.md | 101 ++ .../673bad5d57b0a6444819ca0e.md | 94 ++ .../673baec00a78e04d5c6a9ea2.md | 92 ++ .../673c03eb9c3d4c2e12555aaf.md | 80 + .../673c06abb58d403f7e4533fb.md | 113 ++ .../673c07da6aa1be470dc55332.md | 92 ++ .../673c097ad524db51cca7ae3f.md | 104 ++ .../673c0bf736904660a9077269.md | 102 ++ .../67472118e6040e52ad3ca5b0.md | 101 ++ .../67472280c0b01f5e1442f8da.md | 115 ++ .../67472348ce54e263862c5386.md | 99 ++ .../674e3864432aea6f5ce708ed.md | 92 ++ .../674e3b2f69b2e481d4f6cebe.md | 94 ++ .../674e3bc223f6c5862facf3e2.md | 88 + .../674e3cb5a611618cd5301758.md | 99 ++ .../67506acdf255ff94e0ba712e.md | 111 ++ .../67506bd2d567359bac72f760.md | 90 + .../67506c7db9d148a0308107d8.md | 88 + .../67506d2c92a80fa4b7a912a7.md | 104 ++ .../67506e16a9e0bdaad7267c35.md | 98 ++ .../67506e940e1d20ae6f0fc7e2.md | 88 + .../67506f57df7629b3d8d90f11.md | 102 ++ .../675070049d1f9fb8c1bced11.md | 89 + .../675070d075960bbe3f92eca6.md | 99 ++ .../675074863d75f1d559b039df.md | 108 ++ .../6750758f8581d3dcfeb1c386.md | 124 ++ .../6750775f2b0832e88216e98c.md | 110 ++ .../6750784c1399a9ef62b27e9e.md | 90 + .../67507a47729d85fb7c88ee06.md | 88 + .../67507adbc31ab8ffa2dc5243.md | 111 ++ .../67507f042946421936eb425a.md | 117 ++ .../67508b92b31af876eed82c66.md | 96 ++ .../6752100607e30e31bd85af76.md | 70 + .../6752133caed6e849142fcc19.md | 70 + .../6752136c94c79a4ad803f0cf.md | 70 + .../675213a1aa7da34c876d94e9.md | 72 + .../675213f5a47d9e4ef23d9050.md | 72 + .../67531709d628ef047202e6ae.md | 196 +++ .../675318543812fa0f15f42c10.md | 95 ++ .../67531ca2cb308e28acf3bdc1.md | 104 ++ .../67531f0c699943385e41734c.md | 90 + .../67531ff45ade873e5ff17211.md | 90 + .../67532227a04e5e4cd4ccf987.md | 92 ++ .../675323b130ad71572ef10510.md | 104 ++ .../67532445152d375af93d4d19.md | 104 ++ .../675325cfea799165252500d4.md | 100 ++ .../675326de48b3e36c45ba1328.md | 78 + .../675327d73a38d5731235d764.md | 104 ++ .../675329bc0e2bfa7f1c4f7411.md | 90 + .../67532ac8b110a08666ee5f18.md | 90 + .../67532bbaa817558e7691df51.md | 82 + .../67532c49e75faf929fd9378d.md | 84 + .../6753314748a2feb09a3059b2.md | 139 ++ .../67533335139a96bd1eb18395.md | 97 ++ .../6753357b948f6acb55e35e3b.md | 101 ++ .../67535bfb5c07ec6334ec8ea3.md | 108 ++ .../67535e02fd808570ca6cb599.md | 88 + .../675743f6f7016d1074a9bca1.md | 82 + .../675746c2d3d2f222111918d4.md | 134 ++ .../6757488ee5dfb72d866a36df.md | 89 + .../6757498f826b0634696f224e.md | 111 ++ .../67574a712cb1143a3920f2a3.md | 113 ++ .../67574bb2fe3c4c42bae7b6e5.md | 88 + .../67574c6d474104486add91a7.md | 106 ++ .../67574d8786f50e500eae8e67.md | 97 ++ .../67575000c0fd5b5f211d89c4.md | 121 ++ .../6757531dc5fbb973e1912e1a.md | 90 + .../675753a815259c781d2b6913.md | 80 + .../67575473b14c837d8de3a866.md | 96 ++ .../67575588dfebc085e31941e4.md | 101 ++ .../67575734a3672990f7c4385a.md | 117 ++ .../6757585d71b1ad9924a96eb9.md | 90 + .../675758e09f09139cb34169f9.md | 110 ++ .../67575a0d4b966da41383050b.md | 92 ++ .../675c8db0264a83364dc521ac.md | 90 + .../675c8f75eaf3914275999cae.md | 92 ++ .../675c900ff099fa46fad7624d.md | 117 ++ .../675c91b0c74a72519ebb0a83.md | 92 ++ .../675c92e9a6133659ccad5424.md | 92 ++ .../675c94decb56d46654acf008.md | 109 ++ .../675c9579b10f316b5542b331.md | 100 ++ .../675c96e7feed5f75004ea8a4.md | 115 ++ .../675c9900820144823ed5b11a.md | 109 ++ .../675c9a309dcbc3053601e653.md | 101 ++ .../675c9a9d87d492086e1ab3cf.md | 117 ++ .../67619dab2031295f7b4dcee1.md | 96 ++ .../6761c4698166cd2462c1d685.md | 178 ++ .../6761c69821431133f4860640.md | 70 + .../6761ca7cf0fd854c646ebd11.md | 76 + .../6761cae47045b54f50840915.md | 72 + .../6761cb950d555c54150b2212.md | 74 + .../6761e3efbd12c067489c90fe.md | 82 + .../6761e51505b1d96f537b089e.md | 124 ++ .../6761e7b82f98fc7fb7d9c06b.md | 124 ++ .../6761e90350ebde88221daeea.md | 125 ++ .../6761e99e3e0f098cc0f265aa.md | 124 ++ .../6761eb2e4b1192968b2303f4.md | 124 ++ .../6761ecb48889faa066740143.md | 106 ++ .../6761ee00596d9fa8c8c3ac90.md | 103 ++ .../6761f0dc81967cbbe1118dae.md | 113 ++ .../6761f1e5287834c2cb5f4631.md | 98 ++ .../6761f2fbd2db7aca063b6a5c.md | 106 ++ .../6761f509323d5ad6cfe9d212.md | 90 + .../6761f66b536d13df9a6e4b87.md | 84 + .../6761f6dc272d86e2f315b79c.md | 106 ++ .../6761f838245300ebfcf372cd.md | 80 + .../6761f9d7a849d8f61aa12deb.md | 119 ++ .../6762dceeac22841f223b0101.md | 96 ++ .../6762e2adb437563844364cf1.md | 108 ++ .../6762e430c7646a422c17966f.md | 104 ++ .../6762edd89388ad7b3950d01a.md | 108 ++ .../6762f11f6a96d19057229bf2.md | 101 ++ .../676320cd1c9cee55ab53687a.md | 113 ++ .../676321f8a8692b5d4b211dde.md | 113 ++ .../67632267336dcf6068f39407.md | 110 ++ .../6763238e902cdf688f49152f.md | 92 ++ .../6763251d0b7d8872b5543df8.md | 116 ++ .../676325dfad1ee0784c7f1a5e.md | 88 + .../6763271c3d195780a672e061.md | 121 ++ .../6763285df9a9b6039696c389.md | 92 ++ .../67632a419a12aa10b1e76954.md | 110 ++ .../67632cefda53f021ab6ecfb4.md | 100 ++ .../67632e1b477101295cf2fc77.md | 119 ++ .../67632f1219de712fcf37d295.md | 99 ++ .../67633077c55c0f38b9166323.md | 108 ++ .../6763322b77048c43b92f9c28.md | 102 ++ .../67633424bfc56f4fec3edf3c.md | 98 ++ .../676335dbbbe14c5acdafc970.md | 108 ++ .../676338a796ace16be009e9d6.md | 89 + .../676339b7a8460f7302b2d966.md | 98 ++ .../67633a6ff2f2ef78701975c9.md | 136 ++ .../67633b012085337c52b93096.md | 92 ++ .../67633b85c9f913803fd8591c.md | 111 ++ .../67633d331eeb858a9803794f.md | 97 ++ .../67634107b478caa17f37c628.md | 72 + .../67634294671bb8ac40e2cc85.md | 64 + .../676342de292eafae91acee29.md | 64 + .../6763432a8c2ae1b0de0e1fc0.md | 64 + .../66c8ffb7c913438ad893dcf2.md | 2 +- .../67325a5443667173c717856f.md | 2 +- .../67325bae5d23157c74091944.md | 2 +- .../67326cb0e9a72b69d6efd417.md | 2 +- .../67326fb4b198b97e4bcf4a69.md | 2 +- .../6732800300eff4f49912e30f.md | 2 +- .../66609a1199ddd03548c45423.md | 234 ++- .../6704f438e6e9120d5a1274c6.md | 106 ++ .../6704fbd43885300e4aa221e9.md | 92 ++ .../6704fd952ad2560e9a7ca070.md | 108 ++ .../6705055b28e3c20fce27a15c.md | 92 ++ .../67050a8becee6d10619fa5ff.md | 92 ++ .../67050fd29a37de112051064b.md | 84 + .../670515561e620a11f2d7308c.md | 113 ++ .../6705177d1d3dbb124955a397.md | 94 ++ .../670518bd8ec6f012af235433.md | 96 ++ .../67051b185149b6130426a9ad.md | 114 ++ .../67053619dd65bd1459449bf0.md | 148 ++ .../670538f8565fb514ddf24b85.md | 92 ++ .../67053b9fe0a27715979bee1b.md | 94 ++ .../67053ea535fe23160e6b29c1.md | 96 ++ .../67053faa1471c916446ad615.md | 116 ++ .../670541bdd115c71686a398c3.md | 84 + .../6705425a4b3df216cb6de9a7.md | 94 ++ .../6705442e6a6ebf1725bc8e1f.md | 142 ++ .../6705573e13b1211820a3ac67.md | 108 ++ .../67055872382df21871200427.md | 84 + .../67055c02b6774a18f8f7186f.md | 98 ++ .../67055d274231051940d0c8ea.md | 94 ++ .../67055f5c9bdb8e1999102827.md | 120 ++ .../6705605c7fb8f619e0068634.md | 114 ++ .../670561a8af3d901a431549fe.md | 117 ++ .../670562a2aa92081a89ba77f6.md | 113 ++ .../6705638c3791881aed186e9d.md | 90 + .../670564e883b7911b4ec31e29.md | 134 ++ .../67056697de96ba1ba012eb44.md | 60 + .../67056b4950144e1cf10c53a6.md | 64 + .../670570ad97d26e1d6bad572d.md | 66 + .../6705725e2814c91dd738e8f4.md | 66 + .../6705742b9616e01e275e5c08.md | 66 + .../67057604ca099f1e7df78e77.md | 66 + .../67057e02da44871f492f6f35.md | 66 + .../670f6ca334a541048d0e9a76.md | 223 +++ .../670f71de33e0be053934a9c3.md | 106 ++ .../670f74145be4b907a1b9c915.md | 92 ++ .../6710bc2f9f242e03ebeccbe9.md | 92 ++ .../6710bf5df20df90498c991a2.md | 106 ++ .../6710c59075616806206fcf44.md | 90 + .../6710c7bd388290075f19552c.md | 106 ++ .../6710e0e2cafeeb09e6cb2d8f.md | 115 ++ .../6710e614f70bd10afb6ca7f7.md | 107 ++ .../6710ef64fecf900ca5296978.md | 119 ++ .../67121364e79da2047818b743.md | 107 ++ .../67121be3d5093805dfdbaa71.md | 108 ++ .../67121d26052fb606bd59705c.md | 115 ++ .../67122e8300d8e90843b04967.md | 110 ++ .../67176c867303f30476f3d126.md | 90 + .../6717756d3483e6060d2cd800.md | 110 ++ .../671775877ee558061e6eebf8.md | 90 + .../671775a360c128062f906b24.md | 106 ++ .../671775bb104def063ffbdaab.md | 82 + .../671775db2ecd44064fdb1f04.md | 94 ++ .../671775f2f55c4c066193a1c1.md | 94 ++ .../6717760c06f5e10671ef0268.md | 94 ++ .../6717b543037e030fc7008aa7.md | 106 ++ .../6717b55fb3b4160fd757b7af.md | 106 ++ .../6717b5754dcaae0fe7bb179b.md | 82 + .../6717b59830cdb50ff9f67623.md | 106 ++ .../6717b5b2b0c1d21009b2b0fd.md | 94 ++ .../6717b5c73e81e8101bed0ea2.md | 96 ++ .../6717b5dc5fd2c0102b2aacec.md | 103 ++ .../6717b5f5be4456103b8ff767.md | 115 ++ .../6717b611f1230c104cbf5d38.md | 90 + .../6717b6a5308335105c51cfe6.md | 106 ++ .../671d19c62da85c0982472a57.md | 68 + .../671d1f358f62320b707af87f.md | 62 + .../671d1f5590e7110b82940771.md | 62 + .../671d1f7ca5f2aa0bb63b9e22.md | 62 + .../671d1f94461c820bc68e3694.md | 62 + .../671d1fab38a4710bd7a6b9c0.md | 62 + .../671d292ef6180210164c33e8.md | 196 +++ .../671f7579f5e0000560fcce55.md | 94 ++ .../671f7592e571ad05716b2c67.md | 90 + .../671f75ab41a1520581f5923a.md | 84 + .../671f75ca1748e8059234fa3d.md | 104 ++ .../671f75e368cbd505a301ca7d.md | 94 ++ .../671f75fea017ea05b31a80c6.md | 94 ++ .../671f761703824805c35c2eda.md | 108 ++ .../671f765a22e32e05d4f5074e.md | 94 ++ .../671f76959b3ca3060eddbe70.md | 103 ++ .../671f76b915c1cf062570fdfc.md | 138 ++ .../671f76d4b7384c063c097048.md | 103 ++ .../671f76eede9f200652954940.md | 91 ++ .../671f7708379ef00668b843d4.md | 119 ++ .../671f7727d2e4240680c126bc.md | 143 ++ .../671f774373f2ce0696fe9621.md | 98 ++ .../671f7767854d6806ac4fb5f4.md | 110 ++ .../671f77bfcd2bc306c2f6f338.md | 114 ++ .../671f77dedcc3b006dcfa9c73.md | 92 ++ .../671f7800b5174406f2d0df76.md | 70 + .../671f78193bb0510709b169b8.md | 62 + .../671f7834b9a323071f7a325e.md | 62 + .../671f7852f3a7e80737cc21d0.md | 62 + .../671f786a18c275074d55d298.md | 62 + .../671f788c2665b807636b31a8.md | 62 + .../6746005e0cf96b701d861793.md | 108 ++ .../674604ef287b978febd50bc9.md | 80 + .../674605049656269110601a79.md | 86 + .../674609a92ccf079d86cd81db.md | 110 ++ .../67460b84234b70a4772d2094.md | 95 ++ .../67461094ba7296b13c1bb045.md | 136 ++ .../674612ab7e6b0ab83408262a.md | 86 + .../674616565854f7c788740cee.md | 110 ++ .../674619b6699a06d064c9717f.md | 94 ++ .../67461c06865e13d715967f1d.md | 89 + .../675060b39af6ab3f14f394e2.md | 142 ++ .../6750651aafcea04c6958a4e5.md | 88 + .../6750697ee8b87f5e665c0712.md | 88 + .../675846ef3e2e50e95e99aded.md | 92 ++ .../6758486d05a8fcf01a20c8b4.md | 115 ++ .../67165185a42acc499c6ada3d.md | 4 +- .../6716531210ee374ae822fe83.md | 2 +- .../671655545e5bfc4c3dfe9871.md | 4 +- .../67165855c3dd824eabc1b474.md | 2 +- .../6716593b4f24da4fac3154bf.md | 4 +- .../6717b20b952c096b3dee0834.md | 6 +- .../6717b6aa217d3d6ed6f83e53.md | 2 +- .../6717ba3d37ec4e73a50878da.md | 4 +- .../6717c0dc8b764279dfc9326b.md | 6 +- .../6717c3557815a17d6369a778.md | 4 +- .../671a383a56179f510b83cc1e.md | 14 +- .../671a3c13a3d6b21a1b0008f7.md | 4 +- .../671a3dde9c50241c6c16e331.md | 4 +- .../671a3ed10fd6e81d06dd4690.md | 4 +- .../671a40b415343c1f26e0c005.md | 2 +- .../671a41b8576531207749bdae.md | 4 +- .../671a438ac97103231787ab5a.md | 4 +- .../671a45f9b4ee3325393f0d0b.md | 4 +- .../671a46fe18ae6a26c76f42f6.md | 8 +- .../671a4aeac046082b1bf6335b.md | 2 +- .../671a4e181afe602d37786dd8.md | 16 +- .../671b71da8e1b963c69b6d011.md | 6 +- .../671b769169e38f3fe57b141c.md | 16 +- .../671b77cf9ef25a416449b109.md | 16 +- .../671b7c10cd0d274552e7b686.md | 18 +- .../671b7dd730712747aa2d9974.md | 8 +- .../671f46b8a64a336294268cf6.md | 2 +- .../671f4766b90543639b60a79d.md | 2 +- .../671f47b9343cd364309aa802.md | 2 +- .../671f4c29b6c10a677571c3e9.md | 2 +- .../671f8ab3f5add66eb16be177.md | 4 +- .../671f8cdb0d31cb710d7ad031.md | 2 +- .../671f8e2ca90546729b1911fa.md | 6 +- .../671f92684454b37660c3f82a.md | 4 +- .../671f9ca66765d781de7213f3.md | 4 +- .../671f9e83b440da8486fdf76e.md | 2 +- .../6720cf38beae8c4f1d7af1c0.md | 6 +- .../6720e69c2152da7b9dad577e.md | 4 +- .../6720f18957013d8de8ebbe91.md | 4 +- .../6720f2d525d22693e3fe2a99.md | 8 +- .../6720f45529e496998cced6b6.md | 4 +- .../6720f45ff33dd69a10d14e9d.md | 4 +- .../67278e07d5544c1a93f7f113.md | 8 +- .../67278fa39133d120afee631c.md | 8 +- .../672830d9aa2e0c2ff2fad7f8.md | 6 +- .../672836d6ec0ae23f4724ccb1.md | 4 +- .../6728378c94eaf541fce8f334.md | 6 +- .../67289c4908f407948ef08a55.md | 4 +- .../6728c369d38d3ea6634c1649.md | 4 +- .../6728c6fad8d9caa92837c75f.md | 2 +- .../672a1c6ca33f8115728e7f79.md | 4 +- .../672a1e2fbec6a61bf477ea49.md | 2 +- .../672a21a4b40ed3279d513888.md | 4 +- .../672a296a309d9c46658c071a.md | 2 +- .../672afc3d3758e25087697611.md | 2 +- .../672afe3809d2a55224868ea5.md | 6 +- .../672b25e2a59e2956bca1a42f.md | 2 +- .../672b33b15bd8bf5b2523772a.md | 6 +- .../672b42dafa37fe61e80a2b40.md | 2 +- .../672b4539b9ab5d645e7dcfb8.md | 6 +- .../672b46def9325065dbc7b29f.md | 4 +- .../672b4812ec997567058875da.md | 4 +- .../672b491aa3c094689007baf1.md | 4 +- .../672cca3d15975a9390545877.md | 2 +- .../672ccc988693199500b4cdfd.md | 4 +- .../672dc928d8765dc9f923ca71.md | 2 +- .../672de8ad97d683d3734ce5cd.md | 2 +- .../672debc75e32a8d6e2593eac.md | 6 +- .../672dec93f008b3d8169568e8.md | 2 +- .../672e0ec28d829ee2b5e909f3.md | 2 +- .../672e16bcc0d877e5d3eb7f4e.md | 2 +- .../672e17e63be5dce6ff5b9189.md | 2 +- .../672e1bb0774f2fea953e9388.md | 6 +- .../672e1c3031816ceb9dccc66a.md | 8 +- .../672e1f1a51e86aed84df7c94.md | 2 +- .../672e1fff03af3aeed5d7a84b.md | 4 +- .../672f4b05585d501f533789b4.md | 4 +- .../672f606201263928a06b2a04.md | 2 +- .../672f630337512b2b62595731.md | 2 +- .../672f63cadac41a2c9b1897a1.md | 2 +- .../672f64ba4f91492e1192b829.md | 2 +- .../672f657580a34f2f78e278e2.md | 10 +- .../673de712f2dc6db0cfe76b31.md | 2 +- .../673df0c78bdd11c7195010cb.md | 6 +- .../66b36358ed4f261d64840c24.md | 2 +- .../6718d2d59337c822ecb697ff.md | 2 +- .../66eaddd04a9e533fba689001.md | 2 +- .../66ec4c8e9878d8441956516f.md | 4 +- .../66a207974c806a19d6607073.md | 2 +- .../67172b43f84bcd2dec238a3d.md | 2 +- .../66def5467aee701733aaf8cc.md | 2 +- .../6690e10ebe2181212abc9652.md | 2 +- .../66da326c02141df538f29ba5.md | 11 +- .../66f3f6eb66ea9dc41cdc30df.md | 210 +++ .../66bba6fff611169359d9d36a.md | 2 +- .../66f26c32ec6f90df01a44f60.md | 2 +- .../67279fe50237291f80eed8b8.md | 857 ++++++++++ .../66f686b8ebdb982fa8e14330.md | 6 +- .../6762ec275cef87635acc4fe3.md | 543 +++++++ .../66b205e6eacba4c4e54ea434.md | 2 +- .../66e45c8140f9fda5c105ae26.md | 2 +- .../lab-event-hub/66ebd4ae2812430bb883c787.md | 27 +- .../66c07238b01053abaf812065.md | 15 +- .../66bf6bacf178eac7b96d4f5e.md | 2 +- .../673c91f0b934834bc4a3ecc2.md | 1312 ++++++++------- .../66e7ee20b79186306fc12da5.md | 2 +- .../66c06d618d075c7f7f1b890a.md | 2 +- .../66bb6a9c2dd58b73cd759034.md | 2 +- .../66d6a7a3e1aa411e94bf2346.md | 2 +- .../66d75dd0aa65a71600dc669b.md | 4 +- .../66ed41f912d0bb1dc62da5dd.md | 16 +- .../66faac4139dbbd5dd632c860.md | 5 +- .../66c06fad3475cd92421b9ac2.md | 6 +- .../66db57ad34c7089b9b41bfd6.md | 10 +- .../66db529d37ad966480ebb633.md | 2 +- .../6735a7370e0ae93a4577c689.md | 263 +++ .../66f55eac933ff64ce654ca74.md | 142 +- .../673b3d6b7ef7318eef926d5a.md | 278 ++-- .../66a37f37ef5823a313de8c26.md | 2 +- .../66ba762af611169359d9d369.md | 2 +- .../66be24cb4144f955b6bcc550.md | 2 +- .../657bdc55a322aae1eac3838f.md | 4 +- .../66f53dc2c5bd6a11d6c3282f.md | 116 ++ .../66fe4f33a2cc9b33f4d5cd9b.md | 2 +- .../bd7158d8c242eddfaeb5bd13.md | 652 ++++---- .../587d78af367417b2b2512b04.md | 4 +- .../67051431a73f1ca25d9a6f25.md | 4 +- .../66f2836c459cfb16ae76f24f.md | 2 +- .../lab-quiz-game/66f17db06803d11a1bd19a20.md | 7 +- .../66b62d0ad68488dd76228d6c.md | 2 +- .../66bb3e20d3dc5b6d0a21f5dd.md | 2 +- .../668f08ea07b99b1f4a91acab.md | 2 +- .../66e028680eca7d21db7e1aee.md | 2 +- .../673b02b03134b04637bf7055.md | 220 +-- .../66c057041df6394ca796bf33.md | 22 +- .../6716249b5405164036fd0b0d.md | 599 +++++++ .../66c051d13a6a20255a963695.md | 229 +-- .../587d78af367417b2b2512b03.md | 153 +- .../587d78b0367417b2b2512b05.md | 180 +- .../669e2f60e83c011754f711f9.md | 196 ++- .../bd7158d8c442eddfaeb5bd18.md | 117 +- .../669e81368e52b3a5c35a2dc5.md | 7 +- .../673b567e3ba535dda140d278.md | 116 +- .../66f12a88741aeb16b9246c59.md | 728 +++++---- .../672aa8d65995be62ef1c7515.md | 2 +- .../672cf764cf55a70433590def.md | 2 +- .../672aa82768e00d600305afc0.md | 2 +- .../672c35a79fa53e00de9f2a49.md | 36 +- .../672aa8873d4e25618870764f.md | 2 +- .../672cf05c3ad533eabe1e8197.md | 2 +- .../672cf06c8f46f9eb04db9832.md | 2 +- .../672cf07a2b9796eb49719e03.md | 20 +- .../672ac9705b07a64439b73b59.md | 2 +- .../672bb619f0d4538d0528760d.md | 6 +- .../6733aa9b006d29f4d11307a5.md | 20 +- .../6733bec70d86e13522e98a4f.md | 2 +- .../6733becf4b0c353553b9bfa4.md | 2 +- .../6733bee844600f35c05b8264.md | 18 +- .../6733befb703ca6361da3755b.md | 18 +- .../670803abcb3e980233da4768.md | 34 +- .../6708382cf088b216580a9ff1.md | 20 +- .../67083868d5fdcb17bf8c14bd.md | 2 +- .../670838977810401844af6fe0.md | 2 +- .../670838b10ee87a18e5faff62.md | 2 +- .../670838e914096b194b0c51aa.md | 2 +- .../670839051794aa19fcef6dc8.md | 2 +- .../67083952f800051a8a21fcfd.md | 8 +- .../6708396caa00e11b597b3365.md | 16 +- .../672a51e9e4fd8b8552eeb758.md | 2 +- .../672a5310d7e46b8a34d48dfd.md | 2 +- .../672a5326a7606a8a766cbedb.md | 2 +- .../672a533e6041c28ad680eb8f.md | 2 +- .../672a5361ef88158b25fbfba7.md | 2 +- .../672a536f8386288b9ed0a154.md | 8 +- .../672a537f05f3798bd4f57d2d.md | 2 +- .../672a538c029f9e8c1687460e.md | 2 +- .../672a539b887ec68c593cdc4b.md | 2 +- .../672a53ae8f1ad28c8a1ed0f0.md | 2 +- .../672a53cf67140d8cd85d4b0f.md | 2 +- .../672a549231b8728f7171ed9d.md | 2 +- .../672a54a6675c168faa84252d.md | 2 +- .../672a54bc58319c8fe6f78ad4.md | 2 +- .../672a54ce90c19e9038f481d7.md | 2 +- .../672a54dff9dc439089f1a219.md | 2 +- .../672a54f29d783890d1f94740.md | 2 +- .../672a5507d857a891139abc7f.md | 2 +- .../672a551975938a916c74802c.md | 2 +- .../672a55b5c0c14493328fe36e.md | 2 +- .../672a55dd1d86bc939606e204.md | 2 +- .../672a55eb7791559421ff0cd3.md | 2 +- .../672a55fbc2d95a9453151caf.md | 2 +- .../672985445d7da807c6b4f406.md | 12 +- .../6729959bf9c8e835f46b3f78.md | 16 +- .../672995c9e6f69436dbcccc79.md | 24 +- .../672995d673bd3237200b9e7c.md | 2 +- .../672995f16ed97837b365a9f6.md | 6 +- .../672995ffdfd2f337f5f215f8.md | 2 +- .../6734e3a9cc78faaf4248d335.md | 38 +- .../6734e867bbf41cc5b11648c4.md | 24 +- .../6734e86f590727c5e7e9ec5e.md | 22 +- .../6734e879c78ee6c61db25b90.md | 109 +- .../6734e88cc46e6dc679420040.md | 55 +- .../674ba6876f7ada867135bb95.md | 98 +- .../672d26385dbe73203c4dac81.md | 10 +- .../672d496eca926b5df8176a67.md | 2 +- .../672d497cb1a1675e47bf7ea1.md | 6 +- .../672d49959621885e9d3e672c.md | 4 +- .../672d49a5cf43945ee09e5fba.md | 2 +- .../672d49b2fb76df5f1d6117af.md | 2 +- .../672d49c4e899345f5b33c24c.md | 8 +- .../672d49d93b54b85faa4dbad7.md | 2 +- .../672d49e65a1c855fe7bb3fdb.md | 4 +- .../672aa6441bcd3758e9f52ae0.md | 36 - .../67329fbcfaf5ff5cdaa38a42.md | 2 +- .../67335f45489c5a11b71d0ed5.md | 2 +- .../6733b072bd8f5b06ccdbd9e2.md | 2 +- .../67340798c2c1776709d8a5fe.md | 2 +- .../673407a223891b6734563c89.md | 2 +- .../673407be6af21d6766ed4b96.md | 2 +- .../673407ca21117a67cf9521ca.md | 2 +- .../673407d56c3dce67fa97969b.md | 6 +- .../673407e02bcf0d682b9a49a9.md | 2 +- .../673407eb10ca9d68634e81d9.md | 2 +- .../672d26917a8ab3220c038a42.md | 2 +- .../673282bea35dbf129efb63d6.md | 4 +- .../672aa578a2129554d4675049.md | 2 +- .../672ab82c1a9bbd0e3aabc39d.md | 2 +- .../672ab83c4297910eade53c2e.md | 2 +- .../672ab849aa1ef70eefd29364.md | 6 +- .../672ab8573f32480f192aaae1.md | 2 +- .../67329f9e9eb84e5c6a5e4366.md | 2 +- .../6732c68f4520d160584a6fd2.md | 2 +- .../6732c69d82814160951b1aa7.md | 2 +- .../6732c6ab21031b60d2b0c999.md | 18 +- .../6732c6ba2ea42b610b9f9ce1.md | 2 +- .../6732c6c72d3738614e1230a2.md | 4 +- .../6732c6d4dec34c61850a1276.md | 2 +- .../6732c6e281c14a61c4858361.md | 2 +- .../6733aae9d25004f60d1e86f2.md | 2 +- .../6733d3a33abdd27cd562bdf2.md | 2 +- .../6733d3ab69e94b7df7ee91b0.md | 2 +- .../6733b0451d6be0065430b418.md | 67 +- .../6734061fe116df617a564a37.md | 48 +- .../6733affc29df1304e2c97e88.md | 2 +- .../673403ca2bb16658309e3632.md | 2 +- .../673403d2aa52d8586a14a269.md | 2 +- .../673403dbf5c9835898632c84.md | 2 +- .../672aa86da9937560d3dfe3d6.md | 2 +- .../672c3a84fb8d4613776cc99e.md | 8 +- .../672c3a8fac7c5613b4bb75de.md | 4 +- .../672c3a9d32c56113fcaedf24.md | 2 +- .../672c3aa9bc3a481425cb52b3.md | 2 +- .../67329fd6ad99c75d4a4b74e4.md | 2 +- .../6733b02d1e556005a544c5e3.md | 136 +- .../6732a06aed1b095f57b0bb82.md | 2 +- .../67338e93b75977a344cf6d40.md | 2 +- .../672bafe4ef812b78696b0e27.md | 2 +- .../672baffc684be178dd02fa06.md | 2 +- .../672bb009952c7a7904a750cb.md | 12 +- .../672baad7bbc4f86762ca173e.md | 16 +- .../6734ddabad59e593a49afafe.md | 2 +- .../6734e2c5780912abd874e79c.md | 2 +- .../6734e2dcb965e5ac0ea38e0f.md | 104 +- .../6763500bd5a85d5898cc21a9.md | 121 ++ .../672acc03c257524d6a5151e8.md | 18 +- .../672acc100d59d24da7b4e09c.md | 7 - .../672acc3f6f3e3c4e31ec3e12.md | 2 +- .../66f6db08d55022680a3cfbc9.md | 6 +- .../6708143cab2b583ecd3324f5.md | 121 ++ .../67329f508a6ec45b046700b3.md | 40 +- .../6733ab12b60bd7f6b2b0b0c0.md | 18 +- .../6733d8203da84a08a0f5eab4.md | 26 +- .../6733d829d983c008d2db41a1.md | 20 +- .../6733d83630e76f08ff49e6dc.md | 24 +- .../6733d852175df50937f06061.md | 56 +- .../6733d8606fb893099e3d0df3.md | 18 +- .../672b98be592cfb451f651451.md | 2 +- .../672b98cd77b6b7456b6ef2de.md | 8 +- .../672b98db3bcdd545ab3b3c73.md | 16 +- .../6733ab64775d35f78f5238fe.md | 84 +- .../6733ff4a9319c8486750886c.md | 72 +- .../6733ff5814129c48b4fca88e.md | 78 +- .../6733ff6f02dde548ebe4a6d5.md | 62 +- .../6733ff8d06376149474a0c0d.md | 26 +- .../6733ff9d2fb9c449af68ad99.md | 47 +- .../6733ffacd0ad1e49ec2af051.md | 38 +- .../6733ffb59c62ee4a23522efe.md | 84 +- .../6733ffc7353af34a61ed683a.md | 22 +- .../672d45583fd75a504136fbbb.md | 16 +- .../672d266034b5242126271995.md | 2 +- .../67326c0d7bef01c539120766.md | 2 +- .../67326c15b3b2f0c5827927cc.md | 6 +- .../67326c1fdaf9c0c5ad1a2589.md | 4 +- .../67326c29dcd98fc5ecc49779.md | 25 +- .../67326c3392068ec6184a0c95.md | 2 +- .../67326c3c3ab931c644cea05b.md | 18 +- .../672aa8ac4631d1623ec5cd86.md | 2 +- .../673226732b19aa1cacd0a75c.md | 4 +- .../6732267ecab2151ced471cd4.md | 2 +- .../6732268d05c3661d32a0fee8.md | 2 +- .../6732269a7aa2ca1d6b6574fe.md | 2 +- .../673226a62eb2121da41a3d68.md | 2 +- .../673226afcd33991dd751937a.md | 2 +- .../673226b97d4a731e0577ae93.md | 18 +- .../672aa7e03c2e365e906e5733.md | 2 +- .../672bcc8ccc976fd791610f43.md | 2 +- .../672bcc9c4a6dd6d7dd3e6357.md | 2 +- .../672bccae6e556cd81cef6af2.md | 2 +- .../672bccc8ea33bad87abb3c56.md | 2 +- .../672bccdb8f1823d8c60f914c.md | 2 +- .../672bccebe1fc82d911c3f078.md | 2 +- .../672aa8985acb7361e656f94c.md | 16 +- .../672cf3ca326da9f63683e236.md | 2 +- .../6734e3ceee2da4b0301719b7.md | 128 +- .../673500abfe36cd015b67b1b7.md | 63 +- .../673500b41af8500191febedc.md | 72 +- .../673500bfe1f41601c1ddb1a2.md | 73 +- .../672d264645e289208e562f10.md | 2 +- .../6732518a8627876f4fcd18a4.md | 6 +- .../6733aafb9c0802f66cc1e056.md | 6 +- .../6733d608654c17868e01c0a2.md | 2 +- .../672ac37104dc2530a769e6a4.md | 2 +- .../6729974ec29be33cb00eb54d.md | 12 +- .../672d269da46786225e3fe3fd.md | 2 +- .../673284d5e52ef81a2169b097.md | 4 +- .../673284e7244c0c1a649121b9.md | 4 +- .../67329ffd75010f5ddeb4ea13.md | 2 +- .../67336296a3c1591da81856c2.md | 2 +- .../673362a34edda41dedf87623.md | 4 +- .../673362b3f763ae1e38e17df7.md | 2 +- .../673362be2f70c21e65bc5459.md | 2 +- .../673362cbb475e21eab726506.md | 4 +- .../673362d7f94d551edb532d24.md | 2 +- .../673362e43d57b51f1ad2d466.md | 2 +- .../672a4fa7d335bc7cfb63a392.md | 22 +- .../6716744f7245947a3dd60009.md | 2 +- .../671682dd88e461a8e2620f38.md | 2 +- .../6716830dbaf95da9564f2e3b.md | 8 +- .../67168323932391a9ee0d3a9e.md | 8 +- .../67329f7f3d1bd75c17896c66.md | 2 +- .../6732c04638420641dcca2e6e.md | 2 +- .../6732c05595ca7d422b9e55ff.md | 2 +- .../6732c06654ea3442724284fe.md | 2 +- .../6732c07238355642a9781dfb.md | 2 +- .../6733ab269b378bf724c9ac71.md | 2 +- .../6733dd694f91d61a5272b4ac.md | 2 +- .../6716743531fc9a797351c21e.md | 6 +- .../67167835def3588873f339c6.md | 12 +- .../6716823876aa22a68ba3e2ec.md | 28 +- .../6716825aff3434a71fdc3e99.md | 18 +- .../67168278ac6df6a799555db5.md | 6 +- .../671682b3983489a819507553.md | 6 +- .../672d26809d388621ad1ecd43.md | 2 +- .../6732808f3221720adc833e81.md | 4 +- .../673280a1c29d0a0b17316e56.md | 2 +- .../672d266e014ef8216df987d2.md | 2 +- .../673271884bf678d8b9c64f56.md | 72 +- .../67327195e77b1bd90bdd49d7.md | 64 +- .../6732719e2e3ad4d947410b65.md | 2 +- .../673271a8998ddfd97578d095.md | 4 +- .../673271b4213033d9b661c70e.md | 2 +- .../673271c7581a27d9dd78f6d6.md | 4 +- .../673271dffbc34fda31da9515.md | 2 +- .../673271e8e3d43bda89f723b3.md | 2 +- .../673271f39f124ddac28866d5.md | 2 +- .../673271fd11d063daf0cf8d20.md | 4 +- .../6732720e95f6a0db526a2e4d.md | 2 +- .../67327217e70ee0db7913b255.md | 4 +- .../67329f737126b75bcb949e13.md | 2 +- .../6732b721eb98f224868b44a6.md | 2 +- .../6732b72961f94324bd6390de.md | 2 +- .../6732b73509f71f24ef05e86e.md | 2 +- .../6732b73d25cc01251b778043.md | 2 +- .../6732b749b8aad125523dcda5.md | 2 +- .../6732b758194c97257d23fc72.md | 2 +- .../6732b76c03f7d825c7fc74ee.md | 2 +- .../6732b77adf9de12617a2dbb3.md | 2 +- .../6732b788046862264eeb1c39.md | 2 +- .../6732b79c6aa77826855a3f11.md | 2 +- .../6733aad43b3ebff588a26fb5.md | 2 +- .../6733c5ba834ded4bb067e67c.md | 4 +- .../6733c5c549775c4be710237c.md | 4 +- .../6733c5d0048bb74c18431296.md | 112 +- .../6733c5dc74176e4c496d09e6.md | 68 +- .../6733c5e54e3a154c8078ed48.md | 96 +- .../6733c5f20cc9584cada942a4.md | 115 +- .../672d2654f78cbf20e0ba4501.md | 18 +- .../673263d58da27ea7809963bf.md | 2 +- .../673263df0eb568a7b450f2fc.md | 2 +- .../673263e80dd43da7df3ae565.md | 4 +- .../673263f4a5899da8124542fd.md | 2 +- .../6732a0472f52015e511f8e58.md | 2 +- .../67336894ae148431a870694d.md | 2 +- .../6733689f9f31dd31e7d9c789.md | 2 +- .../673368b1cf26253212a3cfb2.md | 2 +- .../673368c0161e6b326a7e03f0.md | 2 +- .../673368ccf52205329b729378.md | 2 +- .../673368d97e8ce232cdcd6b68.md | 2 +- .../673368e7bd043f331919514d.md | 4 +- .../673368f272706633516e4873.md | 2 +- .../673368fbe12a2b337645053d.md | 2 +- .../673369067f824d33a90a0534.md | 2 +- .../673369101e5c4a33db0e8a02.md | 2 +- .../6733691d88e3053414689276.md | 2 +- .../6733692ffe1da034469f7917.md | 10 +- .../6733693bfce9a43489a355db.md | 2 +- .../6733694805a85d34ced08a9b.md | 2 +- .../67336956340e8a34fbd5d9f3.md | 2 +- .../6733696567d2273540aa6033.md | 2 +- .../6733697661182d357fc643d2.md | 2 +- .../673369829e232835c2732656.md | 2 +- .../66ed8fa2f45ce3ece4053eab.md | 18 +- .../66df3b712c41c499e9d31e5b.md | 50 +- .../66ed8fd0f45ce3ece4053eaf.md | 4 +- .../66ed8fd7f45ce3ece4053eb0.md | 36 +- .../66ed8fe1f45ce3ece4053eb1.md | 6 +- .../66ed9009f45ce3ece4053eb7.md | 68 +- .../66ed9010f45ce3ece4053eb8.md | 8 +- .../66edd10913f078e7669eca81.md | 2 +- .../66ed901ff45ce3ece4053eba.md | 40 +- .../66edd3403d7077eece6dc4b6.md | 2 +- .../quiz-git/66f1b06a5a5d10cc100af620.md | 8 +- .../66ed9026f45ce3ece4053ebb.md | 4 +- .../66ed902df45ce3ece4053ebc.md | 244 +-- .../67358ac128957c865dcf3ddf.md | 2 +- .../66edcd0ecb4b25dc64a34804.md | 18 +- .../66edd3011f18f4ee1bd9d28b.md | 4 +- .../66edc31c44f1b9c1d5c5ebca.md | 24 +- .../66edc25ae5ea80bf6f785552.md | 94 +- .../66ed903cf45ce3ece4053ebe.md | 4 +- .../66ed9043f45ce3ece4053ebf.md | 12 +- .../671a887a7e62c75e9ab1ee4a.md | 20 +- .../67072fc183c7ca6c588feb4d.md | 9 +- .../671a955b74ab5588735800d1.md | 2 +- .../671a88d636cebc5fbd407b78.md | 17 +- .../671a940c69cdee833d4cc312.md | 4 +- .../671a907bad4538752765f2ff.md | 2 +- .../review-css/671a9a0a140c2b9d6a75629f.md | 10 +- .../6723cd54fc196dbd053f9dfb.md | 4 +- .../6723cc7a8e7aa3b9befd4bac.md | 2 +- .../6723ce555ff2dfc0cc04b69a.md | 4 +- .../671a87a39b88245a579c2271.md | 38 +- .../review-html/671a883163d5ab5d47145880.md | 151 +- .../6723c66f623701a3cdf72130.md | 2 +- .../6723cf27c6e9a0c3f3041385.md | 10 +- .../6723cc0ca05ce9b87a319ceb.md | 2 +- .../6723d2c154dd19d0025f7cd9.md | 2 +- .../6723c463e51a2d9b747d7529.md | 2 +- .../6723cdfa4ae237bf6b7e32eb.md | 8 +- .../6723c1946e4cd7909a836bb4.md | 2 +- .../6723be264695fb7e619fe1fa.md | 6 +- .../6723d3cfdd0717d3f1bf27e3.md | 46 +- .../6723d0ac516099c902394e8b.md | 4 +- .../67487e141bb6a7140a352e12.md | 2 +- .../671a83934b61f64cefe87a61.md | 12 +- .../5f356ed6cf6eab5f15f5cfe6.md | 5 + .../5f35e5c4321f818cdc4bed30.md | 2 +- .../66cc0a9e06e00b75d6782be9.md | 2 +- .../63b61490e633a22b4593e62f.md | 2 +- .../63c9e8fe3a6f022a05a04675.md | 198 ++- .../660404511dbf1b90eb23b617.md | 4 +- .../6604080b66ff6e942d8225b1.md | 4 +- .../66040ae710de0e96c26a0201.md | 2 +- .../646c48df8674cf2b91020ecc.md | 2 +- .../646ceb843412c74edee27a79.md | 16 +- .../646cf2249f02ca5233d9af7c.md | 8 +- .../6676a8b01e56ec1a1e07c202.md | 16 +- .../5dc174fcf86c76b9248c6eb2.md | 8 +- .../5dc24614f86c76b9248c6ebd.md | 2 +- .../5dfa37b9eacea3f48c6300b0.md | 3 +- .../671141feba228a35cefba82d.md | 2 +- .../61764c602bee6974e7790f35.md | 2 +- .../617bbb6b97a83f6d1f7d6e38.md | 2 +- .../61a49d15bdbb5e57cc6fd280.md | 2 +- .../64475c0b61cddb6feaab4e2e.md | 2 +- .../6464b1384318a5087190950a.md | 2 +- .../672b4434dd6d6a1edc405419.md | 2 +- .../6733319f1d586b1923e029e3.md | 6 +- .../673332a6b63f9f1e1f81ba9b.md | 6 +- .../673337337f794d3025ded433.md | 2 +- .../66a84111965a0c46df6bbd0a.md | 2 +- .../66a9401c9d660d6bb15993e2.md | 2 +- .../67116d7584d0b469b14579bf.md | 2 +- .../67116d7584d0b469b14579c1.md | 50 +- .../67116d7584d0b469b14579c2.md | 54 +- .../67116d7584d0b469b14579c3.md | 29 +- .../67116d7584d0b469b14579c4.md | 32 +- .../66c8ba975ee7230e29f6c4ad.md | 4 +- .../67471d60ce8e6268fe9e12f6.md | 604 +++++++ .../6747237371f13173c9f6c27e.md | 591 +++++++ .../674724ff8af92f7733e6d980.md | 585 +++++++ .../6747257cdf5412781e138bb2.md | 619 +++++++ .../6747274264e8a5799fb3e0b5.md | 626 +++++++ .../674728eda5829d7b4c360643.md | 629 +++++++ .../6747299cbed5107c6a00d64c.md | 656 ++++++++ .../67472ab9f570797dbb01568a.md | 656 ++++++++ .../67472eef7b4b7ba77b50929b.md | 664 ++++++++ .../67473042e8751eac62fafc82.md | 661 ++++++++ .../674735e3b28351b8b8f05807.md | 709 ++++++++ .../674757668684f9deaa6ac3c0.md | 676 ++++++++ .../674836ba82e9057dfee1849c.md | 690 ++++++++ .../674850b437668dd08edddbe2.md | 687 ++++++++ .../6748567229cc8fe3f706de02.md | 698 ++++++++ .../6748bab9827a356c39559214.md | 707 ++++++++ .../674dda6c6ae8bb538678e125.md | 671 ++++++++ .../674de4ee2039496c30a31b71.md | 693 ++++++++ .../674e2e4e04eb381ccfe92e15.md | 708 ++++++++ .../674e305b7bda7c1f4f37a930.md | 719 ++++++++ .../674e316e3892d32108ad2bb9.md | 692 ++++++++ .../674e34c42ee8f1237e4623cc.md | 712 ++++++++ .../674f489bf617af2bea9b92b5.md | 729 +++++++++ .../674f50cce486fb404751a29c.md | 729 +++++++++ .../674f534fa181f64a789ffcf9.md | 787 +++++++++ .../67503cecd563135d4f27b38e.md | 729 +++++++++ .../675057ce9acd418619127da4.md | 746 +++++++++ .../67505d3a32d45997d2af4c0f.md | 770 +++++++++ .../675069b67b8267b36fa550b3.md | 738 +++++++++ .../6750712ee950facad5edc203.md | 727 +++++++++ .../67516a431252ed30832fa7c6.md | 727 +++++++++ .../67516ca9b7fe6636208c5ab5.md | 726 +++++++++ .../67516e888477083c31614dc7.md | 743 +++++++++ .../67517ef2fae05b65108212db.md | 754 +++++++++ .../6751d5d32e58d065652e26a5.md | 747 +++++++++ .../6751e1c117350b7d3f356e1b.md | 749 +++++++++ .../6752c62efa90554c01415e7b.md | 768 +++++++++ .../6752ecd811c96d5dc33ae853.md | 760 +++++++++ .../6752edba757ff96404faf9e9.md | 769 +++++++++ .../675304e7937e62902e08a3ab.md | 764 +++++++++ .../675309b2795c2a9ae03b8812.md | 1442 +++++++++++++++++ .../67532282ab9b95d7083617ee.md | 795 +++++++++ .../675340b809683f45cae96539.md | 736 +++++++++ .../6757f2b25418da4f73e29eb6.md | 760 +++++++++ .../6758a61fc7e949923716ec41.md | 690 ++++++++ .../67594f37fa0c684835f1b064.md | 696 ++++++++ .../673339d96c56d36e963e888e.md | 2 +- .../6733b5632fb854bc6c58dc0d.md | 2 +- .../6733b5e6f210c1bd1afdf8b3.md | 2 +- .../67349ba230cff237c0f2bdf2.md | 2 +- .../67349d6e726b2c3c7f7301e8.md | 2 +- .../6734a13a29acdf47f2b8e161.md | 2 +- .../6734a2385c52c54d916a8b86.md | 2 +- .../6734a606e5968a5a19b77171.md | 4 +- .../6734a772196245601e4b80e0.md | 2 +- .../6734ab61e916486c80c490d1.md | 2 +- .../6734b36f1a3ce17e73327f24.md | 2 +- .../6734bbc0bd741598f942352e.md | 2 +- .../6734c10a327760a665b7d5b9.md | 2 +- .../6734eee1f9498cd90f9ae340.md | 2 +- .../6734f0ae9d1cf4dfd43a7805.md | 2 +- .../6734f6290ebd5cfbc75996af.md | 2 +- .../6734fa225c6667121e589f7e.md | 2 +- .../67350acfd2006f2777295b96.md | 2 +- .../67351225403acd3d6f70ed6d.md | 2 +- .../6735145b0ee741461bdbaa49.md | 2 +- .../673521668be7905059b2d555.md | 2 +- .../673529d08c0d9c5a4193a465.md | 2 +- .../673762590f4bc1771c3a1e97.md | 2 +- .../673788448f390305b34aa814.md | 2 +- .../6737a1a073a0d14c6544d301.md | 2 +- .../6737a5058ff3015829ce3265.md | 2 +- .../6737a95d5b431860f96ca7bb.md | 2 +- .../6737ac8e4fe7ae6b91c806bd.md | 2 +- .../6737c6d5d66b5cc3dac09c7b.md | 2 +- .../6738a5c704680355e29e077c.md | 2 +- .../6738a8035efec45acd8fdbf9.md | 2 +- .../6738ad2fd11775752d23ddc2.md | 2 +- .../67353fb237ffbd01af3be1cc.md | 36 +- .../673540f6e49ae33d6a235c20.md | 8 +- .../673542088e459b6def5d6e56.md | 8 +- .../6735424ecfeb557d81dcc9d1.md | 18 +- .../673543d867b44ac7580610a2.md | 44 +- .../66fbcf750a62784cf11f5630.md | 62 +- .../66fbcf750a62784cf11f5631.md | 26 +- .../66fbcf750a62784cf11f5632.md | 26 +- .../66fbcf750a62784cf11f5633.md | 14 +- .../66fbcf750a62784cf11f5635.md | 22 +- .../66fbcf750a62784cf11f5636.md | 18 +- .../670e4f45f7116c0f216a5177.md | 32 +- .../6740495ba48aa94e5667b436.md | 1 + .../6745d9df333efe2543a1f457.md | 4 +- .../674ef11f75254548672d998c.md | 125 ++ .../674ef2d357676e50e4691658.md | 116 ++ .../674ef2d357676e50e4691659.md | 166 ++ .../674ef2d357676e50e469165a.md | 117 ++ .../674ef2d357676e50e469165b.md | 126 ++ .../674ef2d357676e50e469165c.md | 144 ++ .../674ef2d357676e50e469165d.md | 265 +++ .../66cf33305293e1b35c1aef7f.md | 2 +- .../66e2d680e129e1423116a541.md | 2 +- .../66e2e5d890ac8a54c9d703bd.md | 2 +- .../66e2eab8a5638f57b637b7cc.md | 2 +- .../66e2f06b191e305c00574e4d.md | 10 +- .../66c742d045c9fc2e09fa64b1.md | 1 + .../66c748ffdfbe4f2ede268be2.md | 6 +- .../671fafbae959c048d82bac8d.md | 6 +- .../64fad9cd2eeb1e7ca2ca8c8b.md | 4 +- .../64ff04cc33779427a6412449.md | 2 +- 3179 files changed, 170459 insertions(+), 13253 deletions(-) create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0332ec59564081ec8b87.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0495e5f4b0485ed38cd4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f06b4b4d6eb4f6139ad61.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f08fde55c2356b37e9b69.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0afcd85abc5d478e150c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0d0dec2922641ce2c8e9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0f8e84b4c76c0f6ae6d3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f1a33acb7717de4842822.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f1ba48f50b78294f89089.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67504e15ec1851a15aad11c1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675052373a1887aaa89c9a22.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67505766bad3bcbac2f16fe4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67505903fa6affc0910b7a9d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675106629f2c07cec9bf2c71.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67510809633277d10d4fff4f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a781fd421fda55170fc8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a827719c0fdb5b66b8e3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a990269891dd6f0ab1c2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751ab72ff11cae0021d02d8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751aca2701270e188b07df9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751ad79009d66e2f5878282.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751aeb422ef45e4af25434d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bc2826c791ea69d7e8f2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bd2301b9feebf3813ac3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bdd2f78adbed1ea0fa51.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751beb68c063aee92555abe.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e404804c1c044c804b79.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e54369231d06538b4ac0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e83a806f520923bd28fa.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752eb5797ad390c7f40ef08.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752f4680f2d251372d4ae64.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752f6ebff95ee1781462c02.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fb3e6257c91b93721288.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fb92ecc7811d3a0f3320.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fc06607eba1e73a89929.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675948c97c0d4fd3d596960a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67594c1c9c8fc90a8e6f2f75.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67594e4ad681381278cee337.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675950eed633ac1ac3884471.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675961ce80a70e23e933fa8c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675963eadf3bcf2ae50f74fe.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675966e572894133e1b3b275.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a3d84d89c4474d6a06b6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a570761b794ba1dc57e5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a679b6934850b6b0a31d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a7cc60ea94557c578ed4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a98f5028cb5bdf0a6f4b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675beaae0511b83217778531.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d10fd9150e00d5ea464c2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d1437a379f517d766a249.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d16180e3c3f1e843ed138.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d177b1b7aca23c7f1b6d9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d18c725ee4928ba83fa7c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d6e0e52e8ee2d7b2b69cf.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d6f815fb6c83276d12870.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d710fb8118237e416155a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d72320c09a53c1020e59d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d72b7d86e163e326979e5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d7493249c24447ca9e166.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d86beee48ab4941767200.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d87ed627c734d9ee5c028.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d88ce781849512cd7d426.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8aabc2397c583c081ea9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8b482d5fa45b0226a891.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8c5d1a1d775f78424011.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8dfaad5f4765cbd8c013.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8eddf05fb469a75ef543.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d91adb9fb7173f4a7a4c7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e6dfe0160bb66faa60a68.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e6f0bf7f7eb69ddffef81.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e70d7b854926d7f18693c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e7387be428072d95baeac.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e79e6ecfda37e1f49be65.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e7cc999813e83379b139c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e8013d40d0d860143c14f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e80709ee205871518ba9b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e8133c874a588f947de57.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ecdef47179ea4653c2b9f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ecedbb04f6ca6dd620f0e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed1414303a6abfaac2d96.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed59b1e938bb2443585a5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed69e54ae31b462edf95b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed905490b9ab8f4e640c4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edb8012accfbd8f4135c5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edc3228d9d1bf95c5e649.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edeea805bb0c44385d0d5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ee01ee1d37cc722bbad83.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ee218782b4dcb26796c19.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa4789b65761b6c562a1b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa66d590e0127ba60b7f6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa827b0a17832dc798ba0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fb5315884dc456fad654a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fb7824cbbe3539de6111b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fba2a32b4aa625e2f7940.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbba5f9807566fb0c39ef.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbefa9f40157cad662e8d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbfc6fa824c820a7e49d4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fc02724147984cfe068d5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe3fb72bdcb97dd10b7c8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe58fb4c9539cb37b4065.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe6a1e81c4ba00f415364.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675feaafa5546fab32aa0736.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675febf4f03233af8e347802.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fee8f5d64f2b504e91281.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff2b7f9405abf27f26740.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff37bebf32bc223e3660a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff42fb8c8a6c4f21cd3bb.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff94f80bd9bd12c8497e2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f057483bbf684bfa6457.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f48b0fe69572664e85f1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f7ca38c9167853ebf917.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/676147de99ef019cee551581.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6761493d2db43ba139340975.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614992d9e494a2b69f89bb.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614a0187bd80a49d438b1f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614a6e5d4df6a6744127b7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673519c3d750b013c96f1e6f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67351b96eefe7c282ec1424b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673653fa580778853a7a7afd.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673654d11366b18b1c76d980.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673655ea628630928b5b50b8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6736576b5407af9bdf1f41b7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67365a08481f68acc18a9639.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba128855f6e78cd392dab.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba3a9d1858104dfbba180.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba5bf35e3b51211c27c2b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba72bd5ef6a1bc39ba037.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba8558f0a93235de58ccb.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba99a1280af2ba7770b56.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673bab51ecb42c369eb6b37b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673bad5d57b0a6444819ca0e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673baec00a78e04d5c6a9ea2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673c03eb9c3d4c2e12555aaf.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673c06abb58d403f7e4533fb.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673c07da6aa1be470dc55332.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673c097ad524db51cca7ae3f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/673c0bf736904660a9077269.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67472118e6040e52ad3ca5b0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67472280c0b01f5e1442f8da.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67472348ce54e263862c5386.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3864432aea6f5ce708ed.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3b2f69b2e481d4f6cebe.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3bc223f6c5862facf3e2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3cb5a611618cd5301758.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506acdf255ff94e0ba712e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506bd2d567359bac72f760.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506c7db9d148a0308107d8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506d2c92a80fa4b7a912a7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506e16a9e0bdaad7267c35.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506e940e1d20ae6f0fc7e2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67506f57df7629b3d8d90f11.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675070049d1f9fb8c1bced11.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675070d075960bbe3f92eca6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675074863d75f1d559b039df.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6750758f8581d3dcfeb1c386.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6750775f2b0832e88216e98c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6750784c1399a9ef62b27e9e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67507a47729d85fb7c88ee06.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67507adbc31ab8ffa2dc5243.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67507f042946421936eb425a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67508b92b31af876eed82c66.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6752100607e30e31bd85af76.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6752133caed6e849142fcc19.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6752136c94c79a4ad803f0cf.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675213a1aa7da34c876d94e9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675213f5a47d9e4ef23d9050.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67531709d628ef047202e6ae.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675318543812fa0f15f42c10.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67531ca2cb308e28acf3bdc1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67531f0c699943385e41734c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67531ff45ade873e5ff17211.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67532227a04e5e4cd4ccf987.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675323b130ad71572ef10510.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67532445152d375af93d4d19.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675325cfea799165252500d4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675326de48b3e36c45ba1328.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675327d73a38d5731235d764.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675329bc0e2bfa7f1c4f7411.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67532ac8b110a08666ee5f18.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67532bbaa817558e7691df51.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67532c49e75faf929fd9378d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6753314748a2feb09a3059b2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67533335139a96bd1eb18395.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6753357b948f6acb55e35e3b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67535bfb5c07ec6334ec8ea3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67535e02fd808570ca6cb599.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675743f6f7016d1074a9bca1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675746c2d3d2f222111918d4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6757488ee5dfb72d866a36df.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6757498f826b0634696f224e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67574a712cb1143a3920f2a3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67574bb2fe3c4c42bae7b6e5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67574c6d474104486add91a7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67574d8786f50e500eae8e67.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67575000c0fd5b5f211d89c4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6757531dc5fbb973e1912e1a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675753a815259c781d2b6913.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67575473b14c837d8de3a866.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67575588dfebc085e31941e4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67575734a3672990f7c4385a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6757585d71b1ad9924a96eb9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675758e09f09139cb34169f9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67575a0d4b966da41383050b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c8db0264a83364dc521ac.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c8f75eaf3914275999cae.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c900ff099fa46fad7624d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c91b0c74a72519ebb0a83.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c92e9a6133659ccad5424.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c94decb56d46654acf008.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9579b10f316b5542b331.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c96e7feed5f75004ea8a4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9900820144823ed5b11a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9a309dcbc3053601e653.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9a9d87d492086e1ab3cf.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67619dab2031295f7b4dcee1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761c4698166cd2462c1d685.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761c69821431133f4860640.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ca7cf0fd854c646ebd11.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761cae47045b54f50840915.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761cb950d555c54150b2212.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e3efbd12c067489c90fe.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e51505b1d96f537b089e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e7b82f98fc7fb7d9c06b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e90350ebde88221daeea.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e99e3e0f098cc0f265aa.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761eb2e4b1192968b2303f4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ecb48889faa066740143.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ee00596d9fa8c8c3ac90.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f0dc81967cbbe1118dae.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f1e5287834c2cb5f4631.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f2fbd2db7aca063b6a5c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f509323d5ad6cfe9d212.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f66b536d13df9a6e4b87.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f6dc272d86e2f315b79c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f838245300ebfcf372cd.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f9d7a849d8f61aa12deb.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6762dceeac22841f223b0101.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6762e2adb437563844364cf1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6762e430c7646a422c17966f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6762edd89388ad7b3950d01a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6762f11f6a96d19057229bf2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676320cd1c9cee55ab53687a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676321f8a8692b5d4b211dde.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67632267336dcf6068f39407.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763238e902cdf688f49152f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763251d0b7d8872b5543df8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676325dfad1ee0784c7f1a5e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763271c3d195780a672e061.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763285df9a9b6039696c389.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67632a419a12aa10b1e76954.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67632cefda53f021ab6ecfb4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67632e1b477101295cf2fc77.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67632f1219de712fcf37d295.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633077c55c0f38b9166323.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763322b77048c43b92f9c28.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633424bfc56f4fec3edf3c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676335dbbbe14c5acdafc970.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676338a796ace16be009e9d6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676339b7a8460f7302b2d966.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633a6ff2f2ef78701975c9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633b012085337c52b93096.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633b85c9f913803fd8591c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67633d331eeb858a9803794f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67634107b478caa17f37c628.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/67634294671bb8ac40e2cc85.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/676342de292eafae91acee29.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-plan-future-events/6763432a8c2ae1b0de0e1fc0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704f438e6e9120d5a1274c6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704fbd43885300e4aa221e9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704fd952ad2560e9a7ca070.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705055b28e3c20fce27a15c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67050a8becee6d10619fa5ff.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67050fd29a37de112051064b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670515561e620a11f2d7308c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705177d1d3dbb124955a397.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670518bd8ec6f012af235433.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67051b185149b6130426a9ad.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053619dd65bd1459449bf0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670538f8565fb514ddf24b85.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053b9fe0a27715979bee1b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053ea535fe23160e6b29c1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053faa1471c916446ad615.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670541bdd115c71686a398c3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705425a4b3df216cb6de9a7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705442e6a6ebf1725bc8e1f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705573e13b1211820a3ac67.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055872382df21871200427.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055c02b6774a18f8f7186f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055d274231051940d0c8ea.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055f5c9bdb8e1999102827.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705605c7fb8f619e0068634.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670561a8af3d901a431549fe.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670562a2aa92081a89ba77f6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705638c3791881aed186e9d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670564e883b7911b4ec31e29.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67056697de96ba1ba012eb44.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67056b4950144e1cf10c53a6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670570ad97d26e1d6bad572d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705725e2814c91dd738e8f4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705742b9616e01e275e5c08.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67057604ca099f1e7df78e77.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67057e02da44871f492f6f35.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f6ca334a541048d0e9a76.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f74145be4b907a1b9c915.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710bc2f9f242e03ebeccbe9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710bf5df20df90498c991a2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710c59075616806206fcf44.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710c7bd388290075f19552c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710e0e2cafeeb09e6cb2d8f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710e614f70bd10afb6ca7f7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710ef64fecf900ca5296978.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121364e79da2047818b743.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121be3d5093805dfdbaa71.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121d26052fb606bd59705c.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67122e8300d8e90843b04967.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67176c867303f30476f3d126.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717756d3483e6060d2cd800.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775877ee558061e6eebf8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775a360c128062f906b24.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775bb104def063ffbdaab.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775db2ecd44064fdb1f04.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775f2f55c4c066193a1c1.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717760c06f5e10671ef0268.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b543037e030fc7008aa7.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b55fb3b4160fd757b7af.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5754dcaae0fe7bb179b.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b59830cdb50ff9f67623.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5b2b0c1d21009b2b0fd.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5c73e81e8101bed0ea2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5dc5fd2c0102b2aacec.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5f5be4456103b8ff767.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b611f1230c104cbf5d38.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b6a5308335105c51cfe6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d19c62da85c0982472a57.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f358f62320b707af87f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f5590e7110b82940771.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f7ca5f2aa0bb63b9e22.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f94461c820bc68e3694.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1fab38a4710bd7a6b9c0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d292ef6180210164c33e8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7579f5e0000560fcce55.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7592e571ad05716b2c67.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75ab41a1520581f5923a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75ca1748e8059234fa3d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75e368cbd505a301ca7d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75fea017ea05b31a80c6.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f761703824805c35c2eda.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f765a22e32e05d4f5074e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76959b3ca3060eddbe70.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76b915c1cf062570fdfc.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76d4b7384c063c097048.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76eede9f200652954940.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7708379ef00668b843d4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7727d2e4240680c126bc.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f774373f2ce0696fe9621.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7767854d6806ac4fb5f4.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f77bfcd2bc306c2f6f338.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f77dedcc3b006dcfa9c73.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7800b5174406f2d0df76.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f78193bb0510709b169b8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7834b9a323071f7a325e.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7852f3a7e80737cc21d0.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f786a18c275074d55d298.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f788c2665b807636b31a8.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6746005e0cf96b701d861793.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674604ef287b978febd50bc9.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674605049656269110601a79.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674609a92ccf079d86cd81db.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67460b84234b70a4772d2094.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67461094ba7296b13c1bb045.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674612ab7e6b0ab83408262a.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674616565854f7c788740cee.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674619b6699a06d064c9717f.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67461c06865e13d715967f1d.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/675060b39af6ab3f14f394e2.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6750651aafcea04c6958a4e5.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6750697ee8b87f5e665c0712.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/675846ef3e2e50e95e99aded.md create mode 100644 curriculum/challenges/italian/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6758486d05a8fcf01a20c8b4.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-colored-boxes/66f3f6eb66ea9dc41cdc30df.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-customer-complaint-form/67279fe50237291f80eed8b8.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-drum-machine/6762ec275cef87635acc4fe3.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-magazine-layout/6735a7370e0ae93a4577c689.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-password-generator/66f53dc2c5bd6a11d6c3282f.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lab-sorting-visualizer/6716249b5405164036fd0b0d.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lecture-welcome-to-freecodecamp/6763500bd5a85d5898cc21a9.md create mode 100644 curriculum/challenges/italian/25-front-end-development/lecture-what-is-html/6708143cab2b583ecd3324f5.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67471d60ce8e6268fe9e12f6.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6747237371f13173c9f6c27e.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674724ff8af92f7733e6d980.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6747257cdf5412781e138bb2.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6747274264e8a5799fb3e0b5.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674728eda5829d7b4c360643.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6747299cbed5107c6a00d64c.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67472ab9f570797dbb01568a.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67472eef7b4b7ba77b50929b.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67473042e8751eac62fafc82.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674735e3b28351b8b8f05807.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674757668684f9deaa6ac3c0.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674836ba82e9057dfee1849c.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674850b437668dd08edddbe2.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6748567229cc8fe3f706de02.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6748bab9827a356c39559214.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674dda6c6ae8bb538678e125.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674de4ee2039496c30a31b71.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674e2e4e04eb381ccfe92e15.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674e305b7bda7c1f4f37a930.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674e316e3892d32108ad2bb9.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674e34c42ee8f1237e4623cc.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674f489bf617af2bea9b92b5.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674f50cce486fb404751a29c.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/674f534fa181f64a789ffcf9.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67503cecd563135d4f27b38e.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/675057ce9acd418619127da4.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67505d3a32d45997d2af4c0f.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/675069b67b8267b36fa550b3.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6750712ee950facad5edc203.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67516a431252ed30832fa7c6.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67516ca9b7fe6636208c5ab5.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67516e888477083c31614dc7.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67517ef2fae05b65108212db.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6751d5d32e58d065652e26a5.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6751e1c117350b7d3f356e1b.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6752c62efa90554c01415e7b.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6752ecd811c96d5dc33ae853.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6752edba757ff96404faf9e9.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/675304e7937e62902e08a3ab.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/675309b2795c2a9ae03b8812.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67532282ab9b95d7083617ee.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/675340b809683f45cae96539.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6757f2b25418da4f73e29eb6.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/6758a61fc7e949923716ec41.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-music-player/67594f37fa0c684835f1b064.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef11f75254548672d998c.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e4691658.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e4691659.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165a.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165b.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165c.md create mode 100644 curriculum/challenges/italian/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165d.md create mode 100644 curriculum/challenges/korean/25-front-end-development/lecture-what-is-html/6708143cab2b583ecd3324f5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0332ec59564081ec8b87.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0495e5f4b0485ed38cd4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f06b4b4d6eb4f6139ad61.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f08fde55c2356b37e9b69.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0afcd85abc5d478e150c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0d0dec2922641ce2c8e9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f0f8e84b4c76c0f6ae6d3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f1a33acb7717de4842822.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/674f1ba48f50b78294f89089.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67504e15ec1851a15aad11c1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675052373a1887aaa89c9a22.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67505766bad3bcbac2f16fe4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67505903fa6affc0910b7a9d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675106629f2c07cec9bf2c71.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67510809633277d10d4fff4f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a781fd421fda55170fc8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a827719c0fdb5b66b8e3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751a990269891dd6f0ab1c2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751ab72ff11cae0021d02d8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751aca2701270e188b07df9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751ad79009d66e2f5878282.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751aeb422ef45e4af25434d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bc2826c791ea69d7e8f2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bd2301b9feebf3813ac3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751bdd2f78adbed1ea0fa51.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6751beb68c063aee92555abe.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e404804c1c044c804b79.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e54369231d06538b4ac0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752e83a806f520923bd28fa.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752eb5797ad390c7f40ef08.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752f4680f2d251372d4ae64.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752f6ebff95ee1781462c02.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fb3e6257c91b93721288.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fb92ecc7811d3a0f3320.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6752fc06607eba1e73a89929.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675948c97c0d4fd3d596960a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67594c1c9c8fc90a8e6f2f75.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67594e4ad681381278cee337.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675950eed633ac1ac3884471.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675961ce80a70e23e933fa8c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675963eadf3bcf2ae50f74fe.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675966e572894133e1b3b275.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a3d84d89c4474d6a06b6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a570761b794ba1dc57e5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a679b6934850b6b0a31d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a7cc60ea94557c578ed4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6759a98f5028cb5bdf0a6f4b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675beaae0511b83217778531.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d10fd9150e00d5ea464c2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d1437a379f517d766a249.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d16180e3c3f1e843ed138.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d177b1b7aca23c7f1b6d9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d18c725ee4928ba83fa7c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d6e0e52e8ee2d7b2b69cf.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d6f815fb6c83276d12870.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d710fb8118237e416155a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d72320c09a53c1020e59d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d72b7d86e163e326979e5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d7493249c24447ca9e166.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d86beee48ab4941767200.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d87ed627c734d9ee5c028.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d88ce781849512cd7d426.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8aabc2397c583c081ea9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8b482d5fa45b0226a891.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8c5d1a1d775f78424011.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8dfaad5f4765cbd8c013.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d8eddf05fb469a75ef543.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675d91adb9fb7173f4a7a4c7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e6dfe0160bb66faa60a68.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e6f0bf7f7eb69ddffef81.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e70d7b854926d7f18693c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e7387be428072d95baeac.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e79e6ecfda37e1f49be65.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e7cc999813e83379b139c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e8013d40d0d860143c14f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e80709ee205871518ba9b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675e8133c874a588f947de57.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ecdef47179ea4653c2b9f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ecedbb04f6ca6dd620f0e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed1414303a6abfaac2d96.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed59b1e938bb2443585a5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed69e54ae31b462edf95b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ed905490b9ab8f4e640c4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edb8012accfbd8f4135c5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edc3228d9d1bf95c5e649.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675edeea805bb0c44385d0d5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ee01ee1d37cc722bbad83.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ee218782b4dcb26796c19.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa4789b65761b6c562a1b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa66d590e0127ba60b7f6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fa827b0a17832dc798ba0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fb5315884dc456fad654a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fb7824cbbe3539de6111b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fba2a32b4aa625e2f7940.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbba5f9807566fb0c39ef.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbefa9f40157cad662e8d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fbfc6fa824c820a7e49d4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fc02724147984cfe068d5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe3fb72bdcb97dd10b7c8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe58fb4c9539cb37b4065.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fe6a1e81c4ba00f415364.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675feaafa5546fab32aa0736.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675febf4f03233af8e347802.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675fee8f5d64f2b504e91281.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff2b7f9405abf27f26740.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff37bebf32bc223e3660a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff42fb8c8a6c4f21cd3bb.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/675ff94f80bd9bd12c8497e2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f057483bbf684bfa6457.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f48b0fe69572664e85f1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6760f7ca38c9167853ebf917.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/676147de99ef019cee551581.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/6761493d2db43ba139340975.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614992d9e494a2b69f89bb.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614a0187bd80a49d438b1f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-future-continuous-while-describing-actions/67614a6e5d4df6a6744127b7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673519c3d750b013c96f1e6f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67351b96eefe7c282ec1424b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673653fa580778853a7a7afd.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673654d11366b18b1c76d980.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673655ea628630928b5b50b8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6736576b5407af9bdf1f41b7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67365a08481f68acc18a9639.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba128855f6e78cd392dab.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba3a9d1858104dfbba180.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba5bf35e3b51211c27c2b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba72bd5ef6a1bc39ba037.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba8558f0a93235de58ccb.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673ba99a1280af2ba7770b56.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673bab51ecb42c369eb6b37b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673bad5d57b0a6444819ca0e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673baec00a78e04d5c6a9ea2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673c03eb9c3d4c2e12555aaf.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673c06abb58d403f7e4533fb.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673c07da6aa1be470dc55332.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673c097ad524db51cca7ae3f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/673c0bf736904660a9077269.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67472118e6040e52ad3ca5b0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67472280c0b01f5e1442f8da.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67472348ce54e263862c5386.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3864432aea6f5ce708ed.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3b2f69b2e481d4f6cebe.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3bc223f6c5862facf3e2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/674e3cb5a611618cd5301758.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506acdf255ff94e0ba712e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506bd2d567359bac72f760.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506c7db9d148a0308107d8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506d2c92a80fa4b7a912a7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506e16a9e0bdaad7267c35.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506e940e1d20ae6f0fc7e2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67506f57df7629b3d8d90f11.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675070049d1f9fb8c1bced11.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675070d075960bbe3f92eca6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675074863d75f1d559b039df.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6750758f8581d3dcfeb1c386.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6750775f2b0832e88216e98c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6750784c1399a9ef62b27e9e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67507a47729d85fb7c88ee06.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67507adbc31ab8ffa2dc5243.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67507f042946421936eb425a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67508b92b31af876eed82c66.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6752100607e30e31bd85af76.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6752133caed6e849142fcc19.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6752136c94c79a4ad803f0cf.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675213a1aa7da34c876d94e9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675213f5a47d9e4ef23d9050.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67531709d628ef047202e6ae.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675318543812fa0f15f42c10.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67531ca2cb308e28acf3bdc1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67531f0c699943385e41734c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67531ff45ade873e5ff17211.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67532227a04e5e4cd4ccf987.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675323b130ad71572ef10510.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67532445152d375af93d4d19.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675325cfea799165252500d4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675326de48b3e36c45ba1328.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675327d73a38d5731235d764.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675329bc0e2bfa7f1c4f7411.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67532ac8b110a08666ee5f18.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67532bbaa817558e7691df51.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67532c49e75faf929fd9378d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6753314748a2feb09a3059b2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67533335139a96bd1eb18395.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6753357b948f6acb55e35e3b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67535bfb5c07ec6334ec8ea3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67535e02fd808570ca6cb599.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675743f6f7016d1074a9bca1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675746c2d3d2f222111918d4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6757488ee5dfb72d866a36df.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6757498f826b0634696f224e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67574a712cb1143a3920f2a3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67574bb2fe3c4c42bae7b6e5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67574c6d474104486add91a7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67574d8786f50e500eae8e67.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67575000c0fd5b5f211d89c4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6757531dc5fbb973e1912e1a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675753a815259c781d2b6913.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67575473b14c837d8de3a866.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67575588dfebc085e31941e4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67575734a3672990f7c4385a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6757585d71b1ad9924a96eb9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675758e09f09139cb34169f9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67575a0d4b966da41383050b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c8db0264a83364dc521ac.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c8f75eaf3914275999cae.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c900ff099fa46fad7624d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c91b0c74a72519ebb0a83.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c92e9a6133659ccad5424.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c94decb56d46654acf008.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9579b10f316b5542b331.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c96e7feed5f75004ea8a4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9900820144823ed5b11a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9a309dcbc3053601e653.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/675c9a9d87d492086e1ab3cf.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67619dab2031295f7b4dcee1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761c4698166cd2462c1d685.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761c69821431133f4860640.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ca7cf0fd854c646ebd11.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761cae47045b54f50840915.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761cb950d555c54150b2212.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e3efbd12c067489c90fe.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e51505b1d96f537b089e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e7b82f98fc7fb7d9c06b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e90350ebde88221daeea.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761e99e3e0f098cc0f265aa.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761eb2e4b1192968b2303f4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ecb48889faa066740143.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761ee00596d9fa8c8c3ac90.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f0dc81967cbbe1118dae.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f1e5287834c2cb5f4631.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f2fbd2db7aca063b6a5c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f509323d5ad6cfe9d212.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f66b536d13df9a6e4b87.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f6dc272d86e2f315b79c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f838245300ebfcf372cd.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6761f9d7a849d8f61aa12deb.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6762dceeac22841f223b0101.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6762e2adb437563844364cf1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6762e430c7646a422c17966f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6762edd89388ad7b3950d01a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6762f11f6a96d19057229bf2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676320cd1c9cee55ab53687a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676321f8a8692b5d4b211dde.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67632267336dcf6068f39407.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763238e902cdf688f49152f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763251d0b7d8872b5543df8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676325dfad1ee0784c7f1a5e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763271c3d195780a672e061.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763285df9a9b6039696c389.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67632a419a12aa10b1e76954.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67632cefda53f021ab6ecfb4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67632e1b477101295cf2fc77.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67632f1219de712fcf37d295.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633077c55c0f38b9166323.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763322b77048c43b92f9c28.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633424bfc56f4fec3edf3c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676335dbbbe14c5acdafc970.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676338a796ace16be009e9d6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676339b7a8460f7302b2d966.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633a6ff2f2ef78701975c9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633b012085337c52b93096.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633b85c9f913803fd8591c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67633d331eeb858a9803794f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67634107b478caa17f37c628.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/67634294671bb8ac40e2cc85.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/676342de292eafae91acee29.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-plan-future-events/6763432a8c2ae1b0de0e1fc0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704f438e6e9120d5a1274c6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704fbd43885300e4aa221e9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6704fd952ad2560e9a7ca070.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705055b28e3c20fce27a15c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67050a8becee6d10619fa5ff.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67050fd29a37de112051064b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670515561e620a11f2d7308c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705177d1d3dbb124955a397.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670518bd8ec6f012af235433.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67051b185149b6130426a9ad.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053619dd65bd1459449bf0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670538f8565fb514ddf24b85.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053b9fe0a27715979bee1b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053ea535fe23160e6b29c1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67053faa1471c916446ad615.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670541bdd115c71686a398c3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705425a4b3df216cb6de9a7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705442e6a6ebf1725bc8e1f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705573e13b1211820a3ac67.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055872382df21871200427.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055c02b6774a18f8f7186f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055d274231051940d0c8ea.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67055f5c9bdb8e1999102827.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705605c7fb8f619e0068634.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670561a8af3d901a431549fe.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670562a2aa92081a89ba77f6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705638c3791881aed186e9d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670564e883b7911b4ec31e29.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67056697de96ba1ba012eb44.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67056b4950144e1cf10c53a6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670570ad97d26e1d6bad572d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705725e2814c91dd738e8f4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6705742b9616e01e275e5c08.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67057604ca099f1e7df78e77.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67057e02da44871f492f6f35.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f6ca334a541048d0e9a76.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/670f74145be4b907a1b9c915.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710bc2f9f242e03ebeccbe9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710bf5df20df90498c991a2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710c59075616806206fcf44.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710c7bd388290075f19552c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710e0e2cafeeb09e6cb2d8f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710e614f70bd10afb6ca7f7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6710ef64fecf900ca5296978.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121364e79da2047818b743.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121be3d5093805dfdbaa71.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67121d26052fb606bd59705c.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67122e8300d8e90843b04967.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67176c867303f30476f3d126.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717756d3483e6060d2cd800.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775877ee558061e6eebf8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775a360c128062f906b24.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775bb104def063ffbdaab.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775db2ecd44064fdb1f04.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671775f2f55c4c066193a1c1.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717760c06f5e10671ef0268.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b543037e030fc7008aa7.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b55fb3b4160fd757b7af.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5754dcaae0fe7bb179b.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b59830cdb50ff9f67623.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5b2b0c1d21009b2b0fd.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5c73e81e8101bed0ea2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5dc5fd2c0102b2aacec.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b5f5be4456103b8ff767.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b611f1230c104cbf5d38.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6717b6a5308335105c51cfe6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d19c62da85c0982472a57.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f358f62320b707af87f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f5590e7110b82940771.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f7ca5f2aa0bb63b9e22.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1f94461c820bc68e3694.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d1fab38a4710bd7a6b9c0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671d292ef6180210164c33e8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7579f5e0000560fcce55.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7592e571ad05716b2c67.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75ab41a1520581f5923a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75ca1748e8059234fa3d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75e368cbd505a301ca7d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f75fea017ea05b31a80c6.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f761703824805c35c2eda.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f765a22e32e05d4f5074e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76959b3ca3060eddbe70.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76b915c1cf062570fdfc.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76d4b7384c063c097048.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f76eede9f200652954940.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7708379ef00668b843d4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7727d2e4240680c126bc.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f774373f2ce0696fe9621.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7767854d6806ac4fb5f4.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f77bfcd2bc306c2f6f338.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f77dedcc3b006dcfa9c73.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7800b5174406f2d0df76.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f78193bb0510709b169b8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7834b9a323071f7a325e.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f7852f3a7e80737cc21d0.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f786a18c275074d55d298.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/671f788c2665b807636b31a8.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6746005e0cf96b701d861793.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674604ef287b978febd50bc9.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674605049656269110601a79.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674609a92ccf079d86cd81db.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67460b84234b70a4772d2094.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67461094ba7296b13c1bb045.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674612ab7e6b0ab83408262a.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674616565854f7c788740cee.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/674619b6699a06d064c9717f.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/67461c06865e13d715967f1d.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/675060b39af6ab3f14f394e2.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6750651aafcea04c6958a4e5.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6750697ee8b87f5e665c0712.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/675846ef3e2e50e95e99aded.md create mode 100644 curriculum/challenges/portuguese/24-b1-english-for-developers/learn-how-to-talk-about-past-experiences/6758486d05a8fcf01a20c8b4.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-colored-boxes/66f3f6eb66ea9dc41cdc30df.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-customer-complaint-form/67279fe50237291f80eed8b8.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-drum-machine/6762ec275cef87635acc4fe3.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-magazine-layout/6735a7370e0ae93a4577c689.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-password-generator/66f53dc2c5bd6a11d6c3282f.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lab-sorting-visualizer/6716249b5405164036fd0b0d.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lecture-welcome-to-freecodecamp/6763500bd5a85d5898cc21a9.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/lecture-what-is-html/6708143cab2b583ecd3324f5.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67471d60ce8e6268fe9e12f6.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6747237371f13173c9f6c27e.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674724ff8af92f7733e6d980.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6747257cdf5412781e138bb2.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6747274264e8a5799fb3e0b5.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674728eda5829d7b4c360643.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6747299cbed5107c6a00d64c.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67472ab9f570797dbb01568a.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67472eef7b4b7ba77b50929b.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67473042e8751eac62fafc82.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674735e3b28351b8b8f05807.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674757668684f9deaa6ac3c0.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674836ba82e9057dfee1849c.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674850b437668dd08edddbe2.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6748567229cc8fe3f706de02.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6748bab9827a356c39559214.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674dda6c6ae8bb538678e125.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674de4ee2039496c30a31b71.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674e2e4e04eb381ccfe92e15.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674e305b7bda7c1f4f37a930.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674e316e3892d32108ad2bb9.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674e34c42ee8f1237e4623cc.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674f489bf617af2bea9b92b5.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674f50cce486fb404751a29c.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/674f534fa181f64a789ffcf9.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67503cecd563135d4f27b38e.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/675057ce9acd418619127da4.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67505d3a32d45997d2af4c0f.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/675069b67b8267b36fa550b3.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6750712ee950facad5edc203.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67516a431252ed30832fa7c6.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67516ca9b7fe6636208c5ab5.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67516e888477083c31614dc7.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67517ef2fae05b65108212db.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6751d5d32e58d065652e26a5.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6751e1c117350b7d3f356e1b.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6752c62efa90554c01415e7b.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6752ecd811c96d5dc33ae853.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6752edba757ff96404faf9e9.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/675304e7937e62902e08a3ab.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/675309b2795c2a9ae03b8812.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67532282ab9b95d7083617ee.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/675340b809683f45cae96539.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6757f2b25418da4f73e29eb6.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/6758a61fc7e949923716ec41.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-music-player/67594f37fa0c684835f1b064.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef11f75254548672d998c.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e4691658.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e4691659.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165a.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165b.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165c.md create mode 100644 curriculum/challenges/portuguese/25-front-end-development/workshop-reusable-profile-card-component/674ef2d357676e50e469165d.md diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md index 4743b87c06..f00bc51b8c 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md @@ -17,61 +17,61 @@ Check if a value is classified as a boolean primitive. Return `true` or `false`. `booWho(true)` 應返回 `true`。 ```js -assert.strictEqual(booWho(true), true); +assert.isTrue(booWho(true)); ``` `booWho(false)` 應該返回 `true`。 ```js -assert.strictEqual(booWho(false), true); +assert.isTrue(booWho(false)); ``` `booWho([1, 2, 3])` 應該返回 `false`。 ```js -assert.strictEqual(booWho([1, 2, 3]), false); +assert.isFalse(booWho([1, 2, 3])); ``` `booWho([].slice)` 應該返回 `false`。 ```js -assert.strictEqual(booWho([].slice), false); +assert.isFalse(booWho([].slice)); ``` `booWho({ "a": 1 })` 應該返回 `false`。 ```js -assert.strictEqual(booWho({ a: 1 }), false); +assert.isFalse(booWho({ a: 1 })); ``` `booWho(1)` 應該返回 `false`。 ```js -assert.strictEqual(booWho(1), false); +assert.isFalse(booWho(1)); ``` `booWho(NaN)` 應該返回 `false`。 ```js -assert.strictEqual(booWho(NaN), false); +assert.isFalse(booWho(NaN)); ``` `booWho("a")` 應該返回 `false`。 ```js -assert.strictEqual(booWho('a'), false); +assert.isFalse(booWho('a')); ``` `booWho("true")` 應該返回 `false`。 ```js -assert.strictEqual(booWho('true'), false); +assert.isFalse(booWho('true')); ``` `booWho("false")` 應該返回 `false`。 ```js -assert.strictEqual(booWho('false'), false); +assert.isFalse(booWho('false')); ``` # --seed-- @@ -90,7 +90,7 @@ booWho(null); ```js function booWho(bool) { - return typeof bool === "boolean"; + return typeof bool === 'boolean'; } booWho(null); diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md index 3292a11566..3bb0bfe512 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md @@ -90,7 +90,7 @@ function chunkArrayInGroups(arr, size) { return arr; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` # --solutions-- @@ -106,5 +106,5 @@ function chunkArrayInGroups(arr, size) { return out; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md index b87f5fc992..ffc28c0572 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md @@ -10,84 +10,85 @@ dashedName: confirm-the-ending Check if a string (first argument, `str`) ends with the given target string (second argument, `target`). -This challenge *can* be solved with the `.endsWith()` method, which was introduced in ES2015. But for the purpose of this challenge, we would like you to use one of the JavaScript substring methods instead. +This challenge _can_ be solved with the `.endsWith()` method, which was introduced in ES2015. But for the purpose of this challenge, we would like you to use one of the JavaScript substring methods instead. # --hints-- `confirmEnding("Bastian", "n")` should return `true`. ```js -assert(confirmEnding('Bastian', 'n') === true); +assert.isTrue(confirmEnding('Bastian', 'n')); ``` `confirmEnding("Congratulation", "on")` should return `true`. ```js -assert(confirmEnding('Congratulation', 'on') === true); +assert.isTrue(confirmEnding('Congratulation', 'on')); ``` `confirmEnding("Connor", "n")` should return `false`. ```js -assert(confirmEnding('Connor', 'n') === false); +assert.isFalse(confirmEnding('Connor', 'n')); ``` `confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification")` should return `false`. ```js -assert( +assert.isFalse( confirmEnding( 'Walking on water and developing software from a specification are easy if both are frozen', 'specification' - ) === false + ) ); ``` `confirmEnding("He has to give me a new name", "name")` should return `true`. ```js -assert(confirmEnding('He has to give me a new name', 'name') === true); +assert.isTrue(confirmEnding('He has to give me a new name', 'name')); ``` `confirmEnding("Open sesame", "same")` should return `true`. ```js -assert(confirmEnding('Open sesame', 'same') === true); +assert.isTrue(confirmEnding('Open sesame', 'same')); ``` `confirmEnding("Open sesame", "sage")` should return `false`. ```js -assert(confirmEnding('Open sesame', 'sage') === false); +assert.isFalse(confirmEnding('Open sesame', 'sage')); ``` `confirmEnding("Open sesame", "game")` should return `false`. ```js -assert(confirmEnding('Open sesame', 'game') === false); +assert.isFalse(confirmEnding('Open sesame', 'game')); ``` `confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain")` should return `false`. ```js -assert( +assert.isFalse( confirmEnding( 'If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing', 'mountain' - ) === false + ) ); ``` `confirmEnding("Abstraction", "action")` should return `true`. ```js -assert(confirmEnding('Abstraction', 'action') === true); +assert.isTrue(confirmEnding('Abstraction', 'action')); ``` Your code should not use the built-in method `.endsWith()` to solve the challenge. ```js -assert(!/\.endsWith\(.*?\)\s*?;?/.test(__helpers.removeJSComments(code)) && !/\['endsWith'\]/.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.endsWith\(.*?\)\s*?;?/); +assert.notMatch(__helpers.removeJSComments(code), /\['endsWith'\]/); ``` # --seed-- @@ -99,7 +100,7 @@ function confirmEnding(str, target) { return str; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` # --solutions-- @@ -109,5 +110,5 @@ function confirmEnding(str, target) { return str.substring(str.length - target.length) === target; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md index c99d46951d..78a8ea8c59 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md @@ -17,37 +17,37 @@ The formula to convert from Celsius to Fahrenheit is the temperature in Celsius `convertCtoF(0)` 應該返回一個數字 ```js -assert(typeof convertCtoF(0) === 'number'); +assert.isNumber(convertCtoF(0)); ``` `convertCtoF(-30)` 應該返回 `-22` 的值 ```js -assert(convertCtoF(-30) === -22); +assert.strictEqual(convertCtoF(-30), -22); ``` `convertCtoF(-10)` 應該返回 `14` 的值 ```js -assert(convertCtoF(-10) === 14); +assert.strictEqual(convertCtoF(-10), 14); ``` `convertCtoF(0)` 應該返回 `32` 的值 ```js -assert(convertCtoF(0) === 32); +assert.strictEqual(convertCtoF(0), 32); ``` `convertCtoF(20)` 應該返回 `68` 的值 ```js -assert(convertCtoF(20) === 68); +assert.strictEqual(convertCtoF(20), 68); ``` `convertCtoF(30)` 應該返回 `86` 的值 ```js -assert(convertCtoF(30) === 86); +assert.strictEqual(convertCtoF(30), 86); ``` # --seed-- @@ -67,7 +67,7 @@ convertCtoF(30); ```js function convertCtoF(celsius) { - let fahrenheit = celsius * 9/5 + 32; + let fahrenheit = celsius * (9 / 5) + 32; return fahrenheit; } diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md index e0b8d64413..3e26ed94be 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md @@ -23,31 +23,31 @@ For example: `5! = 1 * 2 * 3 * 4 * 5 = 120` `factorialize(5)` 應返回一個數字。 ```js -assert(typeof factorialize(5) === 'number'); +assert.isNumber(factorialize(5)); ``` `factorialize(5)` 應該返回 `120`。 ```js -assert(factorialize(5) === 120); +assert.strictEqual(factorialize(5), 120); ``` `factorialize(10)` 應該返回 `3628800`。 ```js -assert(factorialize(10) === 3628800); +assert.strictEqual(factorialize(10), 3628800); ``` `factorialize(20)` 應該返回 `2432902008176640000`。 ```js -assert(factorialize(20) === 2432902008176640000); +assert.strictEqual(factorialize(20), 2432902008176640000); ``` `factorialize(0)` 應該返回 `1`。 ```js -assert(factorialize(0) === 1); +assert.strictEqual(factorialize(0), 1); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md index fb62b8eddf..5cd15cd9f7 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md @@ -45,7 +45,7 @@ You should not mutate `arr`. ```js const arr = ['a', false, 0, 'Naomi']; bouncer(arr); -assert.deepEqual(arr, ['a', false, 0, 'Naomi']) +assert.deepEqual(arr, ['a', false, 0, 'Naomi']); ``` # --seed-- @@ -57,7 +57,7 @@ function bouncer(arr) { return arr; } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` # --solutions-- @@ -67,5 +67,5 @@ function bouncer(arr) { return arr.filter(e => e); } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md index 88ea9874f9..65fa25b511 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md @@ -17,50 +17,51 @@ Return the length of the longest word in the provided sentence. `findLongestWordLength("The quick brown fox jumped over the lazy dog")` 應返回一個數字。 ```js -assert( - typeof findLongestWordLength( - 'The quick brown fox jumped over the lazy dog' - ) === 'number' +assert.isNumber( + findLongestWordLength('The quick brown fox jumped over the lazy dog') ); ``` `findLongestWordLength("The quick brown fox jumped over the lazy dog")` 應返回 `6`。 ```js -assert( - findLongestWordLength('The quick brown fox jumped over the lazy dog') === 6 +assert.strictEqual( + findLongestWordLength('The quick brown fox jumped over the lazy dog'), + 6 ); ``` `findLongestWordLength("May the force be with you")` 應返回 `5`。 ```js -assert(findLongestWordLength('May the force be with you') === 5); +assert.strictEqual(findLongestWordLength('May the force be with you'), 5); ``` `findLongestWordLength("Google do a barrel roll")` 應返回 `6`。 ```js -assert(findLongestWordLength('Google do a barrel roll') === 6); +assert.strictEqual(findLongestWordLength('Google do a barrel roll'), 6); ``` `findLongestWordLength("What is the average airspeed velocity of an unladen swallow")` 應返回 `8`。 ```js -assert( +assert.strictEqual( findLongestWordLength( 'What is the average airspeed velocity of an unladen swallow' - ) === 8 + ), + 8 ); ``` `findLongestWordLength("What if we try a super-long word such as otorhinolaryngology")` 應返回 `19`。 ```js -assert( +assert.strictEqual( findLongestWordLength( 'What if we try a super-long word such as otorhinolaryngology' - ) === 19 + ), + 19 ); ``` @@ -73,7 +74,7 @@ function findLongestWordLength(str) { return str.length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` # --solutions-- @@ -83,5 +84,5 @@ function findLongestWordLength(str) { return str.split(' ').sort((a, b) => b.length - a.length)[0].length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md index dccd7af5b8..5b26998967 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md @@ -21,73 +21,73 @@ Return `true` if the string in the first element of the array contains all of th `mutation(["hello", "hey"])` 應返回 `false`。 ```js -assert(mutation(['hello', 'hey']) === false); +assert.isFalse(mutation(['hello', 'hey'])); ``` `mutation(["hello", "Hello"])` 應返回 `true`。 ```js -assert(mutation(['hello', 'Hello']) === true); +assert.isTrue(mutation(['hello', 'Hello'])); ``` `mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"])` 應返回 `true`。 ```js -assert(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu']) === true); +assert.isTrue(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu'])); ``` `mutation(["Mary", "Army"])` 應返回 `true`。 ```js -assert(mutation(['Mary', 'Army']) === true); +assert.isTrue(mutation(['Mary', 'Army'])); ``` `mutation(["Mary", "Aarmy"])` 應返回 `true`。 ```js -assert(mutation(['Mary', 'Aarmy']) === true); +assert.isTrue(mutation(['Mary', 'Aarmy'])); ``` `mutation(["Alien", "line"])` 應返回 `true`。 ```js -assert(mutation(['Alien', 'line']) === true); +assert.isTrue(mutation(['Alien', 'line'])); ``` `mutation(["floor", "for"])` 應返回 `true`。 ```js -assert(mutation(['floor', 'for']) === true); +assert.isTrue(mutation(['floor', 'for'])); ``` `mutation(["hello", "neo"])` 應返回 `false`。 ```js -assert(mutation(['hello', 'neo']) === false); +assert.isFalse(mutation(['hello', 'neo'])); ``` `mutation(["voodoo", "no"])` 應返回 `false`。 ```js -assert(mutation(['voodoo', 'no']) === false); +assert.isFalse(mutation(['voodoo', 'no'])); ``` `mutation(["ate", "date"])` 應返回 `false`。 ```js -assert(mutation(['ate', 'date']) === false); +assert.isFalse(mutation(['ate', 'date'])); ``` `mutation(["Tiger", "Zebra"])` 應返回 `false`。 ```js -assert(mutation(['Tiger', 'Zebra']) === false); +assert.isFalse(mutation(['Tiger', 'Zebra'])); ``` `mutation(["Noel", "Ole"])` 應返回 `true`。 ```js -assert(mutation(['Noel', 'Ole']) === true); +assert.isTrue(mutation(['Noel', 'Ole'])); ``` # --seed-- @@ -99,7 +99,7 @@ function mutation(arr) { return arr; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` # --solutions-- @@ -108,10 +108,16 @@ mutation(["hello", "hey"]); function mutation(arr) { let hash = Object.create(null); - arr[0].toLowerCase().split('').forEach(c => hash[c] = true); + arr[0] + .toLowerCase() + .split('') + .forEach(c => (hash[c] = true)); - return !arr[1].toLowerCase().split('').filter(c => !hash[c]).length; + return !arr[1] + .toLowerCase() + .split('') + .filter(c => !hash[c]).length; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md index 57ff3df870..e04ca44fa3 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md @@ -8,56 +8,56 @@ dashedName: repeat-a-string-repeat-a-string # --description-- -Repeat a given string `str` (first argument) for `num` times (second argument). Return an empty string if `num` is not a positive number. For the purpose of this challenge, do *not* use the built-in `.repeat()` method. +Repeat a given string `str` (first argument) for `num` times (second argument). Return an empty string if `num` is not a positive number. For the purpose of this challenge, do _not_ use the built-in `.repeat()` method. # --hints-- `repeatStringNumTimes("*", 3)` 應返回 `***`。 ```js -assert(repeatStringNumTimes('*', 3) === '***'); +assert.strictEqual(repeatStringNumTimes('*', 3), '***'); ``` `repeatStringNumTimes("abc", 3)` 應返回 `abcabcabc`。 ```js -assert(repeatStringNumTimes('abc', 3) === 'abcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 3), 'abcabcabc'); ``` `repeatStringNumTimes("abc", 4)` 應返回 `abcabcabcabc`。 ```js -assert(repeatStringNumTimes('abc', 4) === 'abcabcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 4), 'abcabcabcabc'); ``` `repeatStringNumTimes("abc", 1)` 應返回 `abc`。 ```js -assert(repeatStringNumTimes('abc', 1) === 'abc'); +assert.strictEqual(repeatStringNumTimes('abc', 1), 'abc'); ``` `repeatStringNumTimes("*", 8)` 應返回 `********`。 ```js -assert(repeatStringNumTimes('*', 8) === '********'); +assert.strictEqual(repeatStringNumTimes('*', 8), '********'); ``` `repeatStringNumTimes("abc", -2)` 應返回 `""`。 ```js -assert(repeatStringNumTimes('abc', -2) === ''); +assert.isEmpty(repeatStringNumTimes('abc', -2)); ``` 不應使用內置的 `repeat()` 方法。 ```js -assert(!/\.repeat/g.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.repeat/g); ``` `repeatStringNumTimes("abc", 0)` 應返回 `""`。 ```js -assert(repeatStringNumTimes('abc', 0) === ''); +assert.isEmpty(repeatStringNumTimes('abc', 0)); ``` # --seed-- @@ -69,7 +69,7 @@ function repeatStringNumTimes(str, num) { return str; } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` # --solutions-- @@ -77,8 +77,8 @@ repeatStringNumTimes("abc", 3); ```js function repeatStringNumTimes(str, num) { if (num < 1) return ''; - return num === 1 ? str : str + repeatStringNumTimes(str, num-1); + return num === 1 ? str : str + repeatStringNumTimes(str, num - 1); } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md index 7b79092a8c..89c58df3fd 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md @@ -17,13 +17,13 @@ Return an array consisting of the largest number from each provided sub-array. F `largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])` 應返回一個數組。 ```js -assert( +assert.isArray( largestOfFour([ [4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1] - ]).constructor === Array + ]) ); ``` @@ -78,7 +78,12 @@ function largestOfFour(arr) { return arr; } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` # --solutions-- @@ -88,5 +93,10 @@ function largestOfFour(arr) { return arr.map(subArr => Math.max.apply(null, subArr)); } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md index bb15f8f633..fb46c71f0f 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md @@ -17,25 +17,28 @@ Reverse the provided string and return the reversed string. `reverseString("hello")` 應返回一個字符串。 ```js -assert(typeof reverseString('hello') === 'string'); +assert.isString(reverseString('hello')); ``` `reverseString("hello")` 應返回 `olleh`。 ```js -assert(reverseString('hello') === 'olleh'); +assert.strictEqual(reverseString('hello'), 'olleh'); ``` `reverseString("Howdy")` 應返回 `ydwoH`。 ```js -assert(reverseString('Howdy') === 'ydwoH'); +assert.strictEqual(reverseString('Howdy'), 'ydwoH'); ``` `reverseString("Greetings from Earth")` 應返回 `htraE morf sgniteerG`。 ```js -assert(reverseString('Greetings from Earth') === 'htraE morf sgniteerG'); +assert.strictEqual( + reverseString('Greetings from Earth'), + 'htraE morf sgniteerG' +); ``` # --seed-- @@ -47,7 +50,7 @@ function reverseString(str) { return str; } -reverseString("hello"); +reverseString('hello'); ``` # --solutions-- @@ -57,5 +60,5 @@ function reverseString(str) { return str.split('').reverse().join(''); } -reverseString("hello"); +reverseString('hello'); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index 52fd9f9f86..e0ffc0f919 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -69,7 +69,7 @@ assert.deepEqual(testArr2, ['a', 'b']); ```js let testArr1 = [1, 2]; -let testArr2 = ["a", "b"]; +let testArr2 = ['a', 'b']; ``` ## --seed-contents-- @@ -89,7 +89,7 @@ function frankenSplice(arr1, arr2, n) { // It's alive. It's alive! let result = arr2.slice(); for (let i = 0; i < arr1.length; i++) { - result.splice(n+i, 0, arr1[i]); + result.splice(n + i, 0, arr1[i]); } return result; } diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md index 905fcb5943..41b38765dc 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md @@ -17,27 +17,27 @@ Return the provided string with the first letter of each word capitalized. Make `titleCase("I'm a little tea pot")` 應返回一個字符串。 ```js -assert(typeof titleCase("I'm a little tea pot") === 'string'); +assert.isString(titleCase("I'm a little tea pot")); ``` `titleCase("I'm a little tea pot")` 應返回 `I'm A Little Tea Pot`。 ```js -assert(titleCase("I'm a little tea pot") === "I'm A Little Tea Pot"); +assert.strictEqual(titleCase("I'm a little tea pot"), "I'm A Little Tea Pot"); ``` `titleCase("sHoRt AnD sToUt")` 應返回 `Short And Stout`。 ```js -assert(titleCase('sHoRt AnD sToUt') === 'Short And Stout'); +assert.strictEqual(titleCase('sHoRt AnD sToUt'), 'Short And Stout'); ``` `titleCase("HERE IS MY HANDLE HERE IS MY SPOUT")` 應返回 `Here Is My Handle Here Is My Spout`。 ```js -assert( - titleCase('HERE IS MY HANDLE HERE IS MY SPOUT') === - 'Here Is My Handle Here Is My Spout' +assert.strictEqual( + titleCase('HERE IS MY HANDLE HERE IS MY SPOUT'), + 'Here Is My Handle Here Is My Spout' ); ``` @@ -57,7 +57,10 @@ titleCase("I'm a little tea pot"); ```js function titleCase(str) { - return str.split(' ').map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()).join(' '); + return str + .split(' ') + .map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()) + .join(' '); } titleCase("I'm a little tea pot"); diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md index ae26772fe0..ffaadfd0a3 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md @@ -15,53 +15,55 @@ Truncate a string (first argument) if it is longer than the given maximum string `truncateString("A-tisket a-tasket A green and yellow basket", 8)` 應返回 `A-tisket...`。 ```js -assert( - truncateString('A-tisket a-tasket A green and yellow basket', 8) === - 'A-tisket...' +assert.strictEqual( + truncateString('A-tisket a-tasket A green and yellow basket', 8), + 'A-tisket...' ); ``` `truncateString("Peter Piper picked a peck of pickled peppers", 11)` 應返回 `Peter Piper...`。 ```js -assert( - truncateString('Peter Piper picked a peck of pickled peppers', 11) === - 'Peter Piper...' +assert.strictEqual( + truncateString('Peter Piper picked a peck of pickled peppers', 11), + 'Peter Piper...' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length)` 應返回 `A-tisket a-tasket A green and yellow basket`。 ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)` 應返回 `A-tisket a-tasket A green and yellow basket`。 ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2 - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-", 1)` 應返回字符串 `A...`。 ```js -assert(truncateString('A-', 1) === 'A...'); +assert.strictEqual(truncateString('A-', 1), 'A...'); ``` `truncateString("Absolutely Longer", 2)` 應返回 `Ab...`。 ```js -assert(truncateString('Absolutely Longer', 2) === 'Ab...'); +assert.strictEqual(truncateString('Absolutely Longer', 2), 'Ab...'); ``` # --seed-- @@ -73,7 +75,7 @@ function truncateString(str, num) { return str; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` # --solutions-- @@ -87,5 +89,5 @@ function truncateString(str, num) { return str.slice(0, num) + '...'; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` diff --git a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md index 17535702d7..dfd7583f61 100644 --- a/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md +++ b/curriculum/challenges/chinese-traditional/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md @@ -16,100 +16,100 @@ Return the lowest index at which a value (second argument) should be inserted in # --hints-- -`getIndexToIns([10, 20, 30, 40, 50], 35)` 應返回 `3`。 - -```js -assert(getIndexToIns([10, 20, 30, 40, 50], 35) === 3); -``` - `getIndexToIns([10, 20, 30, 40, 50], 35)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 35) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 35)); ``` -`getIndexToIns([10, 20, 30, 40, 50], 30)` 應返回 `2`。 +`getIndexToIns([10, 20, 30, 40, 50], 35)` 應返回 `3`。 ```js -assert(getIndexToIns([10, 20, 30, 40, 50], 30) === 2); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 35), 3); ``` `getIndexToIns([10, 20, 30, 40, 50], 30)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 30) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 30)); ``` -`getIndexToIns([40, 60], 50)` 應返回 `1`。 +`getIndexToIns([10, 20, 30, 40, 50], 30)` 應返回 `2`。 ```js -assert(getIndexToIns([40, 60], 50) === 1); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 30), 2); ``` `getIndexToIns([40, 60], 50)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([40, 60], 50) === 'number'); +assert.isNumber(getIndexToIns([40, 60], 50)); ``` -`getIndexToIns([3, 10, 5], 3)` 應返回 `0`。 +`getIndexToIns([40, 60], 50)` 應返回 `1`。 ```js -assert(getIndexToIns([3, 10, 5], 3) === 0); +assert.strictEqual(getIndexToIns([40, 60], 50), 1); ``` `getIndexToIns([3, 10, 5], 3)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([3, 10, 5], 3) === 'number'); +assert.isNumber(getIndexToIns([3, 10, 5], 3)); ``` -`getIndexToIns([5, 3, 20, 3], 5)` 應返回 `2`。 +`getIndexToIns([3, 10, 5], 3)` 應返回 `0`。 ```js -assert(getIndexToIns([5, 3, 20, 3], 5) === 2); +assert.strictEqual(getIndexToIns([3, 10, 5], 3), 0); ``` `getIndexToIns([5, 3, 20, 3], 5)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([5, 3, 20, 3], 5) === 'number'); +assert.isNumber(getIndexToIns([5, 3, 20, 3], 5)); +``` + +`getIndexToIns([5, 3, 20, 3], 5)` 應返回 `2`。 + +```js +assert.strictEqual(getIndexToIns([5, 3, 20, 3], 5), 2); ``` `getIndexToIns([2, 20, 10], 19)` 應返回 `2`。 ```js -assert(getIndexToIns([2, 20, 10], 19) === 2); +assert.strictEqual(getIndexToIns([2, 20, 10], 19), 2); ``` `getIndexToIns([2, 20, 10], 19)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([2, 20, 10], 19) === 'number'); +assert.isNumber(getIndexToIns([2, 20, 10], 19)); ``` `getIndexToIns([2, 5, 10], 15)` 應返回 `3`。 ```js -assert(getIndexToIns([2, 5, 10], 15) === 3); +assert.strictEqual(getIndexToIns([2, 5, 10], 15), 3); ``` `getIndexToIns([2, 5, 10], 15)` 應返回一個數字。 ```js -assert(typeof getIndexToIns([2, 5, 10], 15) === 'number'); +assert.isNumber(getIndexToIns([2, 5, 10], 15)); ``` -`getIndexToIns([], 1)`應該返回 `0`。 +`getIndexToIns([], 1)` 應返回一個數字。 ```js -assert(getIndexToIns([], 1) === 0); +assert.isNumber(getIndexToIns([], 1)); ``` -`getIndexToIns([], 1)` 應返回一個數字。 +`getIndexToIns([], 1)`應該返回 `0`。 ```js -assert(typeof getIndexToIns([], 1) === 'number'); +assert.strictEqual(getIndexToIns([], 1), 0); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md index 0720c0f741..053c04cb7e 100644 --- a/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md +++ b/curriculum/challenges/chinese-traditional/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md @@ -50,7 +50,8 @@ Your list comprehension should evaluate `'_' + char.lower()` for each `char` in ```js ({ test: () => assert(runPython(` - _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list").find_comp_expr().is_equivalent("'_' + char.lower()") + target_var = _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list") + target_var.find_comp_expr().is_equivalent("'_' + char.lower()") and len(target_var.find_comp_ifs()) == 0 `)) }) ``` diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md index 956311a19a..5435201da2 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md @@ -23,7 +23,7 @@ img { # --hints-- -You should use the `#logo` selector to target the `img` element. +您應該使用 `#logo` 選擇器來定位 `img` 元素。 ```js assert.exists(new __helpers.CSSHelp(document).getStyle('#logo')); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md index ff40c10838..89503c3705 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md @@ -11,25 +11,25 @@ Within the `div.question-block` elements, nest one `label` element, and add a `C # --hints-- -You should nest one `label` element within the first `div.question-block` element. +你應該在第一個 `div.question-block` 元素中嵌套一個 `label` 元素。 ```js assert.exists(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label')); ``` -You should nest one `label` element within the second `div.question-block` element. +你應該在第二個 `div.question-block` 元素中嵌套一個 `label` 元素。 ```js assert.exists(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')); ``` -You should give the first `label` element text content. +你應該給第一個 `label` 元素添加文本內容。 ```js assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label')?.textContent?.length, 1); ``` -You should give the second `label` element text content. +你應該給第二個 `label` 元素添加文本內容。 ```js assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')?.textContent?.length, 1); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md index d1018242a4..df9e6bab65 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md @@ -7,7 +7,7 @@ dashedName: step-66 # --description-- -Clicking on the navigation links should jump the viewport to the relevant section. However, this jumping can be disorienting for some users. +單擊導航鏈接應將視口跳轉到相關部分。 然而,這種跳轉可能會讓一些用戶感到迷惑。 選擇所有元素,並將 `scroll-behavior` 設置爲 `smooth`。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md index db084f9b4b..324439ad33 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md @@ -10,11 +10,11 @@ demoType: onLoad Welcome to the first part of the Accessibility Quiz. As you are becoming a seasoned HTML and CSS developer, we have started you off with the basic boilerplate. -Start this accessibility journey by providing a `lang` attribute to your `html` element. This will assist screen readers in identifying the language of the page. +通過爲你的 `html` 元素添加一個 `lang` 屬性來開始這段無障礙之旅。 這將幫助屏幕閱讀器識別頁面的語言。 # --hints-- -You should give the `html` element a `lang` attribute. _Hint: You can use the value `en` for English._ +你應該給 `html` 元素一個 `lang` 屬性。 _提示:對於英文,你可以使用值 `en` 。_ ```js assert.match(code, //i); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md index 7ef668776b..df98fbe2c1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md @@ -1,6 +1,6 @@ --- id: 5f3477cb303c5cb61b43aa9b -title: Step 18 +title: 步驟 18 challengeType: 0 dashedName: step-18 --- @@ -11,21 +11,21 @@ The text is centered again so the link to the CSS file is working. Add another s # --hints-- -You should use a `body` selector. +你應該使用一個 `body` 選擇器。 ```js const hasBody = new __helpers.CSSHelp(document).getStyle('body'); assert(hasBody); ``` -You should set the `background-color` property to `brown`. +你應該將 `background-color` 屬性設置爲 `brown`。 ```js const hasBackground = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'brown'); assert(hasBackground); ``` -Your `body` element should have a `brown` background. +你的 `body` 元素應該有一個 `brown` 背景。 ```js const bodyBackground = new __helpers.CSSHelp(document).getStyle('body')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index b32e164fb1..72d4d9e55c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ assert.lengthOf(document.querySelectorAll('body'), 1); assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md index 298916ab66..50a96d0192 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md @@ -1,6 +1,6 @@ --- id: 5f3ef6e01f288a026d709587 -title: Step 66 +title: 步驟 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md index b293051512..133d28f0bb 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md @@ -1,6 +1,6 @@ --- id: 5f459225127805351a6ad057 -title: Step 68 +title: 步驟 68 challengeType: 0 dashedName: step-68 --- @@ -11,13 +11,13 @@ Change the background color of the `hr` element to `brown` so it matches the col # --hints-- -You should set the value of the `background-color` property to `brown`. +您應該將 `background-color` 屬性的值設置爲 `brown`。 ```js const hasBackgroundColor = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'brown'); ``` -Your `hr` element should have a `background-color` of `brown`. +你的 `hr` 元素應該具有 `background-color` 值爲 `brown`。 ```js const hrBackgroundColor = new __helpers.CSSHelp(document).getStyle('hr')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md index 8e646a285e..47ae7781c8 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md @@ -1,6 +1,6 @@ --- id: 617b65579ce424bf5f02ca73 -title: Step 21 +title: 步驟 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md index 10268ec372..3cd2a6fe5e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md @@ -13,19 +13,19 @@ A function is a piece of code that can take an input and perform a specific acti rgb(red, green, blue); ``` -Each red, green, and blue value is a number from `0` to `255`. `0` 表示該顏色的 0%,並且是黑色。 `255` 意味着該顏色的 100%。 +每個紅色、綠色和藍色值都是一個從 `0` 到 `255` 的數字。 `0` 表示該顏色的 0%,並且是黑色。 `255` 意味着該顏色的 100%。 在 `.one` 的CSS規則中,修改 `rgb` 函數中的 `red`的值。 對於 `rgb` 函數,將紅色的值設置爲 `255`,將綠色的值設置爲 `0`,將藍色的值設置爲 `0`。 # --hints-- -Your `.one` CSS rule should not use the `red` color keyword to set the `background-color` property. +你的 `.one` CSS 規則不應該使用 `red` 關鍵字來設置 `background-color`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.one')?.backgroundColor !== 'red'); ``` -Your `.one` CSS rule should have a `background-color` property set to `rgb(255, 0, 0)`. +你的 `.one` CSS 規則應該有一個 `background-color` 屬性,設置爲 `rgb(255, 0, 0)`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.one')?.backgroundColor === 'rgb(255, 0, 0)'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md index 5f14d888fd..049232c104 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md @@ -9,17 +9,17 @@ dashedName: step-25 Now add a little more vertical space between your markers and the edge of the `container` element they're in. -In the `.container` CSS rule, use the shorthand `padding` property to add `10px` of top and bottom padding, and set the left and right padding to `0`. This works similarly to the shorthand `margin` property you used earlier. +在 `.container` CSS 規則中,使用簡寫 `padding` 屬性添加上下 padding 各爲`10px`,並將左右 padding 設置爲 `0`。 這類似於你之前使用的簡寫 `margin` 屬性。 # --hints-- -You should not remove the `background-color` property and its value from the `.container` CSS rule. +你不應從 `.container` CSS 規則中刪除 `background-color` 屬性及其值。 ```js assert(new __helpers.CSSHelp(document).getStyle('.container')?.backgroundColor === 'rgb(0, 0, 0)'); ``` -Your `.container` CSS rule should have a `padding` property set to `10px 0`. +你的 `.container` CSS 規則應該將 `padding` 屬性設置爲 `10px 0`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.container')?.padding === '10px 0px'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md index da420cd8ed..583a93006e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md @@ -11,28 +11,28 @@ Next, change the class `two` to `green` in the second marker `div`, and the clas # --hints-- -Your second marker `div` should not have the class `two`. +你的第二個筆 `div` 不應該有 `two` 類。 ```js const containerSecondChild = [...document.querySelector('.container')?.children][1]; assert(!containerSecondChild?.classList?.contains('two')); ``` -Your second marker `div` should have the classes `marker` and `green`. +你的第二個筆 `div` 應該有 `marker` 和 `green` 類。 ```js const containerSecondChild = [...document.querySelector('.container')?.children][1]; assert(containerSecondChild?.classList?.contains('marker') && containerSecondChild?.classList?.contains('green')); ``` -Your third marker `div` should not have the class `three`. +你的第三個筆 `div` 不應具有類 `three`。 ```js const containerThirdChild = [...document.querySelector('.container')?.children][2]; assert(!containerThirdChild?.classList?.contains('three')); ``` -Your third marker `div` should have the classes `marker` and `blue`. +你的第三個筆 `div` 應該具有 `marker` 類和 `blue` 類。 ```js const containerThirdChild = [...document.querySelector('.container')?.children][2]; diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md index fb337607c7..8af1e2936b 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md @@ -1,6 +1,6 @@ --- id: 619b761916dac02643940022 -title: Step 46 +title: 步驟 46 challengeType: 0 dashedName: step-46 --- @@ -9,13 +9,13 @@ dashedName: step-46 A very common way to apply color to an element with CSS is with hexadecimal or hex values. While hex values sound complicated, they're really just another form of RGB values. -Hex color values start with a `#` character and take six characters from 0-9 and A-F. The first pair of characters represent red, the second pair represent green, and the third pair represent blue. For example, `#4B5320`. +十六進制顏色值以 `#` 字符開頭,從 0-9 和 A-F 取六個字符。 第一對字符代表紅色,第二對代表綠色,第三對代表藍色。 例如,`#4B5320`。 -In the `.green` class selector, set the `background-color` property to a hex color code with the values `00` for red, `FF` for green, and `00` blue. +在 `.green` 類選擇器中,將 `background-color` 屬性設置爲十六進制顏色代碼,其值 `00` 表示紅色,`FF` 表示綠色,`00` 表示藍色。 # --hints-- -Your `.green` CSS rule should have a `background-color` property set to `#00FF00`. +你的 `.green` CSS 規則應該將 `background-color` 屬性設置爲 `#00FF00`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.green')?.backgroundColor === 'rgb(0, 255, 0)'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md index 9c38a22817..520bfdc73d 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md @@ -1,6 +1,6 @@ --- id: 61a489b8579e87364b2d2cdb -title: Step 49 +title: 步驟 49 challengeType: 0 dashedName: step-49 --- @@ -9,15 +9,15 @@ dashedName: step-49 You've learned a few ways to set flat colors in CSS, but you can also use a color transition, or gradient, on an element. -A gradient is when one color transitions into another. The CSS `linear-gradient` function lets you control the direction of the transition along a line, and which colors are used. +漸變是一種顏色過渡到另一種顏色。 CSS `linear-gradient` 函數可讓你控制沿線的過渡方向以及使用的顏色。 -One thing to remember is that the `linear-gradient` function actually creates an `image` element, and is usually paired with the `background` property which can accept an image as a value. +要記住的一件事是 `linear-gradient` 函數實際上創建了一個 `image` 元素,並且通常與可以接受圖像作爲一個值的 `background` 屬性配對。 -In the `.red` CSS rule, change the `background-color` property to `background`. +在 `.red` CSS 規則中,將 `background-color` 屬性更改爲 `background`。 # --hints-- -Your `.red` CSS rule should have a `background` property with the value `rgb(255, 0, 0)`. +你的 `.red` CSS 規則應該有一個 `background` 屬性,其值爲 `rgb(255, 0, 0)`。 ```js assert.match(__helpers.removeWhiteSpace(code), /\.red\{.*?background:rgb\(255,0,0\)/); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md index b05e1fd0fd..1ec91250a5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md @@ -7,7 +7,7 @@ dashedName: step-81 # --description-- -Your border should be visible now. If no color is set, black is used by default. +你的邊框現在應該可見。 如果未設置顏色,則默認使用黑色。 但是爲了使你的代碼更具可讀性,最好明確設置邊框顏色。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md index c0171f763b..da34ccd627 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md @@ -13,7 +13,7 @@ To make the marker look more realistic, give the sleeve a transparent white colo # --hints-- -Your `.sleeve` CSS rule should have a `background-color` property set to `white`. +你的 `.sleeve` CSS 規則應該將 `background-color` 屬性設置爲 `white`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.sleeve')?.backgroundColor === 'white'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md index 3c56ae5517..7afa455290 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md @@ -9,11 +9,11 @@ dashedName: step-84 The black color of your border looks pretty harsh against the more transparent sleeve. 你可以使用 Alpha 通道來降低黑色邊框的不透明度。 -For the `border-left` shorthand property, use the `rgba` function to set the color value to pure black with 75% opacity. +對於 `border-left` 簡寫屬性,使用 `rgba` 函數將顏色值設置爲純黑色,不透明度爲 75%。 # --hints-- -Your `.sleeve` CSS rule should have a `border-left` shorthand property and with the value `10px double rgba(0, 0, 0, 0.75)`. +你的 `.sleeve` CSS 規則應該有一個 `border-left` 簡寫屬性,其值爲 `10px double rgba(0, 0, 0, 0.75)`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.sleeve')?.borderLeft === '10px double rgba(0, 0, 0, 0.75)'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md index 66a387c337..67a6c1c153 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md @@ -20,7 +20,7 @@ const greenMarkerChildren = [...document.querySelector('.green')?.children]; assert(greenMarkerChildren.every(child => child?.localName === 'div') && greenMarkerChildren.length === 2); ``` -Your green marker's cap `div` element should be before the sleeve `div` element. +你的綠色筆的筆蓋 `div` 元素應該在筆筒 `div` 元素之前。 ```js const greenMarkerChildren = [...document.querySelector('.green')?.children]; @@ -29,14 +29,14 @@ const greenMarkerSleeve = document.querySelector('.green .sleeve'); assert(greenMarkerChildren.indexOf(greenMarkerCap) < greenMarkerChildren.indexOf(greenMarkerSleeve)); ``` -Your blue marker `div` should contain two `div` elements. +你的藍色筆 `div` 應該包含兩個 `div` 元素。 ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; assert(blueMarkerChildren.every(child => child?.localName === 'div') && blueMarkerChildren.length === 2); ``` -Your blue marker's cap `div` element should be before the sleeve `div` element. +你的藍色筆的筆蓋 `div` 元素應該在筆筒 `div` 元素之前。 ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md index 3af691c9aa..e320481a08 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md @@ -7,7 +7,7 @@ dashedName: step-11 # --description-- -Now your images are too big. +現在你的圖片太大了。 創建一個 `.gallery img` 選擇器來選取你的圖片。 將它們的 `width` 都設置爲 `100%`, `max-width` 都設置爲 `350px`。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md index 2bac5961e0..5195a71300 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md @@ -9,103 +9,103 @@ dashedName: step-20 Within your `ul` element, create six `li` elements. Add an `h4` element with a `class` set to `list-subtitle` and a `p` element to each of your `li` elements. -Then give the `h4` and `p` elements the following text content, in order, with each `h4` using what's on the left side of the colon, and each `p` using what's on the right: +然後按順序爲 `h4` 和 `p` 元素添加以下文本內容,每個 `h4` 使用冒號左側的內容,而每個 `p` 元素使用右邊的內容: - `V1 - 2014`: `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` -- `V2 - 2015`: `We added interactive algorithm challenges.` -- `V3 - 2015`: `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` -- `V4 - 2016`: `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` -- `V5 - 2017`: `We added the back end and data visualization challenges.` -- `V6 - 2018`: `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` +- `V2 - 2015`:`We added interactive algorithm challenges.` +- `V3 - 2015`:`We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` +- `V4 - 2016`:`We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` +- `V5 - 2017`:`We added the back end and data visualization challenges.` +- `V6 - 2018`:`We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` # --hints-- -Your `ul` element should have six `li` elements. +你的 `ul` 元素應該有六個 `li` 元素。 ```js assert(document.querySelectorAll('.lists li')?.length === 6); ``` -Each of your new `li` elements should have an `h4` and `p` element. +每個新的 `li` 元素都應該有一個 `h4` 和 `p` 元素。 ```js const lis = [...document.querySelectorAll('.lists li')]; assert(lis?.every(li => li?.children?.[0]?.localName === 'h4' && li?.children?.[1]?.localName === 'p')); ``` -Your first `h4` should have the text `V1 - 2014`. +你的第一個 `h4` 元素應該有文本 `V1 - 2014`。 ```js assert(document.querySelectorAll('.lists li h4')?.[0]?.innerText === 'V1 - 2014'); ``` -Your first `p` should have the text `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` +你的第一個 `p` 元素應該有文本 `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` ```js assert(document.querySelectorAll('.lists li p')?.[0]?.innerText === 'We launched freeCodeCamp with a simple list of 15 resources, including Harvard\'s CS50 and Stanford\'s Database Class.'); ``` -Your second `h4` should have the text `V2 - 2015`. +你的第二個 `h4` 元素應該有文本 `V2 - 2015`。 ```js assert(document.querySelectorAll('.lists li h4')?.[1]?.innerText === 'V2 - 2015'); ``` -Your second `p` should have the text `We added interactive algorithm challenges.` +你的第二個 `p` 元素應該有文本 `We added interactive algorithm challenges.` ```js assert(document.querySelectorAll('.lists li p')?.[1]?.innerText === 'We added interactive algorithm challenges.'); ``` -Your third `h4` should have the text `V3 - 2015`. +你的第三個 `h4` 元素應該有文本 `V3 - 2015`。 ```js assert(document.querySelectorAll('.lists li h4')?.[2]?.innerText === 'V3 - 2015'); ``` -Your third `p` should have the text `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` +你的第三個 `p` 元素應該有文本 `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` ```js assert(document.querySelectorAll('.lists li p')?.[2]?.innerText === 'We added our own HTML+CSS challenges (before we\'d been relying on General Assembly\'s Dash course for these).'); ``` -Your fourth `h4` should have the text `V4 - 2016`. +你的第四個 `h4` 元素應該有文本 `V4 - 2016`。 ```js assert(document.querySelectorAll('.lists li h4')?.[3]?.innerText === 'V4 - 2016'); ``` -Your fourth `p` should have the text `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` +你的第四個 `p` 元素應該有文本 `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` ```js assert(document.querySelectorAll('.lists li p')?.[3]?.innerText === 'We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.'); ``` -Your fifth `h4` should have the text `V5 - 2017`. +你的第五個 `h4` 元素應該有文本 `V5 - 2017`。 ```js assert(document.querySelectorAll('.lists li h4')?.[4]?.innerText === 'V5 - 2017'); ``` -Your fifth `p` should have the text `We added the back end and data visualization challenges.` +你的第五個 `p` 元素應該有文本 `We added the back end and data visualization challenges.` ```js assert(document.querySelectorAll('.lists li p')?.[4]?.innerText === 'We added the back end and data visualization challenges.'); ``` -Your sixth `h4` should have the text `V6 - 2018`. +你的第六個 `h4` 元素應該有文本 `V6 - 2018`。 ```js assert(document.querySelectorAll('.lists li h4')?.[5]?.innerText === 'V6 - 2018'); ``` -Your sixth `p` should have the text `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` +你的第六個 `p` 元素應該有文本 `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` ```js assert(document.querySelectorAll('.lists li p')?.[5]?.innerText === 'We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.'); ``` -Your six `h4` elements should each have the class `list-subtitle`. +你的六個 `h4` 元素都應具有 `list-subtitle` 類。 ```js const h4s = [...document.querySelectorAll('.lists li h4')]; diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md index e2a1baaf2f..d49840d3b8 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md @@ -1,6 +1,6 @@ --- id: 6148c5036ddad94692a66230 -title: Step 53 +title: 步驟 53 challengeType: 0 dashedName: step-53 --- @@ -9,11 +9,11 @@ dashedName: step-53 Now the auto-placement algorithm will kick in when you add a new icon element. However, the algorithm defaults the new column width to be `auto`, which will not match your current columns. -You can override this with the `grid-auto-columns` property. Give the `.social-icons` selector a `grid-auto-columns` property set to `1fr`. +你可以使用 `grid-auto-columns` 屬性覆蓋它。 給 `.social-icons` 選擇器一個 `grid-auto-columns` 屬性,設置爲 `1fr`。 # --hints-- -Your `.social-icons` selector should have a `grid-auto-columns` property set to `1fr`. +你的 `.social-icons` 選擇器應該有一個 `grid-auto-columns` 屬性,設置爲 `1fr`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.social-icons')?.gridAutoColumns === '1fr'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md index ddcc05db94..f2739bbcd3 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md @@ -7,7 +7,7 @@ dashedName: step-62 # --description-- -Create a `.quote` selector. Give it a `color` property set to `#00beef`, a `font-size` property set to `2.4rem`, and a `text-align` property set to `center`. +創建一個 `.quote` 選擇器。 Give it a `color` property set to `#00beef`, a `font-size` property set to `2.4rem`, and a `text-align` property set to `center`. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md index 7bd643d692..c913090371 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md @@ -11,7 +11,7 @@ Give the `.ground` element a `background` with a linear gradient angled 90 degre # --hints-- -You should give `.ground` a `background` of `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`. +`.ground` 的 `background` 應該爲 `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`。 ```js assert.include(['linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))', 'rgba(0,0,0,0)linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('background', true)); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md index 6dc073c901..119521553f 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md @@ -29,7 +29,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.top, '10 assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left); ``` -You should give `.penguin-head` a `left` property of `--fcc-expected--`, but found `--fcc-actual--`. +應該設置 `.penguin-head` 的 `left` 值爲 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left, '25%'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md index 1a58875d58..081df74c9c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md @@ -11,7 +11,7 @@ Give the pseudo-element a `width` half that of its parent, a `height` of `45%`, # --hints-- -You should give `.penguin-body::before` a `width` of `50%`. +你應該將 `.penguin-body::before` 的 `width` 設置爲 `50%`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.width, '50%'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md index 763df6b425..0069622861 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md @@ -1,6 +1,6 @@ --- id: 619d05c54dabca0b10058235 -title: Step 54 +title: 步驟 54 challengeType: 0 dashedName: step-54 --- @@ -9,23 +9,23 @@ dashedName: step-54 到目前爲止,`.face` 和 `.chin` 具有相同的 `background-color`。 -Create a custom CSS property called `--penguin-face`, and set it to `white`. +創建一個名爲 `--penguin-face` 的自定義 CSS 屬性,並將其設置爲 `white`。 # --hints-- -You should use the `:root` selector. +應該使用 `:root` 選擇器。 ```js assert.match(code, /:root\s*\{/); ``` -You should give `:root` a `--penguin-face` property. +應該給 `:root` 添加一個 `--penguin-face` 屬性。 ```js assert.notEmpty(new __helpers.CSSHelp(document).getStyle(':root')?.getPropertyValue('--penguin-face')); ``` -You should give `:root` a `--penguin-face` of `--fcc-expected--`, but found `--fcc-actual--`. +`:root` 的 `--penguin-face` 應該爲 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle(':root')?.getPropVal('--penguin-face', true), 'white'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md index 906076ce8b..3ffba7fbd1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md @@ -1,6 +1,6 @@ --- id: 619d237a107c10221ed743fa -title: Step 86 +title: 步驟 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md index ea90d6558c..de4fe9f5d7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md @@ -11,37 +11,37 @@ Target the `.arm` element with a `class` of `left`, and position it `35%` from t # --hints-- -You should use the `.arm.left` selector. +你應該使用 `.arm.left` 選擇器。 ```js assert.match(code, /\.arm\.left\s*\{/); ``` -You should give `.arm.left` a `top` of `--fcc-expected--`, but found `--fcc-actual--`. +你應該將 `.arm.left` 的 `top` 設置爲 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.top, '35%'); ``` -You should give `.arm.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`. +你應該將 `.arm.left` 的 `left` 設置爲 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.left, '5%'); ``` -You should use the `.arm.right` selector. +你應該使用 `.arm.right` 選擇器。 ```js assert.match(code, /\.arm\.right\s*\{/); ``` -You should give `.arm.right` a `top` of `0%`. +你應該將 `.arm.right` 的 `top` 設置爲 `0%`。 ```js assert.include(['0%', '0', '0px'], new __helpers.CSSHelp(document).getStyle('.arm.right')?.top); ``` -You should give `.arm.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`. +你應該將 `.arm.right` 的 `right` 設置爲 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.right, '-5%'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md index c0765a03ce..ab5830a0f5 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md @@ -49,7 +49,7 @@ function eitherOr() { assert.equal(eitherOr()?.top, '0px'); ``` -You should use a comma to use both `.foreground-buildings` and `.background-buildings` selectors in the same style declaration. +你應該使用逗號在同一樣式聲明中同時使用 `.foreground-buildings` 和 `.background-buildings` 選擇器。 ```js function eitherOr() { diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md index d506973497..07ef0f9d81 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md @@ -7,7 +7,7 @@ dashedName: step-58 # --description-- -Finally, on the `border-bottom` property of `.bb2a`, change the `1vw` to `5vh` and change the `#000` color to your `--building-color2` variable. There you go, now it looks good! At any time throughout this project, you can comment out or remove the `border` property you added to everything at the beginning to see what the buildings will look like when that gets removed at the end. +Finally, on the `border-bottom` property of `.bb2a`, change the `1vw` to `5vh` and change the `#000` color to your `--building-color2` variable. 好了,現在看起來不錯! At any time throughout this project, you can comment out or remove the `border` property you added to everything at the beginning to see what the buildings will look like when that gets removed at the end. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md index 4cbc41794b..91ab83aea4 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md @@ -11,13 +11,13 @@ dashedName: step-59 # --hints-- -You should define a new property variable `--window-color3`. +你應該定義一個新的屬性變量 `--window-color3`。 ```js assert(new __helpers.CSSHelp(document).isPropertyUsed("--window-color3")); ``` -You should give `--window-color3` a value of `#d98cb3`. +你應該給 `--window-color3` 一個值爲 `#d98cb3`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle(":root")?.getPropertyValue("--window-color3")?.trim(), "#d98cb3"); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md index e81fe0e446..31ba0addca 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md @@ -7,7 +7,7 @@ dashedName: step-68 # --description-- -Create a new variable called `--window-color4` in `:root` and give it a value of `#8cb3d9`. This will be the secondary color for the last background building. +Create a new variable called `--window-color4` in `:root` and give it a value of `#8cb3d9`. 這將是最後一個背景建築的間色。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md index eab23b16e7..15064c3359 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md @@ -7,7 +7,7 @@ dashedName: step-98 # --description-- -Add your `--building-color1` variable as value of the `background-color` property of `.fb4b`. Then, remove the `background-color` from `.fb4`. +Add your `--building-color1` variable as value of the `background-color` property of `.fb4b`. 然後,從 `.fb4` 中刪除 `background-color`。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md index 0ea46abf29..8b941e4afd 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md @@ -7,7 +7,7 @@ dashedName: step-112 # --description-- -Give the `sky` class a `radial-gradient`. Use `#ffcf33` from `0%` to `20%`, `#ffff66` at `21%`, and `#bbeeff` at `100%`. This will add circular gradient to the background that will be your sun. +給 `sky` 類一個 `radial-gradient`。 Use `#ffcf33` from `0%` to `20%`, `#ffff66` at `21%`, and `#bbeeff` at `100%`. 這將爲背景添加圓形漸變,也就是你的太陽。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md index 73e374c1a4..d74496c647 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md @@ -11,7 +11,7 @@ At the top of the sky gradient color list, where you would put a direction for t # --hints-- -You should give the `.sky` `radial-gradient` a direction of `circle closest-corner at 15% 15%`. +你應該將 `.sky` 的 `radial-gradient` 方向設爲 `circle closest-corner at 15% 15%`。 ```js assert.match(new __helpers.CSSHelp(document).getStyle(".sky")?.background, /radial-gradient\(circle closest-corner at 15% 15%, rgb\(255, 207, 51\)|( 0%), rgb\(255, 207, 51\) 20%, rgb\(255, 255, 102\) 21%, rgb\(187, 238, 255\) 100%\)/); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md index 88279eaa7a..22483bb311 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md @@ -11,25 +11,25 @@ Next, add opening and closing `head` and `body` tags within the `html` element. # --hints-- -You should have an opening `head` tag. +應該有一個 `head` 開始標籤。 ```js assert(code.match(//i)); ``` -You should have a closing `head` tag. +應該有一個 `head` 結束標籤。 ```js assert(code.match(/<\/head\s*>/i)); ``` -You should have an opening `body` tag. +應該有一個 `body` 開始標籤。 ```js assert(code.match(//i)); ``` -You should have a closing `body` tag. +應該有一個 `body` 結束標籤。 ```js assert(code.match(/<\/body\s*>/i)); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md index 7abd1f9e5f..6c98c1f794 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md @@ -7,7 +7,7 @@ dashedName: step-21 # --description-- -At this point, you should be able to submit the form. However, you might notice not much happens. +到這裏,應該可以提交表單了。 實際上,會發現提交之後沒有任何效果。 爲了使表單更具交互性,在第一個 `fieldset` 字段中的 `input` 元素添加 `required` 屬性。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md index 7ee24f639f..a5b1c5fd8c 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md @@ -7,7 +7,7 @@ dashedName: step-32 # --description-- -Moving on to the final `fieldset`. What if you wanted to allow a user to upload a profile picture? +現在到了最後一個 `fieldset`。 如果你想允許用戶上傳個人資料圖片,應該怎麼做呢? 類型爲 `file` 的 `input` 可以實現。 添加一個 `label`,其文本爲 `Upload a profile picture:`,嵌套一個 `input` 以接收上傳的文件。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md index 0a4bca8a3a..198c488b94 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md @@ -1,6 +1,6 @@ --- id: 60fc22d1e64d1b04cdd4e602 -title: Step 52 +title: 步驟 52 challengeType: 0 dashedName: step-52 --- @@ -11,25 +11,25 @@ Add some space between the `.inline` elements and the `label` text, by giving a # --hints-- -You should give the `.inline` elements a `margin-top` of `0`. +應該設置 `.inline` 元素的 `margin-top` 爲`0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginTop, '0px'); ``` -You should give the `.inline` elements a `margin-right` of `0.5em`. +應該設置 `.inline` 元素的 `margin-right` 爲`0.5em`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginRight, '0.5em'); ``` -You should give the `.inline` elements a `margin-bottom` of `0`. +應該設置 `.inline` 元素的 `margin-bottom` 爲`0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginBottom, '0px'); ``` -You should give the `.inline` elements a `margin-left` of `0`. +應該設置 `.inline` 元素的 `margin-left` 爲 `0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginLeft, '0px'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md index 20b7f2902c..9026f18b67 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md @@ -1,6 +1,6 @@ --- id: 60ffe1bc30415f042faea936 -title: Step 54 +title: 步驟 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md index 87edac376d..3ddc75ada7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md @@ -7,7 +7,7 @@ dashedName: step-55 # --description-- -Currently, if you type in the `input` or `textarea` elements, you will not be able to see the text. Also, their height is too small to be easy to use. +現在,如果在 `input` 或者 `textarea` 元素內輸入,會發現無法看見文字。 另外,它們的高度也太小了,難以使用。 設置 `color` 爲 `#ffffff`,設置它們的 `min-height` 爲 `2em`,來修復它們。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md index 45834a09d8..b3f5555e95 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md @@ -1,6 +1,6 @@ --- id: 646c586be7180e40ddf74ff6 -title: Step 5 +title: 步驟 5 challengeType: 0 dashedName: step-5 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 8c7b9d20e5..fab6ee9d80 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -1,6 +1,6 @@ --- id: 646ce9d790d2a44de5f99e04 -title: Step 21 +title: 步驟 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md index ae59503cca..0a451a76d7 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md @@ -1,6 +1,6 @@ --- id: 61fd6343fb42013d99bcd7f3 -title: Step 2 +title: 步驟 2 challengeType: 0 dashedName: step-2 --- @@ -11,13 +11,13 @@ Within your `body` element, nest a `section` element within a `main` element. # --hints-- -The first element inside the `body` element should be your `main` element. +`body` 元素內的第一個元素應該是 `main` 元素。 ```js assert(document.querySelector('body')?.children?.[0]?.localName === 'main'); ``` -You should have a `section` element within your `main` element. +`main` 元素中應該有一個 `section` 元素。 ```js assert(document.querySelector('main')?.children?.[0]?.localName === 'section'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md index b70ae793f5..f3f233c70b 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md @@ -9,7 +9,7 @@ dashedName: step-27 Within the `tbody`, add a `tr` with the `class` set to `total`. In that, add a `th` with the text `Total Net Worth`, and wrap `Net Worth` in a `span` with the `class` set to `sr-only`. -Then add three `td` elements, giving the third a `class` set to `current`, and giving each the following text: `$-171`, `$136`, `$334`. +然後添加三個 `td` 元素,將第三個 `class` 設置爲 `current`,併爲每個元素提供以下文本:`$-171`、`$136`、`$334`。 # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md index a055f9784a..7ed4907c9e 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md @@ -7,7 +7,7 @@ dashedName: step-21 # --description-- -The piano needs the freeCodeCamp logo to make it official. +該鋼琴需要 freeCodeCamp 標誌才能正式亮相。 在 `.keys` 元素之前添加一個 `img` 元素。 給 `img` 一個 `logo` 的 `class`,並將 `src` 設置爲 `https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg`。 給它一個 `freeCodeCamp Logo` 的 `alt` 文本。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md index 8fc63e22b9..4c92a69075 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md @@ -12,7 +12,7 @@ Within the `@media` query, add a `.keys` selector and set the `width` to `318px` # --hints-- -Your `@media` rule should have a `.keys` selector. +`@media` 規則應該有一個 `.keys` 選擇器。 ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); @@ -20,7 +20,7 @@ const keys = rules?.find(rule => rule.selectorText === '.keys'); assert(keys); ``` -Your new `.keys` selector should have a `width` of `318px`. +新的 `.keys` 選擇器的 `width` 應爲 `318px`。 ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md index 0be40238d1..e43ae212de 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md @@ -11,14 +11,14 @@ dashedName: step-10 # --hints-- -You should set the `background-color` property to `#4d0f00`. +應該將 `background-color` 屬性設置爲 `#4d0f00`。 ```js const hasBackground = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'rgb(77, 15, 0)'); assert(hasBackground); ``` -Your `.canvas` element should have a `background-color` of `#4d0f00`. +`.canvas` 元素應該有一個 `#4d0f00` 的 `background-color`。 ```js const canvasBackground = new __helpers.CSSHelp(document).getStyle('.canvas')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md index bf1ea56636..80cc984d78 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md @@ -8,7 +8,7 @@ demoType: onLoad # --description-- -We've provided a basic HTML boilerplate for you. +我們已經爲你提供了一個基本的 HTML 模板。 在你的 `body` 元素中創建一個 `h1` 元素,併爲其指定文本 `Nutrition Facts`。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md index 5d20db96b7..f2aafe23be 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -The font is a bit small. Create an `html` selector and set the font to have a size of `16px`. +字體有點小。 Create an `html` selector and set the font to have a size of `16px`. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md index 6e1202c52d..26c38ff662 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md @@ -11,7 +11,7 @@ Wrap everything within the `.label` element in a new `header` element. # --hints-- -You should create a new `header` element. +應該創建一個新的 `header` 元素。 ```js assert(document.querySelector('header')); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md index 89629faa4c..9f3c4877f1 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md @@ -11,19 +11,19 @@ Create a new `div` below your `.large` element and give it a `class` attribute s # --hints-- -You should create another `div` element. +應該創建另一個 `div` 元素。 ```js assert(document.querySelectorAll('div')?.length === 4); ``` -Your new `div` should have a `class` attribute set to `calories-info`. +新的 `div` 應該有一個 `class` 屬性設置爲 `calories-info`。 ```js assert(document.querySelector('.label')?.lastElementChild?.classList?.contains('calories-info')); ``` -Your new `div` should come after the `.large` element. +你的新 `div` 應該在 `.large` 元素之後。 ```js assert(document.querySelector('.label')?.lastElementChild?.previousElementSibling?.classList?.contains('large')); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md index 22ad572125..cf12aa794f 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md @@ -7,7 +7,7 @@ dashedName: step-37 # --description-- -Typography is often more art than science. You may have to tweak things like alignment until it looks correct. +排版往往是藝術而非科學。 You may have to tweak things like alignment until it looks correct. 給你的 `.calories-info span` 選擇器一個 `margin` 設置爲 `-7px -2px`。 這會將 `230` 文本移動到位。 diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md index 6504be1b04..975fce6551 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md @@ -1,6 +1,6 @@ --- id: 615f7c71eab8218f846e4503 -title: Step 52 +title: 步驟 52 challengeType: 0 dashedName: step-52 --- @@ -11,19 +11,19 @@ After your last `.divider`, create another `p` element with the text `Trans Fat # --hints-- -You should create a new `p` element at the end of your `.daily-value` element. +你應該在 `.daily-value` 元素的末尾創建一個新的 `p` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.localName === 'p'); ``` -Your new `p` element should have the text `Trans Fat 0g`. +新 `p` 元素應該包含文本 `Trans Fat 0g`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.innerText === 'Trans Fat 0g'); ``` -Your new `p` element should have the `class` attribute set to `indent no-divider`. +新的 `p` 元素應該將 `class` 屬性設置爲 `indent no-divider`。 ```js const p = document.querySelector('.daily-value.small-text')?.lastElementChild; @@ -31,25 +31,25 @@ assert(p?.classList?.contains('indent')); assert(p?.classList?.contains('no-divider')); ``` -Your new `p` element should have an `i` element. +新的 `p` 元素應該有一個 `i` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('i')); ``` -Your `i` element should wrap the text `Trans`. +`i` 元素應該包含文本 `Trans`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('i')?.innerText === 'Trans'); ``` -Your new `p` element should have a `span` element. +你的新 `p` 元素應該有一個 `span` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('span')); ``` -Your `span` element should wrap the text `Trans Fat 0g`. +你的 `span` 元素應該包含文本 `Trans Fat 0g`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('span')?.innerText?.match(/Trans[\s|\n]+Fat 0g/)); diff --git a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md index a99560a24c..54797f0f9d 100644 --- a/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md +++ b/curriculum/challenges/chinese-traditional/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md @@ -13,7 +13,7 @@ After your last divider, create another `p` element with the text `Protein 3g`. # --hints-- -You should create a new `p` and `div` element at the end of your `.daily-value` element. +你應該在 `.daily-value` 元素的末尾創建一個新的 `p` 和 `div` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.previousElementSibling?.localName === 'p'); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md index 0a7ebb15da..94124ec472 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md @@ -111,7 +111,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' @@ -148,7 +148,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md index 2e50cacfca..cc5b840185 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md @@ -70,7 +70,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` 當 `#text-input` 元素只包含字母 `A`,並且 `#check-btn` 元素被點擊時,`#result` 元素應該包含文本 `"A is a palindrome"`。 diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index 401d434b56..efe023dbcb 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -153,7 +153,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); @@ -375,7 +375,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 2000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md index c91ee794b4..d0c3bf8668 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md @@ -103,7 +103,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store userInput.value = ''; checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); ``` 當你點擊 `#clear-btn` 元素時,`#results-div` 元素中的內容應被刪除。 diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md index 211b0ee0b1..1e84719fc1 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md @@ -9,7 +9,7 @@ dashedName: step-103 在你的條件中,添加一個 `forEach` 循環來遍歷 `checkpoints` 數組。 使用 `checkpoint` 作爲回調函數的參數名。 -在循環內部,使用減法賦值運算符從檢查點的 `x` 位置減去 5。 +Inside the `forEach` callback, use the subtraction assignment operator to subtract 5 from the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ assert.match(splitter[1], /checkpoints\.forEach\(/); ```js const splitter = code.split("if (keys.rightKey.pressed && isCheckpointCollisionDetectionActive)") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` 你應該使用減法賦值運算符從 `checkpoint` 的 `x` 位置減去 5。 diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md index 2e3b846ca4..e428cf083a 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md @@ -9,7 +9,7 @@ dashedName: step-104 在 `else if` 語句中,添加 `forEach` 循環來遍歷 `checkpoints` 數組。 使用 `checkpoint` 作爲回調函數的參數名。 -在循環內部,使用加法賦值運算符將 5 添加到檢查點的 `x` 位置。 +Inside the `forEach` callback, use the addition assignment operator to add 5 to the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ assert.match(splitter[1], /checkpoints\.forEach\s*\(/s); ```js const splitter = code.split("else if (keys.leftKey.pressed && isCheckpointCollisionDetectionActive) {") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` 你應該使用加法賦值運算符給 `checkpoint` 的 `x` 位置添加 5。 diff --git a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 90cc35a73e..b7cd727e27 100644 --- a/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese-traditional/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md index 4dbba97642..73b3586f1f 100644 --- a/curriculum/challenges/chinese-traditional/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md +++ b/curriculum/challenges/chinese-traditional/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md @@ -1,29 +1,29 @@ --- id: 661e131f068359c3ccf2f4d6 -title: Basic Functions Exercise B +title: 基本函數練習 B challengeType: 1 dashedName: top-basic-functions-exercise-b --- # --description-- -Write a function, named `multiply`, that takes two parameters and returns their product. +編寫一個名爲 `multiply` 的函數,該函數採用兩個參數並返回它們的乘積。 # --hints-- -You should have a function named `multiply`. +你應該有一個名爲 `multiply` 的函數。 ```js assert.isFunction(multiply); ``` -Your function should take in two integers as arguments. +你的函數應該接受兩個整數作爲參數。 ```js assert.match(multiply.toString(), /\s*multiply\(\s*\w+\s*,\s*\w+\s*\)/); ``` -You should return the product of the two integers. +你應該返回兩個整數的乘積。 ```js assert.strictEqual(multiply(10, 10), 100); diff --git a/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md b/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md index d2df5dc405..34c586a251 100644 --- a/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md +++ b/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md @@ -32,7 +32,7 @@ This answer doesn't have anything to do with the dialogue. Focus on answers that ## --video-solution-- -2 +1 # --explanation-- diff --git a/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md b/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md index f2f4e253a6..26b9c70e81 100644 --- a/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md +++ b/curriculum/challenges/chinese-traditional/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md @@ -48,7 +48,7 @@ If it were working correctly, Tom wouldn't say that it isn't showing. ## --video-solution-- -2 +3 # --explanation-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md index 0ce4340301..5e0d9a9cd9 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md @@ -18,7 +18,7 @@ Fulfill the user stories below and get all the tests to pass to complete the lab 1. Your table should have a table body element with at least five rows in it. 1. Each row in your table body should have four table data elements that display the book's Title, Author, Genre, and Publication Year. 1. Your table should have a table footer element with one row in it. -1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: [number of books in your table]`. +1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: N` where `N` should be replaced by the number of books in your table. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md index 0107f65a06..497b75cbc1 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md @@ -92,7 +92,7 @@ const secondLink = document.querySelectorAll('header nav ul li a')[1]; assert.exists(secondLink); ``` -The text of the first item in the unordered list should be `"Upcoming Events"`. +The text of the first item in the unordered list should be `Upcoming Events`. ```js const firstLink = document.querySelectorAll('header nav>ul>li>a')[0]; @@ -107,6 +107,13 @@ const hrefAttribute = anchorElement?.getAttribute("href"); assert.strictEqual(hrefAttribute, "#upcoming-events"); ``` +The text of the second item in the unordered list should be `Past Events`. + +```js +const secondLink = document.querySelectorAll('header nav>ul>li>a')[1]; +assert.strictEqual(secondLink.innerText, "Past Events"); +``` + The second item in the unordered list should have the `href` set to `#past-events`. ```js @@ -230,6 +237,22 @@ for (let img of imgElements) { } ``` +Each `h3` element should have the event title. + +```js +const eventTitles = document.querySelectorAll('h3'); +assert.isNotEmpty(eventTitles); +eventTitles.forEach((eventTitle => assert.isNotEmpty(eventTitle.innerText))); +``` + +Each `p` element shoud have the event description. + +```js +const eventDescriptions = document.querySelectorAll('p'); +assert.isNotEmpty(eventDescriptions); +eventDescriptions.forEach((eventDescription => assert.isNotEmpty(eventDescription.innerText))); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md index bb78306d4c..b381e77a9a 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md @@ -72,20 +72,18 @@ You should use `let` to declare a new variable `codingFact`. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) assert.match(code, /let\s+codingFact/) -assert.include(first, 'let'); -assert.exists(first); ``` You should give `codingFact` a value that includes `favoriteLanguage` using concatenation. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) -assert.match(code, /let\scodingFact\s*=\s*("|').+?\1\s*\+\s*favoriteLanguage/) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) +assert.match(code, /let\scodingFact\s*=\s*("|')?.+?\1?\s*\+\s*favoriteLanguage/) assert.include(first, 'let'); assert.exists(first); +assert.isNotEmpty(codingFact); ``` You should log `codingFact` to the console. @@ -102,11 +100,12 @@ You should assign a new value to `codingFact` that also contains `favoriteLangua ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[4], favoriteLanguage); assert.notEqual(output[4], output[3]); assert.isAtLeast(loggingCodingFacts.length, 2); assert.exists(second); +assert.isNotEmpty(codingFact); ``` You should assign a value to `codingFact` for the third time that also contains `favoriteLanguage`, and log it to the console. @@ -114,12 +113,13 @@ You should assign a value to `codingFact` for the third time that also contains ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[5], favoriteLanguage); assert.notEqual(output[5], output[4]); assert.equal(output[5], codingFact); assert.lengthOf(loggingCodingFacts, 3); assert.exists(third); +assert.isNotEmpty(codingFact); ``` You should log to the console `"It was fun sharing these facts with you. Goodbye! - (botName) from (botLocation)."` using concatenation to add the values of the variables. diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md index b877f975f7..7adc23cacf 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md @@ -134,6 +134,20 @@ const testH1 = testDiv.querySelector("h1") assert.notExists(testH1); ``` +When the value of `#markdown-input` is `# title 1\n# alternate title`, `convertMarkdown()` should return `

title 1

alternate title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "# title 1\n# alternate title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h1"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 1"); +assert.equal(headings[1].innerText, "alternate title"); +``` + When the value of `#markdown-input` is `## title 2`, `convertMarkdown()` should return `

title 2

`. ```js @@ -186,6 +200,20 @@ const testH2 = testDiv.querySelector("h2") assert.notExists(testH2); ``` +When the value of `#markdown-input` is `## title 2\n## title 2 alt`, `convertMarkdown()` should return `

title 2

title 2 alt

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "## title 2\n## title 2 alt"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h2"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 2"); +assert.equal(headings[1].innerText, "title 2 alt"); +``` + When the value of `#markdown-input` is `### title 3`, `convertMarkdown()` should return `

title 3

`. ```js @@ -238,6 +266,20 @@ const testH3 = testDiv.querySelector("h3") assert.notExists(testH3); ``` +When the value of `#markdown-input` is `### title 3\n### third title`, `convertMarkdown()` should return `

title 3

third title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "### title 3\n### third title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h3"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 3"); +assert.equal(headings[1].innerText, "third title"); +``` + When the value of `#markdown-input` is `**this is bold**`, `convertMarkdown()` should return `this is bold`. ```js @@ -279,17 +321,18 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` -When the value of `#markdown-input` is `__this is bold__`, `convertMarkdown()` should return `this is bold`. +When the value of `#markdown-input` is `**this is bold**\n**this is also bold**`, `convertMarkdown()` should return `this is boldthis is also bold`. ```js const input = document.querySelector("#markdown-input"); -input.value = "__this is bold__"; +input.value = "**this is bold**\n**this is also bold**"; const testDiv = document.createElement("div"); testDiv.innerHTML = convertMarkdown(); const strongs = testDiv.querySelectorAll("strong"); -assert.lengthOf(strongs, 1); -assert.lengthOf(testDiv.children, 1); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); ``` When the value of `#markdown-input` is `__this is bold__`, `this is bold` should be displayed inside `#html-output`. @@ -320,6 +363,20 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` +When the value of `#markdown-input` is `__this is bold__\n__this is also bold__`, `convertMarkdown()` should return `this is boldthis is also bold`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "__this is bold__\n__this is also bold__"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const strongs = testDiv.querySelectorAll("strong"); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); +``` + When the value of `#markdown-input` is `*this is italic*`, `convertMarkdown()` should return `this is italic`. ```js @@ -361,6 +418,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `*this is italic*\n*this is also italic*`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "*this is italic*\n*this is also italic*"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is `_this is italic_`, `convertMarkdown()` should return `this is italic`. ```js @@ -402,6 +473,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `_this is italic_\n_this is also italic_`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "_this is italic_\n_this is also italic_"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is either `# **title 1**` or `# __title 1__`, `convertMarkdown()` should return `

title 1

`. ```js @@ -529,6 +614,22 @@ assert.equal(imgs[0].alt, "alt-text"); assert.isTrue(imgs[0].src.endsWith("image-source")); ``` +When the value of `#markdown-input` is `![alt-text](image-source)\n![alt-text-2](image-source-2)`, `convertMarkdown()` should return `alt-textalt-text-2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "!![alt-text](image-source)\n![alt-text-2](image-source-2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const imgs = testDiv.querySelectorAll("img"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(imgs, 2); +assert.equal(imgs[0].alt, "alt-text"); +assert.isTrue(imgs[0].src.endsWith("image-source")); +assert.equal(imgs[1].alt, "alt-text-2"); +assert.isTrue(imgs[1].src.endsWith("image-source-2")); +``` + When the value of `#markdown-input` is `[link text](URL)`, `convertMarkdown()` should return `link text`. ```js @@ -573,6 +674,22 @@ assert.isTrue(anchors[0].href.endsWith("URL")); assert.equal(anchors[0].innerText, "link text"); ``` +When the value of `#markdown-input` is `[link text](URL)\n[link text 2](URL2)`, `convertMarkdown()` should return `link textlink text 2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "[link text](URL)\n[link text 2](URL2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const anchors = testDiv.querySelectorAll("a"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(anchors, 2); +assert.isTrue(anchors[0].href.endsWith("URL")); +assert.equal(anchors[0].innerText, "link text"); +assert.isTrue(anchors[1].href.endsWith("URL2")); +assert.equal(anchors[1].innerText, "link text 2"); +``` + When the value of `#markdown-input` is `> this is a quote`, `convertMarkdown()` should return `
this is a quote
`. ```js @@ -614,6 +731,21 @@ assert.lengthOf(quotes, 1); assert.equal(quotes[0].innerText, "this is a quote"); ``` +When the value of `#markdown-input` is `> this is a quote\n> this is another quote`, `convertMarkdown()` should return `
this is a quote
this is another quote
`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "> this is a quote\n> this is another quote"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const quotes = testDiv.querySelectorAll("blockquote"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(quotes, 2); +assert.equal(quotes[0].innerText, "this is a quote"); +assert.equal(quotes[1].innerText, "this is another quote"); +``` + + When the value of `#markdown-input` is `some text > not a quote anymore`, `convertMarkdown()` should not convert `> not a quote anymore` into a `blockquote` element. ```js diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md index 969247bda1..2692aaa851 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md @@ -68,7 +68,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` When the `#text-input` element only contains the letter `A` and the `#check-btn` element is clicked, the `#result` element should contain the text `"A is a palindrome"`. diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md index 493cc70725..6175babe4c 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md @@ -215,7 +215,7 @@ techProjects.unpin(smartHome); assert.isEmpty(techProjects.ideas); ``` -When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 ideas\n`. +When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 idea(s)\n`. ```js diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md index 6076f4db8f..6064ce4be4 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md @@ -233,7 +233,7 @@ Each `img` element should have a valid `src` attribute. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.src.length, 0); + assert.isAbove(image.src.trim().length, 0); } ``` @@ -243,7 +243,7 @@ Each `img` element should have an `alt` attribute with an appropriate value. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.alt.length, 0); + assert.isAbove(image.alt.trim().length, 0); } ``` diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md index afc337de68..4deaa8da95 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md @@ -13,10 +13,11 @@ Fulfill the user stories below and get all the tests to pass to complete the lab **用戶需求:** -1. You should have a `main` element. +1. You should have a `main` element as the only child of the `body` element. 1. You should have an `h1` element with the topic of your page. 1. You should have a paragraph introducing the topic of your page below your `h1` element. -1. You should have three `section` elements, each containing an `h2` element, a paragraph, and an `iframe` element. +1. You should have three `section` elements below your first paragraph. +1. Each section should contain an `h2` element, a paragraph, and an `iframe` element, in this order. 1. The three `iframe` elements should have a `src` attribute set to a valid video. 1. Each `iframe` element should also have a `title` attribute to describe the embedded content, and a `height` attribute and a `width` attribute to set the element to a proper size. diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md index 59beabf4e9..1ecd98c26e 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md @@ -34,7 +34,7 @@ Review the beginning of the video where the `superscript` element is discussed. --- -To display text as a `superscript` above the normal line of text. +To display text as a superscript above the normal line of text. --- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md b/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md index 184b714b4c..bf1a439064 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md @@ -22,7 +22,7 @@ HyperText Maker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -30,7 +30,7 @@ HyperText Marker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -38,7 +38,7 @@ HyperText Markdown Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md index 0f867d3ad9..06e0471e54 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md @@ -307,19 +307,19 @@ Given the following selectors, which has the lowest specificity? #### --distractors-- -`h1` +`#id` --- -`#id` +`.class` --- -`p` +`div h1` #### --answer-- -`div` +`h1` ### --question-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md index 1c191914a8..911dd9f72d 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md @@ -205,11 +205,11 @@ Which of these functions allows specifying the transparency of a color? --- -`rgba()` +`alpha()` #### --answer-- -`opacity()` +`rgba()` ### --question-- @@ -419,7 +419,7 @@ Which of the following is the correct syntax to create a CSS variable with a fal ```css .element { - color: var(--main-color, red); + color: var(--main-color; red); } ``` diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md index e3ab555833..c687e078a1 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md @@ -69,7 +69,7 @@ A single-page portfolio site. --- -A complex e-commerce site with multiple categories and subcategories. +An infinite scroll gallery site. --- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md b/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md index 2f77b05e5b..87c236a90f 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md @@ -24,7 +24,7 @@ Review the concepts below to prepare for the upcoming quiz. - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md b/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md index 3343a69ca7..6e9e133430 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md @@ -2611,7 +2611,7 @@ In the above example, the `findFactorial` function is called recursively until ` - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index b32e164fb1..72d4d9e55c 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ assert.lengthOf(document.querySelectorAll('body'), 1); assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md index 5e50bc1beb..22a831da07 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md @@ -13,7 +13,7 @@ Here is a reminder of how to call a function: ```js function myFunction() { - return 'Hello World'; + return "Hello World"; } // function call diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 06b4be5a16..0b98e7082b 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md index 36568bfc1d..1bcc7a9900 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -9,7 +9,7 @@ dashedName: step-104 Now that you've targeted the correct element, you can update its text after the delay you specified earlier. -Using the `.getElementById()` method, set the `textContent` property of the targeted element equal to the `msg` property of the current object. +Set the `textContent` property of the targeted element equal to the `msg` property of the current object by using property chaining on your `.getElementById()` method directly. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md index a9829beb3d..85c28d9283 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md @@ -18,7 +18,7 @@ The `for` attribute on the `label` element should match the `id` attribute on th Below your `legend` element, add a `label` element with the text of `Name (required):`. For the `for` attribute, set it to the value of `"full-name"`. -Then below your `legend` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. +Then below your `label` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. # --hints-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md index a010c6c140..408895d618 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md @@ -13,30 +13,76 @@ You should now push the three objects into the `recipes` array. To do thus, you Use the `push()` method to push all the recipe objects into the `recipes` array. Make sure to push `recipe1`, `recipe2`, and `recipe3` in that order. +Also delete the `recipe1Name`, `recipe2Name`, `recipe1CookingTime`, and `recipe2CookingTime` variables, and the `console.log` statements which log those variables. + # --hints-- -You should remove `recipe1Name` and its console log. +You should remove the `recipe1Name` variable. + +```js +try { + recipe1Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1Name is not defined'); +} +``` + +You should remove the `console.log(recipe1Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1Name\s*\)\s*;?/); +``` + +You should remove the `recipe2Name` variable. + +```js +try { + recipe2Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2Name is not defined'); +} +``` + +You should remove the `console.log(recipe2Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2Name\s*\)\s*;?/); +``` + +You should remove the `recipe1CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1Name\s*=\s*recipe1\.name;?\s*console\.log\(recipe1Name\);?/) +try { + recipe1CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1CookingTime is not defined'); +} ``` -You should remove `recipe2Name` and its console log. +You should remove the `console.log(recipe1CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2Name\s*=\s*recipe2\.name;?\s*console\.log\(recipe2Name\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1CookingTime\s*\)\s*;?/); ``` -You should remove `recipe1CookingTime` and its console log. +You should remove the `recipe2CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1CookingTime\s*=\s*recipe1\.cookingTime;?\s*console\.log\(recipe1CookingTime\);?/) +try { + recipe2CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2CookingTime is not defined'); +} ``` -You should remove `recipe2CookingTime` and its console log. +You should remove the `console.log(recipe2CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2CookingTime\s*=\s*recipe2\.cookingTime;?\s*console\.log\(recipe2CookingTime\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2CookingTime\s*\)\s*;?/); ``` You should push all the recipes objects into the `recipes` array. Make sure to push them in the order they are declared. diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md index 292feedbae..6ca14f2a2a 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md @@ -9,7 +9,7 @@ dashedName: step-7 Now, you should work on calculating the `averageRating`, `totalIngredients`, and the `difficultyLevel` for each recipe in the `recipes` array. -Start by creating a `getAverageRating` function that takes a `ratings` parameter. Inside the function, calculate the average rating using the items in the `ratings` property of each recipe. +Start by creating a `getAverageRating` function that takes a single argument, which is an array with ratings. Inside the function, calculate the average rating from the array passed to the function. Your `getAverageRating` function must return a number. @@ -21,10 +21,10 @@ You should create a `getAverageRating` function. assert.isFunction(getAverageRating) ``` -Your `getAverageRating` function should have a `ratings` parameter. +Your `getAverageRating` function should have a single parameter. ```js -assert.match(getAverageRating.toString(), /ratings/); +assert.lengthOf(getAverageRating, 1); ``` Your `getAverageRating` function should return a number. @@ -33,30 +33,22 @@ Your `getAverageRating` function should return a number. assert.isNumber(getAverageRating(recipe1.ratings)) ``` -You `getAverageRating` function should return a number when the average rating is `4.00`. +`getAverageRating(recipe1.ratings)` should return `4.5`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe1.ratings), 4.5) ``` -You `getAverageRating` function should return a number when the average rating is `4.75`. +`getAverageRating(recipe2.ratings)` should return `4.75`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe2.ratings), 4.75) ``` -You `getAverageRating` function should return a number when the average rating is `4.50`. +`getAverageRating(recipe3.ratings)` should return `4`. ```js -assert.isNumber(getAverageRating(recipe1.ratings)) -``` - -Your `getAverageRating` function should return the correct rating. - -```js -assert.equal(getAverageRating(recipe1.ratings), 4.50) -assert.equal(getAverageRating(recipe2.ratings), 4.75) -assert.equal(getAverageRating(recipe3.ratings), 4.00) +assert.strictEqual(getAverageRating(recipe3.ratings), 4) ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md index ace358ab7f..6d190332d1 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md @@ -7,7 +7,7 @@ dashedName: step-8 # --description-- -Create a `getTotalIngredients` function that takes an `ingredients` parameter. This function should return the number of ingredients for each recipe by returning the length of the `ingredients` array. +Create a `getTotalIngredients` function that takes a single argument, representing an array with ingredients, and returns the number of ingredients from the array passed to the function. # --hints-- @@ -17,10 +17,10 @@ You should create a `getTotalIngredients` function. assert.isFunction(getTotalIngredients) ``` -You `getTotalIngredients` function should have an `ingredients` parameter. +Your `getTotalIngredients` function should have a single parameter. ```js -assert.match(getTotalIngredients.toString(), /ingredients/); +assert.lengthOf(getTotalIngredients, 1); ``` Your `getTotalIngredients` function should return a number. @@ -29,30 +29,22 @@ Your `getTotalIngredients` function should return a number. assert.isNumber(getTotalIngredients(recipe1.ingredients)) ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `5`. +`getTotalIngredients(recipe1.ingredients)` should return `4`. ```js -assert.isNumber(getTotalIngredients(recipe2.ingredients)) +assert.strictEqual(getTotalIngredients(recipe1.ingredients), 4); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `3`. +`getTotalIngredients(recipe2.ingredients)` should return `5`. ```js -assert.isNumber(getTotalIngredients(recipe3.ingredients)) +assert.strictEqual(getTotalIngredients(recipe2.ingredients), 5); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `4`. +`getTotalIngredients(recipe3.ingredients)` should return `3`. ```js -assert.isNumber(getTotalIngredients(recipe1.ingredients)) -``` - -Your `getTotalIngredients` function should return the correct number of ingredients. - -```js -assert.equal(getTotalIngredients(recipe1.ingredients), 4) -assert.equal(getTotalIngredients(recipe2.ingredients), 5) -assert.equal(getTotalIngredients(recipe3.ingredients), 3) +assert.strictEqual(getTotalIngredients(recipe3.ingredients), 3); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md index c686ff0e9a..7056df9e9b 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md @@ -7,9 +7,9 @@ dashedName: step-9 # --description-- -Create a `getDifficultyLevel` function that takes `cookingTime` as a parameter. +Create a `getDifficultyLevel` function that takes a number indicating the cooking time as a parameter. -If `cookingTime` is less than `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. +If the cooking time is less than or equal to `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. # --hints-- @@ -19,13 +19,13 @@ You should create a `getDifficultyLevel` function. assert.isFunction(getDifficultyLevel) ``` -You `getDifficultyLevel` function should have a `cookingTime` parameter. +Your `getDifficultyLevel` function should have a single parameter. ```js -assert.match(getDifficultyLevel.toString(), /cookingTime/); +assert.lengthOf(getDifficultyLevel, 1); ``` -Your `getDifficultyLevel` function should return `"easy"` when the `cookingTime` is less than or equal to `30`. +Your `getDifficultyLevel` function should return `"easy"` when the cooking time is less than or equal to `30`. ```js assert.strictEqual(getDifficultyLevel(10), "easy") @@ -34,7 +34,7 @@ assert.strictEqual(getDifficultyLevel(29), "easy") assert.strictEqual(getDifficultyLevel(30), "easy") ``` -Your `getDifficultyLevel` function should return `"medium"` when the `cookingTime` is greater than `31` and less than `60`. +Your `getDifficultyLevel` function should return `"medium"` when the cooking time is greater than `31` and less than or equal to `60`. ```js assert.strictEqual(getDifficultyLevel(31), "medium") @@ -43,7 +43,7 @@ assert.strictEqual(getDifficultyLevel(50), "medium") assert.strictEqual(getDifficultyLevel(60), "medium") ``` -Your `getDifficultyLevel` function should return `"hard"` when the `cookingTime` is greater than `60`. +Your `getDifficultyLevel` function should return `"hard"` when the cooking time is greater than `60`. ```js assert.strictEqual(getDifficultyLevel(61), "hard") diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md index 3a34c4658f..48de895967 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md @@ -9,46 +9,44 @@ dashedName: step-11 You can now fill in each item of the `recipes` array with values for the `averageRating`, `totalIngredients`, and `difficultyLevel` properties. -To do this, access the `averageRating`, `totalIngredients`, and `difficultyLevel` properties of each recipe object and assign them the results of the corresponding function calls with the appropriate arguments. - -For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate function calls and arguments. +For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate results of function calls and arguments. # --hints-- You should access the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating/) +assert.isNotNull(recipe1.averageRating); ``` -You should set the `averageRating` of `recipe1` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe1.ratings` to the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating\s*=\s*getAverageRating\(recipe1\.ratings\);?/) +assert.strictEqual(recipe1.averageRating, getAverageRating(recipe1.ratings)); ``` You should access the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients/) +assert.isNotNull(recipe1.totalIngredients); ``` -You should set the `totalIngredients` of `recipe1` you accessed to the calling of `getTotalIngredients` with `recipe1.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe1.ingredients` to the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients\s*=\s*getTotalIngredients\(recipe1\.ingredients\);?/) +assert.strictEqual(recipe1.totalIngredients, getTotalIngredients(recipe1.ingredients)); ``` You should access the `difficultyLevel` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel/) +assert.isNotEmpty(recipe1.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe1` you accessed to the calling of `getDifficultyLevel` with `recipe1.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe1.cookingTime` to the `cookingTime` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe1\.cookingTime\);?/) +assert.strictEqual(recipe1.difficultyLevel, getDifficultyLevel(recipe1.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md index bd9aceddf5..8f45a98cbd 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md @@ -14,37 +14,37 @@ Repeat the process for the `averageRating`, `totalIngredients`, and `difficultyL You should access the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating/) +assert.isNotNull(recipe2.averageRating); ``` -You should set the `averageRating` of `recipe2` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe2.ratings` to the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating\s*=\s*getAverageRating\(recipe2\.ratings\);?/) +assert.strictEqual(recipe2.averageRating, getAverageRating(recipe2.ratings)); ``` You should access the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients/) +assert.isNotNull(recipe2.totalIngredients); ``` -You should set the `totalIngredients` of `recipe2` you accessed to the calling of `getTotalIngredients` with `recipe2.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe2.ingredients` to the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients\s*=\s*getTotalIngredients\(recipe2\.ingredients\);?/) +assert.strictEqual(recipe2.totalIngredients, getTotalIngredients(recipe2.ingredients)); ``` You should access the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel/) +assert.isNotEmpty(recipe2.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe2` you accessed to the calling of `getDifficultyLevel` with `recipe2.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe2.cookingTime` to the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe2\.cookingTime\);?/) +assert.strictEqual(recipe2.difficultyLevel, getDifficultyLevel(recipe2.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md index dc26e12dbe..5577460076 100644 --- a/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md +++ b/curriculum/challenges/chinese-traditional/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md @@ -33,73 +33,73 @@ Make sure all the variables you created are logged to the console. You should create a `recipe1Name` variable. ```js -assert.isNotNull(recipe1Name) +assert.isDefined(recipe1Name); ``` -You should set your `recipe1Name` variable to the accessment of the `name` property of `recipe1`. +You should assign the value of the `name` property of `recipe1` to your `recipe1name` variable. ```js -assert.match(code, /recipe1\.name|recipe1\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe1Name, recipe1.name); ``` You should log `recipe1Name` to the console. ```js -assert.match(code, /console\.log\(recipe1Name\)/) +assert.match(code, /console\.log\(\s*recipe1Name\s*\)/); ``` You should create a `recipe2Name` variable. ```js -assert.isNotNull(recipe2Name) +assert.isDefined(recipe2Name); ``` -You should set your `recipe2Name` variable to the accessment of the `name` property of `recipe2`. +You should assign the value of the `name` property of `recipe2` to your `recipe2name` variable. ```js -assert.match(code, /recipe2\.name|recipe2\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe2Name, recipe2.name); ``` You should log `recipe2Name` to the console. ```js -assert.match(code, /console\.log\(recipe2Name\)/) +assert.match(code, /console\.log\(recipe2Name\)/); ``` You should create a `recipe1CookingTime` variable. ```js -assert.isNotNull(recipe1CookingTime) +assert.isDefined(recipe1CookingTime); ``` -You should set your `recipe1CookingTime` variable to the accessment of the `cookingTime` property of `recipe1`. +You should assign the value of the `cookingTime` property of `recipe1` to your `recipe1CookingTime` variable. ```js -assert.match(code, /recipe1\.cookingTime|recipe1\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe1CookingTime, recipe1.cookingTime); ``` You should log `recipe1CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe1CookingTime\)/) +assert.match(code, /console\.log\(recipe1CookingTime\)/); ``` You should create a `recipe2CookingTime` variable. ```js -assert.isNotNull(recipe2CookingTime) +assert.isDefined(recipe2CookingTime); ``` -You should set your `recipe2CookingTime` variable to the accessment of the `cookingTime` property of `recipe2`. +You should assign the value of the `cookingTime` property of `recipe2` to your `recipe2CookingTime` variable. ```js -assert.match(code, /recipe2\.cookingTime|recipe2\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe2CookingTime, recipe2.cookingTime); ``` You should log `recipe2CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe2CookingTime\)/) +assert.match(code, /console\.log\(recipe2CookingTime\)/); ``` # --seed-- diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md index 3e6431837e..7ce8aa05bd 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md @@ -17,61 +17,61 @@ Check if a value is classified as a boolean primitive. Return `true` or `false`. `booWho(true)` 应返回 `true`。 ```js -assert.strictEqual(booWho(true), true); +assert.isTrue(booWho(true)); ``` `booWho(false)` 应该返回 `true`。 ```js -assert.strictEqual(booWho(false), true); +assert.isTrue(booWho(false)); ``` `booWho([1, 2, 3])` 应该返回 `false`。 ```js -assert.strictEqual(booWho([1, 2, 3]), false); +assert.isFalse(booWho([1, 2, 3])); ``` `booWho([].slice)` 应该返回 `false`。 ```js -assert.strictEqual(booWho([].slice), false); +assert.isFalse(booWho([].slice)); ``` `booWho({ "a": 1 })` 应该返回 `false`。 ```js -assert.strictEqual(booWho({ a: 1 }), false); +assert.isFalse(booWho({ a: 1 })); ``` `booWho(1)` 应该返回 `false`。 ```js -assert.strictEqual(booWho(1), false); +assert.isFalse(booWho(1)); ``` `booWho(NaN)` 应该返回 `false`。 ```js -assert.strictEqual(booWho(NaN), false); +assert.isFalse(booWho(NaN)); ``` `booWho("a")` 应该返回 `false`。 ```js -assert.strictEqual(booWho('a'), false); +assert.isFalse(booWho('a')); ``` `booWho("true")` 应该返回 `false`。 ```js -assert.strictEqual(booWho('true'), false); +assert.isFalse(booWho('true')); ``` `booWho("false")` 应该返回 `false`。 ```js -assert.strictEqual(booWho('false'), false); +assert.isFalse(booWho('false')); ``` # --seed-- @@ -90,7 +90,7 @@ booWho(null); ```js function booWho(bool) { - return typeof bool === "boolean"; + return typeof bool === 'boolean'; } booWho(null); diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md index 155ce98c67..fa025c4222 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md @@ -90,7 +90,7 @@ function chunkArrayInGroups(arr, size) { return arr; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` # --solutions-- @@ -106,5 +106,5 @@ function chunkArrayInGroups(arr, size) { return out; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md index b87f5fc992..ffc28c0572 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md @@ -10,84 +10,85 @@ dashedName: confirm-the-ending Check if a string (first argument, `str`) ends with the given target string (second argument, `target`). -This challenge *can* be solved with the `.endsWith()` method, which was introduced in ES2015. But for the purpose of this challenge, we would like you to use one of the JavaScript substring methods instead. +This challenge _can_ be solved with the `.endsWith()` method, which was introduced in ES2015. But for the purpose of this challenge, we would like you to use one of the JavaScript substring methods instead. # --hints-- `confirmEnding("Bastian", "n")` should return `true`. ```js -assert(confirmEnding('Bastian', 'n') === true); +assert.isTrue(confirmEnding('Bastian', 'n')); ``` `confirmEnding("Congratulation", "on")` should return `true`. ```js -assert(confirmEnding('Congratulation', 'on') === true); +assert.isTrue(confirmEnding('Congratulation', 'on')); ``` `confirmEnding("Connor", "n")` should return `false`. ```js -assert(confirmEnding('Connor', 'n') === false); +assert.isFalse(confirmEnding('Connor', 'n')); ``` `confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification")` should return `false`. ```js -assert( +assert.isFalse( confirmEnding( 'Walking on water and developing software from a specification are easy if both are frozen', 'specification' - ) === false + ) ); ``` `confirmEnding("He has to give me a new name", "name")` should return `true`. ```js -assert(confirmEnding('He has to give me a new name', 'name') === true); +assert.isTrue(confirmEnding('He has to give me a new name', 'name')); ``` `confirmEnding("Open sesame", "same")` should return `true`. ```js -assert(confirmEnding('Open sesame', 'same') === true); +assert.isTrue(confirmEnding('Open sesame', 'same')); ``` `confirmEnding("Open sesame", "sage")` should return `false`. ```js -assert(confirmEnding('Open sesame', 'sage') === false); +assert.isFalse(confirmEnding('Open sesame', 'sage')); ``` `confirmEnding("Open sesame", "game")` should return `false`. ```js -assert(confirmEnding('Open sesame', 'game') === false); +assert.isFalse(confirmEnding('Open sesame', 'game')); ``` `confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain")` should return `false`. ```js -assert( +assert.isFalse( confirmEnding( 'If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing', 'mountain' - ) === false + ) ); ``` `confirmEnding("Abstraction", "action")` should return `true`. ```js -assert(confirmEnding('Abstraction', 'action') === true); +assert.isTrue(confirmEnding('Abstraction', 'action')); ``` Your code should not use the built-in method `.endsWith()` to solve the challenge. ```js -assert(!/\.endsWith\(.*?\)\s*?;?/.test(__helpers.removeJSComments(code)) && !/\['endsWith'\]/.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.endsWith\(.*?\)\s*?;?/); +assert.notMatch(__helpers.removeJSComments(code), /\['endsWith'\]/); ``` # --seed-- @@ -99,7 +100,7 @@ function confirmEnding(str, target) { return str; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` # --solutions-- @@ -109,5 +110,5 @@ function confirmEnding(str, target) { return str.substring(str.length - target.length) === target; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md index a3199d7c75..709e5a2952 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md @@ -17,37 +17,37 @@ The formula to convert from Celsius to Fahrenheit is the temperature in Celsius `convertCtoF(0)` 应该返回一个数字 ```js -assert(typeof convertCtoF(0) === 'number'); +assert.isNumber(convertCtoF(0)); ``` `convertCtoF(-30)` 应该返回 `-22` 的值 ```js -assert(convertCtoF(-30) === -22); +assert.strictEqual(convertCtoF(-30), -22); ``` `convertCtoF(-10)` 应该返回 `14` 的值 ```js -assert(convertCtoF(-10) === 14); +assert.strictEqual(convertCtoF(-10), 14); ``` `convertCtoF(0)` 应该返回 `32` 的值 ```js -assert(convertCtoF(0) === 32); +assert.strictEqual(convertCtoF(0), 32); ``` `convertCtoF(20)` 应该返回 `68` 的值 ```js -assert(convertCtoF(20) === 68); +assert.strictEqual(convertCtoF(20), 68); ``` `convertCtoF(30)` 应该返回 `86` 的值 ```js -assert(convertCtoF(30) === 86); +assert.strictEqual(convertCtoF(30), 86); ``` # --seed-- @@ -67,7 +67,7 @@ convertCtoF(30); ```js function convertCtoF(celsius) { - let fahrenheit = celsius * 9/5 + 32; + let fahrenheit = celsius * (9 / 5) + 32; return fahrenheit; } diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md index 0111a833c7..61869ca263 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md @@ -23,31 +23,31 @@ For example: `5! = 1 * 2 * 3 * 4 * 5 = 120` `factorialize(5)` 应返回一个数字。 ```js -assert(typeof factorialize(5) === 'number'); +assert.isNumber(factorialize(5)); ``` `factorialize(5)` 应该返回 `120`。 ```js -assert(factorialize(5) === 120); +assert.strictEqual(factorialize(5), 120); ``` `factorialize(10)` 应该返回 `3628800`。 ```js -assert(factorialize(10) === 3628800); +assert.strictEqual(factorialize(10), 3628800); ``` `factorialize(20)` 应该返回 `2432902008176640000`。 ```js -assert(factorialize(20) === 2432902008176640000); +assert.strictEqual(factorialize(20), 2432902008176640000); ``` `factorialize(0)` 应该返回 `1`。 ```js -assert(factorialize(0) === 1); +assert.strictEqual(factorialize(0), 1); ``` # --seed-- diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md index fb62b8eddf..5cd15cd9f7 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md @@ -45,7 +45,7 @@ You should not mutate `arr`. ```js const arr = ['a', false, 0, 'Naomi']; bouncer(arr); -assert.deepEqual(arr, ['a', false, 0, 'Naomi']) +assert.deepEqual(arr, ['a', false, 0, 'Naomi']); ``` # --seed-- @@ -57,7 +57,7 @@ function bouncer(arr) { return arr; } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` # --solutions-- @@ -67,5 +67,5 @@ function bouncer(arr) { return arr.filter(e => e); } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md index e63c5c3ce0..064dde70fc 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md @@ -17,50 +17,51 @@ Return the length of the longest word in the provided sentence. `findLongestWordLength("The quick brown fox jumped over the lazy dog")` 应返回一个数字。 ```js -assert( - typeof findLongestWordLength( - 'The quick brown fox jumped over the lazy dog' - ) === 'number' +assert.isNumber( + findLongestWordLength('The quick brown fox jumped over the lazy dog') ); ``` `findLongestWordLength("The quick brown fox jumped over the lazy dog")` 应返回 `6`。 ```js -assert( - findLongestWordLength('The quick brown fox jumped over the lazy dog') === 6 +assert.strictEqual( + findLongestWordLength('The quick brown fox jumped over the lazy dog'), + 6 ); ``` `findLongestWordLength("May the force be with you")` 应返回 `5`。 ```js -assert(findLongestWordLength('May the force be with you') === 5); +assert.strictEqual(findLongestWordLength('May the force be with you'), 5); ``` `findLongestWordLength("Google do a barrel roll")` 应返回 `6`。 ```js -assert(findLongestWordLength('Google do a barrel roll') === 6); +assert.strictEqual(findLongestWordLength('Google do a barrel roll'), 6); ``` `findLongestWordLength("What is the average airspeed velocity of an unladen swallow")` 应返回 `8`。 ```js -assert( +assert.strictEqual( findLongestWordLength( 'What is the average airspeed velocity of an unladen swallow' - ) === 8 + ), + 8 ); ``` `findLongestWordLength("What if we try a super-long word such as otorhinolaryngology")` 应返回 `19`。 ```js -assert( +assert.strictEqual( findLongestWordLength( 'What if we try a super-long word such as otorhinolaryngology' - ) === 19 + ), + 19 ); ``` @@ -73,7 +74,7 @@ function findLongestWordLength(str) { return str.length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` # --solutions-- @@ -83,5 +84,5 @@ function findLongestWordLength(str) { return str.split(' ').sort((a, b) => b.length - a.length)[0].length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md index 840401cd8b..5e0bd54891 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md @@ -21,73 +21,73 @@ Return `true` if the string in the first element of the array contains all of th `mutation(["hello", "hey"])` 应返回 `false`。 ```js -assert(mutation(['hello', 'hey']) === false); +assert.isFalse(mutation(['hello', 'hey'])); ``` `mutation(["hello", "Hello"])` 应返回 `true`。 ```js -assert(mutation(['hello', 'Hello']) === true); +assert.isTrue(mutation(['hello', 'Hello'])); ``` `mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"])` 应返回 `true`。 ```js -assert(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu']) === true); +assert.isTrue(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu'])); ``` `mutation(["Mary", "Army"])` 应返回 `true`。 ```js -assert(mutation(['Mary', 'Army']) === true); +assert.isTrue(mutation(['Mary', 'Army'])); ``` `mutation(["Mary", "Aarmy"])` 应返回 `true`。 ```js -assert(mutation(['Mary', 'Aarmy']) === true); +assert.isTrue(mutation(['Mary', 'Aarmy'])); ``` `mutation(["Alien", "line"])` 应返回 `true`。 ```js -assert(mutation(['Alien', 'line']) === true); +assert.isTrue(mutation(['Alien', 'line'])); ``` `mutation(["floor", "for"])` 应返回 `true`。 ```js -assert(mutation(['floor', 'for']) === true); +assert.isTrue(mutation(['floor', 'for'])); ``` `mutation(["hello", "neo"])` 应返回 `false`。 ```js -assert(mutation(['hello', 'neo']) === false); +assert.isFalse(mutation(['hello', 'neo'])); ``` `mutation(["voodoo", "no"])` 应返回 `false`。 ```js -assert(mutation(['voodoo', 'no']) === false); +assert.isFalse(mutation(['voodoo', 'no'])); ``` `mutation(["ate", "date"])` 应返回 `false`。 ```js -assert(mutation(['ate', 'date']) === false); +assert.isFalse(mutation(['ate', 'date'])); ``` `mutation(["Tiger", "Zebra"])` 应返回 `false`。 ```js -assert(mutation(['Tiger', 'Zebra']) === false); +assert.isFalse(mutation(['Tiger', 'Zebra'])); ``` `mutation(["Noel", "Ole"])` 应返回 `true`。 ```js -assert(mutation(['Noel', 'Ole']) === true); +assert.isTrue(mutation(['Noel', 'Ole'])); ``` # --seed-- @@ -99,7 +99,7 @@ function mutation(arr) { return arr; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` # --solutions-- @@ -108,10 +108,16 @@ mutation(["hello", "hey"]); function mutation(arr) { let hash = Object.create(null); - arr[0].toLowerCase().split('').forEach(c => hash[c] = true); + arr[0] + .toLowerCase() + .split('') + .forEach(c => (hash[c] = true)); - return !arr[1].toLowerCase().split('').filter(c => !hash[c]).length; + return !arr[1] + .toLowerCase() + .split('') + .filter(c => !hash[c]).length; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md index 171874f3fd..584d5b0b7a 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md @@ -8,56 +8,56 @@ dashedName: repeat-a-string-repeat-a-string # --description-- -Repeat a given string `str` (first argument) for `num` times (second argument). Return an empty string if `num` is not a positive number. For the purpose of this challenge, do *not* use the built-in `.repeat()` method. +Repeat a given string `str` (first argument) for `num` times (second argument). Return an empty string if `num` is not a positive number. For the purpose of this challenge, do _not_ use the built-in `.repeat()` method. # --hints-- `repeatStringNumTimes("*", 3)` 应返回 `***`。 ```js -assert(repeatStringNumTimes('*', 3) === '***'); +assert.strictEqual(repeatStringNumTimes('*', 3), '***'); ``` `repeatStringNumTimes("abc", 3)` 应返回 `abcabcabc`。 ```js -assert(repeatStringNumTimes('abc', 3) === 'abcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 3), 'abcabcabc'); ``` `repeatStringNumTimes("abc", 4)` 应返回 `abcabcabcabc`。 ```js -assert(repeatStringNumTimes('abc', 4) === 'abcabcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 4), 'abcabcabcabc'); ``` `repeatStringNumTimes("abc", 1)` 应返回 `abc`。 ```js -assert(repeatStringNumTimes('abc', 1) === 'abc'); +assert.strictEqual(repeatStringNumTimes('abc', 1), 'abc'); ``` `repeatStringNumTimes("*", 8)` 应返回 `********`。 ```js -assert(repeatStringNumTimes('*', 8) === '********'); +assert.strictEqual(repeatStringNumTimes('*', 8), '********'); ``` `repeatStringNumTimes("abc", -2)` 应返回 `""`。 ```js -assert(repeatStringNumTimes('abc', -2) === ''); +assert.isEmpty(repeatStringNumTimes('abc', -2)); ``` 不应使用内置的 `repeat()` 方法。 ```js -assert(!/\.repeat/g.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.repeat/g); ``` `repeatStringNumTimes("abc", 0)` 应返回 `""`。 ```js -assert(repeatStringNumTimes('abc', 0) === ''); +assert.isEmpty(repeatStringNumTimes('abc', 0)); ``` # --seed-- @@ -69,7 +69,7 @@ function repeatStringNumTimes(str, num) { return str; } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` # --solutions-- @@ -77,8 +77,8 @@ repeatStringNumTimes("abc", 3); ```js function repeatStringNumTimes(str, num) { if (num < 1) return ''; - return num === 1 ? str : str + repeatStringNumTimes(str, num-1); + return num === 1 ? str : str + repeatStringNumTimes(str, num - 1); } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md index 414668fcf9..a2c9b2a891 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md @@ -17,13 +17,13 @@ Return an array consisting of the largest number from each provided sub-array. F `largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])` 应返回一个数组。 ```js -assert( +assert.isArray( largestOfFour([ [4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1] - ]).constructor === Array + ]) ); ``` @@ -78,7 +78,12 @@ function largestOfFour(arr) { return arr; } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` # --solutions-- @@ -88,5 +93,10 @@ function largestOfFour(arr) { return arr.map(subArr => Math.max.apply(null, subArr)); } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md index 6f20ae8a2f..596a34c6c5 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md @@ -17,25 +17,28 @@ Reverse the provided string and return the reversed string. `reverseString("hello")` 应返回一个字符串。 ```js -assert(typeof reverseString('hello') === 'string'); +assert.isString(reverseString('hello')); ``` `reverseString("hello")` 应返回 `olleh`。 ```js -assert(reverseString('hello') === 'olleh'); +assert.strictEqual(reverseString('hello'), 'olleh'); ``` `reverseString("Howdy")` 应返回 `ydwoH`。 ```js -assert(reverseString('Howdy') === 'ydwoH'); +assert.strictEqual(reverseString('Howdy'), 'ydwoH'); ``` `reverseString("Greetings from Earth")` 应返回 `htraE morf sgniteerG`。 ```js -assert(reverseString('Greetings from Earth') === 'htraE morf sgniteerG'); +assert.strictEqual( + reverseString('Greetings from Earth'), + 'htraE morf sgniteerG' +); ``` # --seed-- @@ -47,7 +50,7 @@ function reverseString(str) { return str; } -reverseString("hello"); +reverseString('hello'); ``` # --solutions-- @@ -57,5 +60,5 @@ function reverseString(str) { return str.split('').reverse().join(''); } -reverseString("hello"); +reverseString('hello'); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index 1bcb95e69a..a62cb0a461 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -69,7 +69,7 @@ assert.deepEqual(testArr2, ['a', 'b']); ```js let testArr1 = [1, 2]; -let testArr2 = ["a", "b"]; +let testArr2 = ['a', 'b']; ``` ## --seed-contents-- @@ -89,7 +89,7 @@ function frankenSplice(arr1, arr2, n) { // It's alive. It's alive! let result = arr2.slice(); for (let i = 0; i < arr1.length; i++) { - result.splice(n+i, 0, arr1[i]); + result.splice(n + i, 0, arr1[i]); } return result; } diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md index 97a8c7f2b8..44b04fe874 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md @@ -17,27 +17,27 @@ Return the provided string with the first letter of each word capitalized. Make `titleCase("I'm a little tea pot")` 应返回一个字符串。 ```js -assert(typeof titleCase("I'm a little tea pot") === 'string'); +assert.isString(titleCase("I'm a little tea pot")); ``` `titleCase("I'm a little tea pot")` 应返回 `I'm A Little Tea Pot`。 ```js -assert(titleCase("I'm a little tea pot") === "I'm A Little Tea Pot"); +assert.strictEqual(titleCase("I'm a little tea pot"), "I'm A Little Tea Pot"); ``` `titleCase("sHoRt AnD sToUt")` 应返回 `Short And Stout`。 ```js -assert(titleCase('sHoRt AnD sToUt') === 'Short And Stout'); +assert.strictEqual(titleCase('sHoRt AnD sToUt'), 'Short And Stout'); ``` `titleCase("HERE IS MY HANDLE HERE IS MY SPOUT")` 应返回 `Here Is My Handle Here Is My Spout`。 ```js -assert( - titleCase('HERE IS MY HANDLE HERE IS MY SPOUT') === - 'Here Is My Handle Here Is My Spout' +assert.strictEqual( + titleCase('HERE IS MY HANDLE HERE IS MY SPOUT'), + 'Here Is My Handle Here Is My Spout' ); ``` @@ -57,7 +57,10 @@ titleCase("I'm a little tea pot"); ```js function titleCase(str) { - return str.split(' ').map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()).join(' '); + return str + .split(' ') + .map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()) + .join(' '); } titleCase("I'm a little tea pot"); diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md index b354877393..bc86bd21dc 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md @@ -15,53 +15,55 @@ Truncate a string (first argument) if it is longer than the given maximum string `truncateString("A-tisket a-tasket A green and yellow basket", 8)` 应返回 `A-tisket...`。 ```js -assert( - truncateString('A-tisket a-tasket A green and yellow basket', 8) === - 'A-tisket...' +assert.strictEqual( + truncateString('A-tisket a-tasket A green and yellow basket', 8), + 'A-tisket...' ); ``` `truncateString("Peter Piper picked a peck of pickled peppers", 11)` 应返回 `Peter Piper...`。 ```js -assert( - truncateString('Peter Piper picked a peck of pickled peppers', 11) === - 'Peter Piper...' +assert.strictEqual( + truncateString('Peter Piper picked a peck of pickled peppers', 11), + 'Peter Piper...' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length)` 应返回 `A-tisket a-tasket A green and yellow basket`。 ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)` 应返回 `A-tisket a-tasket A green and yellow basket`。 ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2 - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-", 1)` 应返回字符串 `A...`。 ```js -assert(truncateString('A-', 1) === 'A...'); +assert.strictEqual(truncateString('A-', 1), 'A...'); ``` `truncateString("Absolutely Longer", 2)` 应返回 `Ab...`。 ```js -assert(truncateString('Absolutely Longer', 2) === 'Ab...'); +assert.strictEqual(truncateString('Absolutely Longer', 2), 'Ab...'); ``` # --seed-- @@ -73,7 +75,7 @@ function truncateString(str, num) { return str; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` # --solutions-- @@ -87,5 +89,5 @@ function truncateString(str, num) { return str.slice(0, num) + '...'; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` diff --git a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md index b4dd1405fa..e9752b9ff6 100644 --- a/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md +++ b/curriculum/challenges/chinese/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md @@ -16,100 +16,100 @@ Return the lowest index at which a value (second argument) should be inserted in # --hints-- -`getIndexToIns([10, 20, 30, 40, 50], 35)` 应返回 `3`。 - -```js -assert(getIndexToIns([10, 20, 30, 40, 50], 35) === 3); -``` - `getIndexToIns([10, 20, 30, 40, 50], 35)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 35) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 35)); ``` -`getIndexToIns([10, 20, 30, 40, 50], 30)` 应返回 `2`。 +`getIndexToIns([10, 20, 30, 40, 50], 35)` 应返回 `3`。 ```js -assert(getIndexToIns([10, 20, 30, 40, 50], 30) === 2); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 35), 3); ``` `getIndexToIns([10, 20, 30, 40, 50], 30)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 30) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 30)); ``` -`getIndexToIns([40, 60], 50)` 应返回 `1`。 +`getIndexToIns([10, 20, 30, 40, 50], 30)` 应返回 `2`。 ```js -assert(getIndexToIns([40, 60], 50) === 1); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 30), 2); ``` `getIndexToIns([40, 60], 50)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([40, 60], 50) === 'number'); +assert.isNumber(getIndexToIns([40, 60], 50)); ``` -`getIndexToIns([3, 10, 5], 3)` 应返回 `0`。 +`getIndexToIns([40, 60], 50)` 应返回 `1`。 ```js -assert(getIndexToIns([3, 10, 5], 3) === 0); +assert.strictEqual(getIndexToIns([40, 60], 50), 1); ``` `getIndexToIns([3, 10, 5], 3)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([3, 10, 5], 3) === 'number'); +assert.isNumber(getIndexToIns([3, 10, 5], 3)); ``` -`getIndexToIns([5, 3, 20, 3], 5)` 应返回 `2`。 +`getIndexToIns([3, 10, 5], 3)` 应返回 `0`。 ```js -assert(getIndexToIns([5, 3, 20, 3], 5) === 2); +assert.strictEqual(getIndexToIns([3, 10, 5], 3), 0); ``` `getIndexToIns([5, 3, 20, 3], 5)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([5, 3, 20, 3], 5) === 'number'); +assert.isNumber(getIndexToIns([5, 3, 20, 3], 5)); +``` + +`getIndexToIns([5, 3, 20, 3], 5)` 应返回 `2`。 + +```js +assert.strictEqual(getIndexToIns([5, 3, 20, 3], 5), 2); ``` `getIndexToIns([2, 20, 10], 19)` 应返回 `2`。 ```js -assert(getIndexToIns([2, 20, 10], 19) === 2); +assert.strictEqual(getIndexToIns([2, 20, 10], 19), 2); ``` `getIndexToIns([2, 20, 10], 19)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([2, 20, 10], 19) === 'number'); +assert.isNumber(getIndexToIns([2, 20, 10], 19)); ``` `getIndexToIns([2, 5, 10], 15)` 应返回 `3`。 ```js -assert(getIndexToIns([2, 5, 10], 15) === 3); +assert.strictEqual(getIndexToIns([2, 5, 10], 15), 3); ``` `getIndexToIns([2, 5, 10], 15)` 应返回一个数字。 ```js -assert(typeof getIndexToIns([2, 5, 10], 15) === 'number'); +assert.isNumber(getIndexToIns([2, 5, 10], 15)); ``` -`getIndexToIns([], 1)`应该返回 `0`。 +`getIndexToIns([], 1)` 应返回一个数字。 ```js -assert(getIndexToIns([], 1) === 0); +assert.isNumber(getIndexToIns([], 1)); ``` -`getIndexToIns([], 1)` 应返回一个数字。 +`getIndexToIns([], 1)`应该返回 `0`。 ```js -assert(typeof getIndexToIns([], 1) === 'number'); +assert.strictEqual(getIndexToIns([], 1), 0); ``` # --seed-- diff --git a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md index 8c748f3064..a349022036 100644 --- a/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md +++ b/curriculum/challenges/chinese/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md @@ -50,7 +50,8 @@ Your list comprehension should evaluate `'_' + char.lower()` for each `char` in ```js ({ test: () => assert(runPython(` - _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list").find_comp_expr().is_equivalent("'_' + char.lower()") + target_var = _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list") + target_var.find_comp_expr().is_equivalent("'_' + char.lower()") and len(target_var.find_comp_ifs()) == 0 `)) }) ``` diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md index f6e449f195..8918cd9e2a 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/613e275749ebd008e74bb62e.md @@ -23,7 +23,7 @@ img { # --hints-- -You should use the `#logo` selector to target the `img` element. +您应该使用 `#logo` 选择器来定位 `img` 元素。 ```js assert.exists(new __helpers.CSSHelp(document).getStyle('#logo')); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md index af7cc0d7de..77f35b9728 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6145f02240ff8f09f7ec913c.md @@ -11,25 +11,25 @@ Within the `div.question-block` elements, nest one `label` element, and add a `C # --hints-- -You should nest one `label` element within the first `div.question-block` element. +你应该在第一个 `div.question-block` 元素中嵌套一个 `label` 元素。 ```js assert.exists(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label')); ``` -You should nest one `label` element within the second `div.question-block` element. +你应该在第二个 `div.question-block` 元素中嵌套一个 `label` 元素。 ```js assert.exists(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')); ``` -You should give the first `label` element text content. +你应该给第一个 `label` 元素添加文本内容。 ```js assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[0]?.querySelector('label')?.textContent?.length, 1); ``` -You should give the second `label` element text content. +你应该给第二个 `label` 元素添加文本内容。 ```js assert.isAtLeast(document.querySelectorAll('.formrow > .question-block')?.[1]?.querySelector('label')?.textContent?.length, 1); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md index 03b8c22199..94bfd58664 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/6148e335c1edd512d00e4691.md @@ -7,7 +7,7 @@ dashedName: step-66 # --description-- -Clicking on the navigation links should jump the viewport to the relevant section. However, this jumping can be disorienting for some users. +单击导航链接应将视口跳转到相关部分。 然而,这种跳转可能会让一些用户感到迷惑。 选择所有元素,并将 `scroll-behavior` 设置为 `smooth`。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md index 4064d58b3c..3a3183ea3c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-accessibility-by-building-a-quiz/614ccc21ea91ef1736b9b578.md @@ -10,11 +10,11 @@ demoType: onLoad Welcome to the first part of the Accessibility Quiz. As you are becoming a seasoned HTML and CSS developer, we have started you off with the basic boilerplate. -Start this accessibility journey by providing a `lang` attribute to your `html` element. This will assist screen readers in identifying the language of the page. +通过为你的 `html` 元素添加一个 `lang` 属性来开始这段无障碍之旅。 这将帮助屏幕阅读器识别页面的语言。 # --hints-- -You should give the `html` element a `lang` attribute. _Hint: You can use the value `en` for English._ +你应该给 `html` 元素一个 `lang` 属性。 _提示:对于英文,你可以使用值 `en` 。_ ```js assert.match(code, //i); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md index 7ef668776b..29e9bfff3b 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3477cb303c5cb61b43aa9b.md @@ -1,6 +1,6 @@ --- id: 5f3477cb303c5cb61b43aa9b -title: Step 18 +title: 步骤 18 challengeType: 0 dashedName: step-18 --- @@ -11,21 +11,21 @@ The text is centered again so the link to the CSS file is working. Add another s # --hints-- -You should use a `body` selector. +你应该使用一个 `body` 选择器。 ```js const hasBody = new __helpers.CSSHelp(document).getStyle('body'); assert(hasBody); ``` -You should set the `background-color` property to `brown`. +你应该将 `background-color` 属性设置为 `brown`。 ```js const hasBackground = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'brown'); assert(hasBackground); ``` -Your `body` element should have a `brown` background. +你的 `body` 元素应该有一个 `brown` 背景。 ```js const bodyBackground = new __helpers.CSSHelp(document).getStyle('body')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index b54a3ebe12..57ce96e215 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ assert.lengthOf(document.querySelectorAll('body'), 1); assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md index 8f443ff8ae..94f7ba1d04 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f3ef6e01f288a026d709587.md @@ -1,6 +1,6 @@ --- id: 5f3ef6e01f288a026d709587 -title: Step 66 +title: 步骤 66 challengeType: 0 dashedName: step-66 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md index b293051512..1b769ab3a3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f459225127805351a6ad057.md @@ -1,6 +1,6 @@ --- id: 5f459225127805351a6ad057 -title: Step 68 +title: 步骤 68 challengeType: 0 dashedName: step-68 --- @@ -11,13 +11,13 @@ Change the background color of the `hr` element to `brown` so it matches the col # --hints-- -You should set the value of the `background-color` property to `brown`. +您应该将 `background-color` 属性的值设置为 `brown`。 ```js const hasBackgroundColor = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'brown'); ``` -Your `hr` element should have a `background-color` of `brown`. +你的 `hr` 元素应该具有 `background-color` 值为 `brown`。 ```js const hrBackgroundColor = new __helpers.CSSHelp(document).getStyle('hr')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md index 470dc942d1..b728b80e14 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b65579ce424bf5f02ca73.md @@ -1,6 +1,6 @@ --- id: 617b65579ce424bf5f02ca73 -title: Step 21 +title: 步骤 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md index 65e9559ebb..3afa97d505 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b8b38f32bf2080a140675.md @@ -13,19 +13,19 @@ A function is a piece of code that can take an input and perform a specific acti rgb(red, green, blue); ``` -Each red, green, and blue value is a number from `0` to `255`. `0` 表示该颜色的 0%,并且是黑色。 `255` 意味着该颜色的 100%。 +每个红色、绿色和蓝色值都是一个从 `0` 到 `255` 的数字。 `0` 表示该颜色的 0%,并且是黑色。 `255` 意味着该颜色的 100%。 在 `.one` 的CSS规则中,修改 `rgb` 函数中的 `red`的值。 对于 `rgb` 函数,将红色的值设置为 `255`,将绿色的值设置为 `0`,将蓝色的值设置为 `0`。 # --hints-- -Your `.one` CSS rule should not use the `red` color keyword to set the `background-color` property. +你的 `.one` CSS 规则不应该使用 `red` 关键字来设置 `background-color`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.one')?.backgroundColor !== 'red'); ``` -Your `.one` CSS rule should have a `background-color` property set to `rgb(255, 0, 0)`. +你的 `.one` CSS 规则应该有一个 `background-color` 属性,设置为 `rgb(255, 0, 0)`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.one')?.backgroundColor === 'rgb(255, 0, 0)'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md index 65b084f574..e5a69fb1dc 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/617b954d9f4f6217a749380e.md @@ -9,17 +9,17 @@ dashedName: step-25 Now add a little more vertical space between your markers and the edge of the `container` element they're in. -In the `.container` CSS rule, use the shorthand `padding` property to add `10px` of top and bottom padding, and set the left and right padding to `0`. This works similarly to the shorthand `margin` property you used earlier. +在 `.container` CSS 规则中,使用简写 `padding` 属性添加上下 padding 各为`10px`,并将左右 padding 设置为 `0`。 这类似于你之前使用的简写 `margin` 属性。 # --hints-- -You should not remove the `background-color` property and its value from the `.container` CSS rule. +你不应从 `.container` CSS 规则中删除 `background-color` 属性及其值。 ```js assert(new __helpers.CSSHelp(document).getStyle('.container')?.backgroundColor === 'rgb(0, 0, 0)'); ``` -Your `.container` CSS rule should have a `padding` property set to `10px 0`. +你的 `.container` CSS 规则应该将 `padding` 属性设置为 `10px 0`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.container')?.padding === '10px 0px'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md index 22ef684e21..0c84b6c4fe 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b7424f43ec9215e538afe.md @@ -11,28 +11,28 @@ Next, change the class `two` to `green` in the second marker `div`, and the clas # --hints-- -Your second marker `div` should not have the class `two`. +你的第二个笔 `div` 不应该有 `two` 类。 ```js const containerSecondChild = [...document.querySelector('.container')?.children][1]; assert(!containerSecondChild?.classList?.contains('two')); ``` -Your second marker `div` should have the classes `marker` and `green`. +你的第二个笔 `div` 应该有 `marker` 和 `green` 类。 ```js const containerSecondChild = [...document.querySelector('.container')?.children][1]; assert(containerSecondChild?.classList?.contains('marker') && containerSecondChild?.classList?.contains('green')); ``` -Your third marker `div` should not have the class `three`. +你的第三个笔 `div` 不应具有类 `three`。 ```js const containerThirdChild = [...document.querySelector('.container')?.children][2]; assert(!containerThirdChild?.classList?.contains('three')); ``` -Your third marker `div` should have the classes `marker` and `blue`. +你的第三个笔 `div` 应该具有 `marker` 类和 `blue` 类。 ```js const containerThirdChild = [...document.querySelector('.container')?.children][2]; diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md index fb337607c7..40a1b5711f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/619b761916dac02643940022.md @@ -1,6 +1,6 @@ --- id: 619b761916dac02643940022 -title: Step 46 +title: 步骤 46 challengeType: 0 dashedName: step-46 --- @@ -9,13 +9,13 @@ dashedName: step-46 A very common way to apply color to an element with CSS is with hexadecimal or hex values. While hex values sound complicated, they're really just another form of RGB values. -Hex color values start with a `#` character and take six characters from 0-9 and A-F. The first pair of characters represent red, the second pair represent green, and the third pair represent blue. For example, `#4B5320`. +十六进制颜色值以 `#` 字符开头,从 0-9 和 A-F 取六个字符。 第一对字符代表红色,第二对代表绿色,第三对代表蓝色。 例如,`#4B5320`。 -In the `.green` class selector, set the `background-color` property to a hex color code with the values `00` for red, `FF` for green, and `00` blue. +在 `.green` 类选择器中,将 `background-color` 属性设置为十六进制颜色代码,其值 `00` 表示红色,`FF` 表示绿色,`00` 表示蓝色。 # --hints-- -Your `.green` CSS rule should have a `background-color` property set to `#00FF00`. +你的 `.green` CSS 规则应该将 `background-color` 属性设置为 `#00FF00`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.green')?.backgroundColor === 'rgb(0, 255, 0)'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md index 9c38a22817..f65b810dff 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61a489b8579e87364b2d2cdb.md @@ -1,6 +1,6 @@ --- id: 61a489b8579e87364b2d2cdb -title: Step 49 +title: 步骤 49 challengeType: 0 dashedName: step-49 --- @@ -9,15 +9,15 @@ dashedName: step-49 You've learned a few ways to set flat colors in CSS, but you can also use a color transition, or gradient, on an element. -A gradient is when one color transitions into another. The CSS `linear-gradient` function lets you control the direction of the transition along a line, and which colors are used. +渐变是一种颜色过渡到另一种颜色。 CSS `linear-gradient` 函数可让你控制沿线的过渡方向以及使用的颜色。 -One thing to remember is that the `linear-gradient` function actually creates an `image` element, and is usually paired with the `background` property which can accept an image as a value. +要记住的一件事是 `linear-gradient` 函数实际上创建了一个 `image` 元素,并且通常与可以接受图像作为一个值的 `background` 属性配对。 -In the `.red` CSS rule, change the `background-color` property to `background`. +在 `.red` CSS 规则中,将 `background-color` 属性更改为 `background`。 # --hints-- -Your `.red` CSS rule should have a `background` property with the value `rgb(255, 0, 0)`. +你的 `.red` CSS 规则应该有一个 `background` 属性,其值为 `rgb(255, 0, 0)`。 ```js assert.match(__helpers.removeWhiteSpace(code), /\.red\{.*?background:rgb\(255,0,0\)/); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md index f0f7323fed..f9cfa1aae7 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61add929e41980b1edbdba7e.md @@ -7,7 +7,7 @@ dashedName: step-81 # --description-- -Your border should be visible now. If no color is set, black is used by default. +你的边框现在应该可见。 如果未设置颜色,则默认使用黑色。 但是为了使你的代码更具可读性,最好明确设置边框颜色。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md index b65f3d6232..f43793231e 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b092eb9e7fc020b43b1bb2.md @@ -13,7 +13,7 @@ To make the marker look more realistic, give the sleeve a transparent white colo # --hints-- -Your `.sleeve` CSS rule should have a `background-color` property set to `white`. +你的 `.sleeve` CSS 规则应该将 `background-color` 属性设置为 `white`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.sleeve')?.backgroundColor === 'white'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md index d6fa3bc72d..44b6bde278 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b09f739aa6572d2064f9b8.md @@ -9,11 +9,11 @@ dashedName: step-84 The black color of your border looks pretty harsh against the more transparent sleeve. 你可以使用 Alpha 通道来降低黑色边框的不透明度。 -For the `border-left` shorthand property, use the `rgba` function to set the color value to pure black with 75% opacity. +对于 `border-left` 简写属性,使用 `rgba` 函数将颜色值设置为纯黑色,不透明度为 75%。 # --hints-- -Your `.sleeve` CSS rule should have a `border-left` shorthand property and with the value `10px double rgba(0, 0, 0, 0.75)`. +你的 `.sleeve` CSS 规则应该有一个 `border-left` 简写属性,其值为 `10px double rgba(0, 0, 0, 0.75)`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.sleeve')?.borderLeft === '10px double rgba(0, 0, 0, 0.75)'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md index fe07edc653..614abb0384 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-colors-by-building-a-set-of-colored-markers/61b0a1b2af494934b7ec1a72.md @@ -20,7 +20,7 @@ const greenMarkerChildren = [...document.querySelector('.green')?.children]; assert(greenMarkerChildren.every(child => child?.localName === 'div') && greenMarkerChildren.length === 2); ``` -Your green marker's cap `div` element should be before the sleeve `div` element. +你的绿色笔的笔盖 `div` 元素应该在笔筒 `div` 元素之前。 ```js const greenMarkerChildren = [...document.querySelector('.green')?.children]; @@ -29,14 +29,14 @@ const greenMarkerSleeve = document.querySelector('.green .sleeve'); assert(greenMarkerChildren.indexOf(greenMarkerCap) < greenMarkerChildren.indexOf(greenMarkerSleeve)); ``` -Your blue marker `div` should contain two `div` elements. +你的蓝色笔 `div` 应该包含两个 `div` 元素。 ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; assert(blueMarkerChildren.every(child => child?.localName === 'div') && blueMarkerChildren.length === 2); ``` -Your blue marker's cap `div` element should be before the sleeve `div` element. +你的蓝色笔的笔盖 `div` 元素应该在笔筒 `div` 元素之前。 ```js const blueMarkerChildren = [...document.querySelector('.blue')?.children]; diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md index 98914edee9..873f50795a 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-flexbox-by-building-a-photo-gallery/615380dff67172357fcf0425.md @@ -7,7 +7,7 @@ dashedName: step-11 # --description-- -Now your images are too big. +现在你的图片太大了。 创建一个 `.gallery img` 选择器来选取你的图片。 将它们的 `width` 都设置为 `100%`, `max-width` 都设置为 `350px`。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md index 7df03a5ac3..8936128fd3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6143b9e1f5035c6e5f2a8231.md @@ -9,103 +9,103 @@ dashedName: step-20 Within your `ul` element, create six `li` elements. Add an `h4` element with a `class` set to `list-subtitle` and a `p` element to each of your `li` elements. -Then give the `h4` and `p` elements the following text content, in order, with each `h4` using what's on the left side of the colon, and each `p` using what's on the right: +然后按顺序为 `h4` 和 `p` 元素添加以下文本内容,每个 `h4` 使用冒号左侧的内容,而每个 `p` 元素使用右边的内容: - `V1 - 2014`: `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` -- `V2 - 2015`: `We added interactive algorithm challenges.` -- `V3 - 2015`: `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` -- `V4 - 2016`: `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` -- `V5 - 2017`: `We added the back end and data visualization challenges.` -- `V6 - 2018`: `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` +- `V2 - 2015`:`We added interactive algorithm challenges.` +- `V3 - 2015`:`We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` +- `V4 - 2016`:`We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` +- `V5 - 2017`:`We added the back end and data visualization challenges.` +- `V6 - 2018`:`We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` # --hints-- -Your `ul` element should have six `li` elements. +你的 `ul` 元素应该有六个 `li` 元素。 ```js assert(document.querySelectorAll('.lists li')?.length === 6); ``` -Each of your new `li` elements should have an `h4` and `p` element. +每个新的 `li` 元素都应该有一个 `h4` 和 `p` 元素。 ```js const lis = [...document.querySelectorAll('.lists li')]; assert(lis?.every(li => li?.children?.[0]?.localName === 'h4' && li?.children?.[1]?.localName === 'p')); ``` -Your first `h4` should have the text `V1 - 2014`. +你的第一个 `h4` 元素应该有文本 `V1 - 2014`。 ```js assert(document.querySelectorAll('.lists li h4')?.[0]?.innerText === 'V1 - 2014'); ``` -Your first `p` should have the text `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` +你的第一个 `p` 元素应该有文本 `We launched freeCodeCamp with a simple list of 15 resources, including Harvard's CS50 and Stanford's Database Class.` ```js assert(document.querySelectorAll('.lists li p')?.[0]?.innerText === 'We launched freeCodeCamp with a simple list of 15 resources, including Harvard\'s CS50 and Stanford\'s Database Class.'); ``` -Your second `h4` should have the text `V2 - 2015`. +你的第二个 `h4` 元素应该有文本 `V2 - 2015`。 ```js assert(document.querySelectorAll('.lists li h4')?.[1]?.innerText === 'V2 - 2015'); ``` -Your second `p` should have the text `We added interactive algorithm challenges.` +你的第二个 `p` 元素应该有文本 `We added interactive algorithm challenges.` ```js assert(document.querySelectorAll('.lists li p')?.[1]?.innerText === 'We added interactive algorithm challenges.'); ``` -Your third `h4` should have the text `V3 - 2015`. +你的第三个 `h4` 元素应该有文本 `V3 - 2015`。 ```js assert(document.querySelectorAll('.lists li h4')?.[2]?.innerText === 'V3 - 2015'); ``` -Your third `p` should have the text `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` +你的第三个 `p` 元素应该有文本 `We added our own HTML+CSS challenges (before we'd been relying on General Assembly's Dash course for these).` ```js assert(document.querySelectorAll('.lists li p')?.[2]?.innerText === 'We added our own HTML+CSS challenges (before we\'d been relying on General Assembly\'s Dash course for these).'); ``` -Your fourth `h4` should have the text `V4 - 2016`. +你的第四个 `h4` 元素应该有文本 `V4 - 2016`。 ```js assert(document.querySelectorAll('.lists li h4')?.[3]?.innerText === 'V4 - 2016'); ``` -Your fourth `p` should have the text `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` +你的第四个 `p` 元素应该有文本 `We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.` ```js assert(document.querySelectorAll('.lists li p')?.[3]?.innerText === 'We expanded the curriculum to 3 certifications, including Front End, Back End, and Data Visualization. They each had 10 required projects, but only the Front End section had its own challenges. For the other certs, we were still using external resources like Node School.'); ``` -Your fifth `h4` should have the text `V5 - 2017`. +你的第五个 `h4` 元素应该有文本 `V5 - 2017`。 ```js assert(document.querySelectorAll('.lists li h4')?.[4]?.innerText === 'V5 - 2017'); ``` -Your fifth `p` should have the text `We added the back end and data visualization challenges.` +你的第五个 `p` 元素应该有文本 `We added the back end and data visualization challenges.` ```js assert(document.querySelectorAll('.lists li p')?.[4]?.innerText === 'We added the back end and data visualization challenges.'); ``` -Your sixth `h4` should have the text `V6 - 2018`. +你的第六个 `h4` 元素应该有文本 `V6 - 2018`。 ```js assert(document.querySelectorAll('.lists li h4')?.[5]?.innerText === 'V6 - 2018'); ``` -Your sixth `p` should have the text `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` +你的第六个 `p` 元素应该有文本 `We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.` ```js assert(document.querySelectorAll('.lists li p')?.[5]?.innerText === 'We launched 6 new certifications to replace our old ones. This was the biggest curriculum improvement to date.'); ``` -Your six `h4` elements should each have the class `list-subtitle`. +你的六个 `h4` 元素都应具有 `list-subtitle` 类。 ```js const h4s = [...document.querySelectorAll('.lists li h4')]; diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md index e2a1baaf2f..c5b900b474 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148c5036ddad94692a66230.md @@ -1,6 +1,6 @@ --- id: 6148c5036ddad94692a66230 -title: Step 53 +title: 步骤 53 challengeType: 0 dashedName: step-53 --- @@ -9,11 +9,11 @@ dashedName: step-53 Now the auto-placement algorithm will kick in when you add a new icon element. However, the algorithm defaults the new column width to be `auto`, which will not match your current columns. -You can override this with the `grid-auto-columns` property. Give the `.social-icons` selector a `grid-auto-columns` property set to `1fr`. +你可以使用 `grid-auto-columns` 属性覆盖它。 给 `.social-icons` 选择器一个 `grid-auto-columns` 属性,设置为 `1fr`。 # --hints-- -Your `.social-icons` selector should have a `grid-auto-columns` property set to `1fr`. +你的 `.social-icons` 选择器应该有一个 `grid-auto-columns` 属性,设置为 `1fr`。 ```js assert(new __helpers.CSSHelp(document).getStyle('.social-icons')?.gridAutoColumns === '1fr'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md index cb33f5b9ff..85190ba7fb 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-grid-by-building-a-magazine/6148d2444d01ab541e64a1e4.md @@ -7,7 +7,7 @@ dashedName: step-62 # --description-- -Create a `.quote` selector. Give it a `color` property set to `#00beef`, a `font-size` property set to `2.4rem`, and a `text-align` property set to `center`. +创建一个 `.quote` 选择器。 Give it a `color` property set to `#00beef`, a `font-size` property set to `2.4rem`, and a `text-align` property set to `center`. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md index 987ffb9e9f..fc6e265cf6 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6196928658b6010f28c39484.md @@ -11,7 +11,7 @@ Give the `.ground` element a `background` with a linear gradient angled 90 degre # --hints-- -You should give `.ground` a `background` of `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`. +`.ground` 的 `background` 应该为 `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`。 ```js assert.include(['linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))', 'rgba(0,0,0,0)linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('background', true)); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md index e58f227f96..4e9cc4945f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/6199429802b7c10dc79ff871.md @@ -29,7 +29,7 @@ assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.top, '10 assert.isNotEmpty(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left); ``` -You should give `.penguin-head` a `left` property of `--fcc-expected--`, but found `--fcc-actual--`. +应该设置 `.penguin-head` 的 `left` 值为 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-head')?.left, '25%'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md index fd1d5799a7..ed91dccdac 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619be73b3c806006ccc00bb0.md @@ -11,7 +11,7 @@ Give the pseudo-element a `width` half that of its parent, a `height` of `45%`, # --hints-- -You should give `.penguin-body::before` a `width` of `50%`. +你应该将 `.penguin-body::before` 的 `width` 设置为 `50%`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.penguin-body::before')?.width, '50%'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md index 8d838ac7f5..574e74bec1 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d05c54dabca0b10058235.md @@ -1,6 +1,6 @@ --- id: 619d05c54dabca0b10058235 -title: Step 54 +title: 步骤 54 challengeType: 0 dashedName: step-54 --- @@ -9,23 +9,23 @@ dashedName: step-54 到目前为止,`.face` 和 `.chin` 具有相同的 `background-color`。 -Create a custom CSS property called `--penguin-face`, and set it to `white`. +创建一个名为 `--penguin-face` 的自定义 CSS 属性,并将其设置为 `white`。 # --hints-- -You should use the `:root` selector. +应该使用 `:root` 选择器。 ```js assert.match(code, /:root\s*\{/); ``` -You should give `:root` a `--penguin-face` property. +应该给 `:root` 添加一个 `--penguin-face` 属性。 ```js assert.notEmpty(new __helpers.CSSHelp(document).getStyle(':root')?.getPropertyValue('--penguin-face')); ``` -You should give `:root` a `--penguin-face` of `--fcc-expected--`, but found `--fcc-actual--`. +`:root` 的 `--penguin-face` 应该为 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle(':root')?.getPropVal('--penguin-face', true), 'white'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md index 906076ce8b..dbdc77ddb6 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d237a107c10221ed743fa.md @@ -1,6 +1,6 @@ --- id: 619d237a107c10221ed743fa -title: Step 86 +title: 步骤 86 challengeType: 0 dashedName: step-86 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md index d25e1c59e7..7eceb708d3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-transforms-by-building-a-penguin/619d2b7a84e78b246f2d17a2.md @@ -11,37 +11,37 @@ Target the `.arm` element with a `class` of `left`, and position it `35%` from t # --hints-- -You should use the `.arm.left` selector. +你应该使用 `.arm.left` 选择器。 ```js assert.match(code, /\.arm\.left\s*\{/); ``` -You should give `.arm.left` a `top` of `--fcc-expected--`, but found `--fcc-actual--`. +你应该将 `.arm.left` 的 `top` 设置为 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.top, '35%'); ``` -You should give `.arm.left` a `left` of `--fcc-expected--`, but found `--fcc-actual--`. +你应该将 `.arm.left` 的 `left` 设置为 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.left')?.left, '5%'); ``` -You should use the `.arm.right` selector. +你应该使用 `.arm.right` 选择器。 ```js assert.match(code, /\.arm\.right\s*\{/); ``` -You should give `.arm.right` a `top` of `0%`. +你应该将 `.arm.right` 的 `top` 设置为 `0%`。 ```js assert.include(['0%', '0', '0px'], new __helpers.CSSHelp(document).getStyle('.arm.right')?.top); ``` -You should give `.arm.right` a `right` of `--fcc-expected--`, but found `--fcc-actual--`. +你应该将 `.arm.right` 的 `right` 设置为 `--fcc-expected--`,而不是 `--fcc-actual--`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.arm.right')?.right, '-5%'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md index 0ba989ef83..179162e220 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e98e9.md @@ -49,7 +49,7 @@ function eitherOr() { assert.equal(eitherOr()?.top, '0px'); ``` -You should use a comma to use both `.foreground-buildings` and `.background-buildings` selectors in the same style declaration. +你应该使用逗号在同一样式声明中同时使用 `.foreground-buildings` 和 `.background-buildings` 选择器。 ```js function eitherOr() { diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md index 9adc681dbc..98d2c03688 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9902.md @@ -7,7 +7,7 @@ dashedName: step-58 # --description-- -Finally, on the `border-bottom` property of `.bb2a`, change the `1vw` to `5vh` and change the `#000` color to your `--building-color2` variable. There you go, now it looks good! At any time throughout this project, you can comment out or remove the `border` property you added to everything at the beginning to see what the buildings will look like when that gets removed at the end. +Finally, on the `border-bottom` property of `.bb2a`, change the `1vw` to `5vh` and change the `#000` color to your `--building-color2` variable. 好了,现在看起来不错! At any time throughout this project, you can comment out or remove the `border` property you added to everything at the beginning to see what the buildings will look like when that gets removed at the end. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md index e481514a77..19dd222310 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9903.md @@ -11,13 +11,13 @@ dashedName: step-59 # --hints-- -You should define a new property variable `--window-color3`. +你应该定义一个新的属性变量 `--window-color3`。 ```js assert(new __helpers.CSSHelp(document).isPropertyUsed("--window-color3")); ``` -You should give `--window-color3` a value of `#d98cb3`. +你应该给 `--window-color3` 一个值为 `#d98cb3`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle(":root")?.getPropertyValue("--window-color3")?.trim(), "#d98cb3"); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md index 03bb777a5b..c08c1a71fd 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e990c.md @@ -7,7 +7,7 @@ dashedName: step-68 # --description-- -Create a new variable called `--window-color4` in `:root` and give it a value of `#8cb3d9`. This will be the secondary color for the last background building. +Create a new variable called `--window-color4` in `:root` and give it a value of `#8cb3d9`. 这将是最后一个背景建筑的间色。 # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md index 644ec42758..ba89ca3f6c 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e992b.md @@ -7,7 +7,7 @@ dashedName: step-98 # --description-- -Add your `--building-color1` variable as value of the `background-color` property of `.fb4b`. Then, remove the `background-color` from `.fb4`. +Add your `--building-color1` variable as value of the `background-color` property of `.fb4b`. 然后,从 `.fb4` 中删除 `background-color`。 # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md index baaf2a4950..2c96b730d2 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9938.md @@ -7,7 +7,7 @@ dashedName: step-112 # --description-- -Give the `sky` class a `radial-gradient`. Use `#ffcf33` from `0%` to `20%`, `#ffff66` at `21%`, and `#bbeeff` at `100%`. This will add circular gradient to the background that will be your sun. +给 `sky` 类一个 `radial-gradient`。 Use `#ffcf33` from `0%` to `20%`, `#ffff66` at `21%`, and `#bbeeff` at `100%`. 这将为背景添加圆形渐变,也就是你的太阳。 # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md index 70895e0f55..ae0a69106e 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-css-variables-by-building-a-city-skyline/5d822fd413a79914d39e9939.md @@ -11,7 +11,7 @@ At the top of the sky gradient color list, where you would put a direction for t # --hints-- -You should give the `.sky` `radial-gradient` a direction of `circle closest-corner at 15% 15%`. +你应该将 `.sky` 的 `radial-gradient` 方向设为 `circle closest-corner at 15% 15%`。 ```js assert.match(new __helpers.CSSHelp(document).getStyle(".sky")?.background, /radial-gradient\(circle closest-corner at 15% 15%, rgb\(255, 207, 51\)|( 0%), rgb\(255, 207, 51\) 20%, rgb\(255, 255, 102\) 21%, rgb\(187, 238, 255\) 100%\)/); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md index 79b432fd1d..d240fd4bb2 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f027c87bc98f050395c139.md @@ -11,25 +11,25 @@ Next, add opening and closing `head` and `body` tags within the `html` element. # --hints-- -You should have an opening `head` tag. +应该有一个 `head` 开始标签。 ```js assert(code.match(//i)); ``` -You should have a closing `head` tag. +应该有一个 `head` 结束标签。 ```js assert(code.match(/<\/head\s*>/i)); ``` -You should have an opening `body` tag. +应该有一个 `body` 开始标签。 ```js assert(code.match(//i)); ``` -You should have a closing `body` tag. +应该有一个 `body` 结束标签。 ```js assert(code.match(/<\/body\s*>/i)); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md index 5434cfda5d..9bb9e3fb01 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60f81616cff80508badf9ad5.md @@ -7,7 +7,7 @@ dashedName: step-21 # --description-- -At this point, you should be able to submit the form. However, you might notice not much happens. +到这里,应该可以提交表单了。 实际上,会发现提交之后没有任何效果。 为了使表单更具交互性,在第一个 `fieldset` 字段中的 `input` 元素添加 `required` 属性。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md index f75d6dea90..c8b4dd95a3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fab9f17fa294054b74228c.md @@ -7,7 +7,7 @@ dashedName: step-32 # --description-- -Moving on to the final `fieldset`. What if you wanted to allow a user to upload a profile picture? +现在到了最后一个 `fieldset`。 如果你想允许用户上传个人资料图片,应该怎么做呢? 类型为 `file` 的 `input` 可以实现。 添加一个 `label`,其文本为 `Upload a profile picture:`,嵌套一个 `input` 以接收上传的文件。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md index 0a4bca8a3a..706111811f 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60fc22d1e64d1b04cdd4e602.md @@ -1,6 +1,6 @@ --- id: 60fc22d1e64d1b04cdd4e602 -title: Step 52 +title: 步骤 52 challengeType: 0 dashedName: step-52 --- @@ -11,25 +11,25 @@ Add some space between the `.inline` elements and the `label` text, by giving a # --hints-- -You should give the `.inline` elements a `margin-top` of `0`. +应该设置 `.inline` 元素的 `margin-top` 为`0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginTop, '0px'); ``` -You should give the `.inline` elements a `margin-right` of `0.5em`. +应该设置 `.inline` 元素的 `margin-right` 为`0.5em`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginRight, '0.5em'); ``` -You should give the `.inline` elements a `margin-bottom` of `0`. +应该设置 `.inline` 元素的 `margin-bottom` 为`0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginBottom, '0px'); ``` -You should give the `.inline` elements a `margin-left` of `0`. +应该设置 `.inline` 元素的 `margin-left` 为 `0`。 ```js assert.equal(new __helpers.CSSHelp(document).getStyle('.inline')?.marginLeft, '0px'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md index 20b7f2902c..6fd917ba71 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe1bc30415f042faea936.md @@ -1,6 +1,6 @@ --- id: 60ffe1bc30415f042faea936 -title: Step 54 +title: 步骤 54 challengeType: 0 dashedName: step-54 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md index e89e5084d8..905891d9a1 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-html-forms-by-building-a-registration-form/60ffe3936796ac04959285a9.md @@ -7,7 +7,7 @@ dashedName: step-55 # --description-- -Currently, if you type in the `input` or `textarea` elements, you will not be able to see the text. Also, their height is too small to be easy to use. +现在,如果在 `input` 或者 `textarea` 元素内输入,会发现无法看见文字。 另外,它们的高度也太小了,难以使用。 设置 `color` 为 `#ffffff`,设置它们的 `min-height` 为 `2em`,来修复它们。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md index f7b58d64cf..f5460c8263 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646c586be7180e40ddf74ff6.md @@ -1,6 +1,6 @@ --- id: 646c586be7180e40ddf74ff6 -title: Step 5 +title: 步骤 5 challengeType: 0 dashedName: step-5 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md index 37104b3c80..4c703488f4 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-intermediate-css-by-building-a-cat-painting/646ce9d790d2a44de5f99e04.md @@ -1,6 +1,6 @@ --- id: 646ce9d790d2a44de5f99e04 -title: Step 21 +title: 步骤 21 challengeType: 0 dashedName: step-21 --- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md index ae59503cca..54876d2cb6 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd6343fb42013d99bcd7f3.md @@ -1,6 +1,6 @@ --- id: 61fd6343fb42013d99bcd7f3 -title: Step 2 +title: 步骤 2 challengeType: 0 dashedName: step-2 --- @@ -11,13 +11,13 @@ Within your `body` element, nest a `section` element within a `main` element. # --hints-- -The first element inside the `body` element should be your `main` element. +`body` 元素内的第一个元素应该是 `main` 元素。 ```js assert(document.querySelector('body')?.children?.[0]?.localName === 'main'); ``` -You should have a `section` element within your `main` element. +`main` 元素中应该有一个 `section` 元素。 ```js assert(document.querySelector('main')?.children?.[0]?.localName === 'section'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md index ed88c16a4b..da4291d385 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet/61fd9b7285bde783ad5b8aac.md @@ -9,7 +9,7 @@ dashedName: step-27 Within the `tbody`, add a `tr` with the `class` set to `total`. In that, add a `th` with the text `Total Net Worth`, and wrap `Net Worth` in a `span` with the `class` set to `sr-only`. -Then add three `td` elements, giving the third a `class` set to `current`, and giving each the following text: `$-171`, `$136`, `$334`. +然后添加三个 `td` 元素,将第三个 `class` 设置为 `current`,并为每个元素提供以下文本:`$-171`、`$136`、`$334`。 # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md index 2e8a95e306..27399e7b91 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612eaf56b7ba3257fdbfb0db.md @@ -7,7 +7,7 @@ dashedName: step-21 # --description-- -The piano needs the freeCodeCamp logo to make it official. +该钢琴需要 freeCodeCamp 标志才能正式亮相。 在 `.keys` 元素之前添加一个 `img` 元素。 给 `img` 一个 `logo` 的 `class`,并将 `src` 设置为 `https://cdn.freecodecamp.org/platform/universal/fcc_primary.svg`。 给它一个 `freeCodeCamp Logo` 的 `alt` 文本。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md index 05b82095e8..cfe1c15f95 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-responsive-web-design-by-building-a-piano/612ebedec97e096c8bf64999.md @@ -12,7 +12,7 @@ Within the `@media` query, add a `.keys` selector and set the `width` to `318px` # --hints-- -Your `@media` rule should have a `.keys` selector. +`@media` 规则应该有一个 `.keys` 选择器。 ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); @@ -20,7 +20,7 @@ const keys = rules?.find(rule => rule.selectorText === '.keys'); assert(keys); ``` -Your new `.keys` selector should have a `width` of `318px`. +新的 `.keys` 选择器的 `width` 应为 `318px`。 ```js const rules = new __helpers.CSSHelp(document).getRuleListsWithinMedia('(max-width: 768px)'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md index 68beb752d0..b55eabf891 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-the-css-box-model-by-building-a-rothko-painting/60a3e3396c7b40068ad69973.md @@ -11,14 +11,14 @@ dashedName: step-10 # --hints-- -You should set the `background-color` property to `#4d0f00`. +应该将 `background-color` 属性设置为 `#4d0f00`。 ```js const hasBackground = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style['background-color'] === 'rgb(77, 15, 0)'); assert(hasBackground); ``` -Your `.canvas` element should have a `background-color` of `#4d0f00`. +`.canvas` 元素应该有一个 `#4d0f00` 的 `background-color`。 ```js const canvasBackground = new __helpers.CSSHelp(document).getStyle('.canvas')?.getPropertyValue('background-color'); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md index 9ccc54c1b2..bb0a925445 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f2abbe7d18d49a1e0e1c8.md @@ -8,7 +8,7 @@ demoType: onLoad # --description-- -We've provided a basic HTML boilerplate for you. +我们已经为你提供了一个基本的 HTML 模板。 在你的 `body` 元素中创建一个 `h1` 元素,并为其指定文本 `Nutrition Facts`。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md index 60d408f42b..feed4f2974 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f378014c2da526a109c81.md @@ -7,7 +7,7 @@ dashedName: step-6 # --description-- -The font is a bit small. Create an `html` selector and set the font to have a size of `16px`. +字体有点小。 Create an `html` selector and set the font to have a size of `16px`. # --hints-- diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md index 6def46f33a..c320c19da3 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f4ce9d877b668417c0c42.md @@ -11,7 +11,7 @@ Wrap everything within the `.label` element in a new `header` element. # --hints-- -You should create a new `header` element. +应该创建一个新的 `header` 元素。 ```js assert(document.querySelector('header')); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md index b74a0874bf..f4a92f6808 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f51257a8a516d80b6c743.md @@ -11,19 +11,19 @@ Create a new `div` below your `.large` element and give it a `class` attribute s # --hints-- -You should create another `div` element. +应该创建另一个 `div` 元素。 ```js assert(document.querySelectorAll('div')?.length === 4); ``` -Your new `div` should have a `class` attribute set to `calories-info`. +新的 `div` 应该有一个 `class` 属性设置为 `calories-info`。 ```js assert(document.querySelector('.label')?.lastElementChild?.classList?.contains('calories-info')); ``` -Your new `div` should come after the `.large` element. +你的新 `div` 应该在 `.large` 元素之后。 ```js assert(document.querySelector('.label')?.lastElementChild?.previousElementSibling?.classList?.contains('large')); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md index 752fcf3389..5c719e7d77 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f5fd85d0062761f288364.md @@ -7,7 +7,7 @@ dashedName: step-37 # --description-- -Typography is often more art than science. You may have to tweak things like alignment until it looks correct. +排版往往是艺术而非科学。 You may have to tweak things like alignment until it looks correct. 给你的 `.calories-info span` 选择器一个 `margin` 设置为 `-7px -2px`。 这会将 `230` 文本移动到位。 diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md index 6504be1b04..7b87f27a59 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f7c71eab8218f846e4503.md @@ -1,6 +1,6 @@ --- id: 615f7c71eab8218f846e4503 -title: Step 52 +title: 步骤 52 challengeType: 0 dashedName: step-52 --- @@ -11,19 +11,19 @@ After your last `.divider`, create another `p` element with the text `Trans Fat # --hints-- -You should create a new `p` element at the end of your `.daily-value` element. +你应该在 `.daily-value` 元素的末尾创建一个新的 `p` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.localName === 'p'); ``` -Your new `p` element should have the text `Trans Fat 0g`. +新 `p` 元素应该包含文本 `Trans Fat 0g`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.innerText === 'Trans Fat 0g'); ``` -Your new `p` element should have the `class` attribute set to `indent no-divider`. +新的 `p` 元素应该将 `class` 属性设置为 `indent no-divider`。 ```js const p = document.querySelector('.daily-value.small-text')?.lastElementChild; @@ -31,25 +31,25 @@ assert(p?.classList?.contains('indent')); assert(p?.classList?.contains('no-divider')); ``` -Your new `p` element should have an `i` element. +新的 `p` 元素应该有一个 `i` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('i')); ``` -Your `i` element should wrap the text `Trans`. +`i` 元素应该包含文本 `Trans`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('i')?.innerText === 'Trans'); ``` -Your new `p` element should have a `span` element. +你的新 `p` 元素应该有一个 `span` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('span')); ``` -Your `span` element should wrap the text `Trans Fat 0g`. +你的 `span` 元素应该包含文本 `Trans Fat 0g`。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.querySelector('span')?.innerText?.match(/Trans[\s|\n]+Fat 0g/)); diff --git a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md index 113ae7dc18..9a90fac480 100644 --- a/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md +++ b/curriculum/challenges/chinese/14-responsive-web-design-22/learn-typography-by-building-a-nutrition-label/615f887466db4ba14b5342cc.md @@ -13,7 +13,7 @@ After your last divider, create another `p` element with the text `Protein 3g`. # --hints-- -You should create a new `p` and `div` element at the end of your `.daily-value` element. +你应该在 `.daily-value` 元素的末尾创建一个新的 `p` 和 `div` 元素。 ```js assert(document.querySelector('.daily-value.small-text')?.lastElementChild?.previousElementSibling?.localName === 'p'); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md index d7986d33b1..8e15f5e51d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md @@ -111,7 +111,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' @@ -148,7 +148,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md index 42e710efcb..71c8e2630f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md @@ -70,7 +70,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` 当 `#text-input` 元素只包含字母 `A`,并且 `#check-btn` 元素被点击时,`#result` 元素应该包含文本 `"A is a palindrome"`。 diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index a2d9cee401..c61278065f 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -153,7 +153,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); @@ -375,7 +375,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 2000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md index cc29f6e4b5..c44c7dc2ec 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md @@ -103,7 +103,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store userInput.value = ''; checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); ``` 当你点击 `#clear-btn` 元素时,`#results-div` 元素中的内容应被删除。 diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md index f9abd8f70b..7e9e674710 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md @@ -9,7 +9,7 @@ dashedName: step-103 在你的条件中,添加一个 `forEach` 循环来遍历 `checkpoints` 数组。 使用 `checkpoint` 作为回调函数的参数名。 -在循环内部,使用减法赋值运算符从检查点的 `x` 位置减去 5。 +Inside the `forEach` callback, use the subtraction assignment operator to subtract 5 from the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ assert.match(splitter[1], /checkpoints\.forEach\(/); ```js const splitter = code.split("if (keys.rightKey.pressed && isCheckpointCollisionDetectionActive)") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` 你应该使用减法赋值运算符从 `checkpoint` 的 `x` 位置减去 5。 diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md index 99b7f09b10..ab07782d17 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md @@ -9,7 +9,7 @@ dashedName: step-104 在 `else if` 语句中,添加 `forEach` 循环来遍历 `checkpoints` 数组。 使用 `checkpoint` 作为回调函数的参数名。 -在循环内部,使用加法赋值运算符将 5 添加到检查点的 `x` 位置。 +Inside the `forEach` callback, use the addition assignment operator to add 5 to the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ assert.match(splitter[1], /checkpoints\.forEach\s*\(/s); ```js const splitter = code.split("else if (keys.leftKey.pressed && isCheckpointCollisionDetectionActive) {") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` 你应该使用加法赋值运算符给 `checkpoint` 的 `x` 位置添加 5。 diff --git a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index d1b294dba9..5cb385869d 100644 --- a/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/chinese/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md b/curriculum/challenges/chinese/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md index 4dbba97642..2237962aa5 100644 --- a/curriculum/challenges/chinese/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md +++ b/curriculum/challenges/chinese/16-the-odin-project/top-basic-function-projects/top-basic-functions-exercise-b.md @@ -1,29 +1,29 @@ --- id: 661e131f068359c3ccf2f4d6 -title: Basic Functions Exercise B +title: 基本函数练习 B challengeType: 1 dashedName: top-basic-functions-exercise-b --- # --description-- -Write a function, named `multiply`, that takes two parameters and returns their product. +编写一个名为 `multiply` 的函数,该函数采用两个参数并返回它们的乘积。 # --hints-- -You should have a function named `multiply`. +你应该有一个名为 `multiply` 的函数。 ```js assert.isFunction(multiply); ``` -Your function should take in two integers as arguments. +你的函数应该接受两个整数作为参数。 ```js assert.match(multiply.toString(), /\s*multiply\(\s*\w+\s*,\s*\w+\s*\)/); ``` -You should return the product of the two integers. +你应该返回两个整数的乘积。 ```js assert.strictEqual(multiply(10, 10), 100); diff --git a/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md b/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md index d2df5dc405..34c586a251 100644 --- a/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md +++ b/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md @@ -32,7 +32,7 @@ This answer doesn't have anything to do with the dialogue. Focus on answers that ## --video-solution-- -2 +1 # --explanation-- diff --git a/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md b/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md index f2f4e253a6..26b9c70e81 100644 --- a/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md +++ b/curriculum/challenges/chinese/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md @@ -48,7 +48,7 @@ If it were working correctly, Tom wouldn't say that it isn't showing. ## --video-solution-- -2 +3 # --explanation-- diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md b/curriculum/challenges/chinese/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md index a3b4c84764..d6548717f6 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md @@ -18,7 +18,7 @@ Fulfill the user stories below and get all the tests to pass to complete the lab 1. Your table should have a table body element with at least five rows in it. 1. Each row in your table body should have four table data elements that display the book's Title, Author, Genre, and Publication Year. 1. Your table should have a table footer element with one row in it. -1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: [number of books in your table]`. +1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: N` where `N` should be replaced by the number of books in your table. # --hints-- diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md b/curriculum/challenges/chinese/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md index ffbe38d9d7..f4be5752ad 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md @@ -92,7 +92,7 @@ const secondLink = document.querySelectorAll('header nav ul li a')[1]; assert.exists(secondLink); ``` -The text of the first item in the unordered list should be `"Upcoming Events"`. +The text of the first item in the unordered list should be `Upcoming Events`. ```js const firstLink = document.querySelectorAll('header nav>ul>li>a')[0]; @@ -107,6 +107,13 @@ const hrefAttribute = anchorElement?.getAttribute("href"); assert.strictEqual(hrefAttribute, "#upcoming-events"); ``` +The text of the second item in the unordered list should be `Past Events`. + +```js +const secondLink = document.querySelectorAll('header nav>ul>li>a')[1]; +assert.strictEqual(secondLink.innerText, "Past Events"); +``` + The second item in the unordered list should have the `href` set to `#past-events`. ```js @@ -230,6 +237,22 @@ for (let img of imgElements) { } ``` +Each `h3` element should have the event title. + +```js +const eventTitles = document.querySelectorAll('h3'); +assert.isNotEmpty(eventTitles); +eventTitles.forEach((eventTitle => assert.isNotEmpty(eventTitle.innerText))); +``` + +Each `p` element shoud have the event description. + +```js +const eventDescriptions = document.querySelectorAll('p'); +assert.isNotEmpty(eventDescriptions); +eventDescriptions.forEach((eventDescription => assert.isNotEmpty(eventDescription.innerText))); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md b/curriculum/challenges/chinese/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md index ba0c379653..d295dd2b93 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md @@ -72,20 +72,18 @@ You should use `let` to declare a new variable `codingFact`. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) assert.match(code, /let\s+codingFact/) -assert.include(first, 'let'); -assert.exists(first); ``` You should give `codingFact` a value that includes `favoriteLanguage` using concatenation. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) -assert.match(code, /let\scodingFact\s*=\s*("|').+?\1\s*\+\s*favoriteLanguage/) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) +assert.match(code, /let\scodingFact\s*=\s*("|')?.+?\1?\s*\+\s*favoriteLanguage/) assert.include(first, 'let'); assert.exists(first); +assert.isNotEmpty(codingFact); ``` You should log `codingFact` to the console. @@ -102,11 +100,12 @@ You should assign a new value to `codingFact` that also contains `favoriteLangua ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[4], favoriteLanguage); assert.notEqual(output[4], output[3]); assert.isAtLeast(loggingCodingFacts.length, 2); assert.exists(second); +assert.isNotEmpty(codingFact); ``` You should assign a value to `codingFact` for the third time that also contains `favoriteLanguage`, and log it to the console. @@ -114,12 +113,13 @@ You should assign a value to `codingFact` for the third time that also contains ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[5], favoriteLanguage); assert.notEqual(output[5], output[4]); assert.equal(output[5], codingFact); assert.lengthOf(loggingCodingFacts, 3); assert.exists(third); +assert.isNotEmpty(codingFact); ``` You should log to the console `"It was fun sharing these facts with you. Goodbye! - (botName) from (botLocation)."` using concatenation to add the values of the variables. diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md b/curriculum/challenges/chinese/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md index b877f975f7..7adc23cacf 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md @@ -134,6 +134,20 @@ const testH1 = testDiv.querySelector("h1") assert.notExists(testH1); ``` +When the value of `#markdown-input` is `# title 1\n# alternate title`, `convertMarkdown()` should return `

title 1

alternate title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "# title 1\n# alternate title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h1"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 1"); +assert.equal(headings[1].innerText, "alternate title"); +``` + When the value of `#markdown-input` is `## title 2`, `convertMarkdown()` should return `

title 2

`. ```js @@ -186,6 +200,20 @@ const testH2 = testDiv.querySelector("h2") assert.notExists(testH2); ``` +When the value of `#markdown-input` is `## title 2\n## title 2 alt`, `convertMarkdown()` should return `

title 2

title 2 alt

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "## title 2\n## title 2 alt"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h2"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 2"); +assert.equal(headings[1].innerText, "title 2 alt"); +``` + When the value of `#markdown-input` is `### title 3`, `convertMarkdown()` should return `

title 3

`. ```js @@ -238,6 +266,20 @@ const testH3 = testDiv.querySelector("h3") assert.notExists(testH3); ``` +When the value of `#markdown-input` is `### title 3\n### third title`, `convertMarkdown()` should return `

title 3

third title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "### title 3\n### third title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h3"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 3"); +assert.equal(headings[1].innerText, "third title"); +``` + When the value of `#markdown-input` is `**this is bold**`, `convertMarkdown()` should return `this is bold`. ```js @@ -279,17 +321,18 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` -When the value of `#markdown-input` is `__this is bold__`, `convertMarkdown()` should return `this is bold`. +When the value of `#markdown-input` is `**this is bold**\n**this is also bold**`, `convertMarkdown()` should return `this is boldthis is also bold`. ```js const input = document.querySelector("#markdown-input"); -input.value = "__this is bold__"; +input.value = "**this is bold**\n**this is also bold**"; const testDiv = document.createElement("div"); testDiv.innerHTML = convertMarkdown(); const strongs = testDiv.querySelectorAll("strong"); -assert.lengthOf(strongs, 1); -assert.lengthOf(testDiv.children, 1); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); ``` When the value of `#markdown-input` is `__this is bold__`, `this is bold` should be displayed inside `#html-output`. @@ -320,6 +363,20 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` +When the value of `#markdown-input` is `__this is bold__\n__this is also bold__`, `convertMarkdown()` should return `this is boldthis is also bold`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "__this is bold__\n__this is also bold__"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const strongs = testDiv.querySelectorAll("strong"); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); +``` + When the value of `#markdown-input` is `*this is italic*`, `convertMarkdown()` should return `this is italic`. ```js @@ -361,6 +418,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `*this is italic*\n*this is also italic*`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "*this is italic*\n*this is also italic*"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is `_this is italic_`, `convertMarkdown()` should return `this is italic`. ```js @@ -402,6 +473,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `_this is italic_\n_this is also italic_`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "_this is italic_\n_this is also italic_"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is either `# **title 1**` or `# __title 1__`, `convertMarkdown()` should return `

title 1

`. ```js @@ -529,6 +614,22 @@ assert.equal(imgs[0].alt, "alt-text"); assert.isTrue(imgs[0].src.endsWith("image-source")); ``` +When the value of `#markdown-input` is `![alt-text](image-source)\n![alt-text-2](image-source-2)`, `convertMarkdown()` should return `alt-textalt-text-2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "!![alt-text](image-source)\n![alt-text-2](image-source-2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const imgs = testDiv.querySelectorAll("img"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(imgs, 2); +assert.equal(imgs[0].alt, "alt-text"); +assert.isTrue(imgs[0].src.endsWith("image-source")); +assert.equal(imgs[1].alt, "alt-text-2"); +assert.isTrue(imgs[1].src.endsWith("image-source-2")); +``` + When the value of `#markdown-input` is `[link text](URL)`, `convertMarkdown()` should return `link text`. ```js @@ -573,6 +674,22 @@ assert.isTrue(anchors[0].href.endsWith("URL")); assert.equal(anchors[0].innerText, "link text"); ``` +When the value of `#markdown-input` is `[link text](URL)\n[link text 2](URL2)`, `convertMarkdown()` should return `link textlink text 2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "[link text](URL)\n[link text 2](URL2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const anchors = testDiv.querySelectorAll("a"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(anchors, 2); +assert.isTrue(anchors[0].href.endsWith("URL")); +assert.equal(anchors[0].innerText, "link text"); +assert.isTrue(anchors[1].href.endsWith("URL2")); +assert.equal(anchors[1].innerText, "link text 2"); +``` + When the value of `#markdown-input` is `> this is a quote`, `convertMarkdown()` should return `
this is a quote
`. ```js @@ -614,6 +731,21 @@ assert.lengthOf(quotes, 1); assert.equal(quotes[0].innerText, "this is a quote"); ``` +When the value of `#markdown-input` is `> this is a quote\n> this is another quote`, `convertMarkdown()` should return `
this is a quote
this is another quote
`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "> this is a quote\n> this is another quote"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const quotes = testDiv.querySelectorAll("blockquote"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(quotes, 2); +assert.equal(quotes[0].innerText, "this is a quote"); +assert.equal(quotes[1].innerText, "this is another quote"); +``` + + When the value of `#markdown-input` is `some text > not a quote anymore`, `convertMarkdown()` should not convert `> not a quote anymore` into a `blockquote` element. ```js diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md b/curriculum/challenges/chinese/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md index c5f4ae4d7c..ac51e63b10 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md @@ -68,7 +68,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` When the `#text-input` element only contains the letter `A` and the `#check-btn` element is clicked, the `#result` element should contain the text `"A is a palindrome"`. diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md b/curriculum/challenges/chinese/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md index 493cc70725..6175babe4c 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md @@ -215,7 +215,7 @@ techProjects.unpin(smartHome); assert.isEmpty(techProjects.ideas); ``` -When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 ideas\n`. +When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 idea(s)\n`. ```js diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md b/curriculum/challenges/chinese/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md index 5bda58acf4..32423c0e1b 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md @@ -233,7 +233,7 @@ Each `img` element should have a valid `src` attribute. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.src.length, 0); + assert.isAbove(image.src.trim().length, 0); } ``` @@ -243,7 +243,7 @@ Each `img` element should have an `alt` attribute with an appropriate value. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.alt.length, 0); + assert.isAbove(image.alt.trim().length, 0); } ``` diff --git a/curriculum/challenges/chinese/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md b/curriculum/challenges/chinese/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md index 067b7b8c17..19661d7275 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md +++ b/curriculum/challenges/chinese/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md @@ -13,10 +13,11 @@ Fulfill the user stories below and get all the tests to pass to complete the lab **用户需求:** -1. You should have a `main` element. +1. You should have a `main` element as the only child of the `body` element. 1. You should have an `h1` element with the topic of your page. 1. You should have a paragraph introducing the topic of your page below your `h1` element. -1. You should have three `section` elements, each containing an `h2` element, a paragraph, and an `iframe` element. +1. You should have three `section` elements below your first paragraph. +1. Each section should contain an `h2` element, a paragraph, and an `iframe` element, in this order. 1. The three `iframe` elements should have a `src` attribute set to a valid video. 1. Each `iframe` element should also have a `title` attribute to describe the embedded content, and a `height` attribute and a `width` attribute to set the element to a proper size. diff --git a/curriculum/challenges/chinese/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md b/curriculum/challenges/chinese/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md index 59beabf4e9..1ecd98c26e 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md +++ b/curriculum/challenges/chinese/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md @@ -34,7 +34,7 @@ Review the beginning of the video where the `superscript` element is discussed. --- -To display text as a `superscript` above the normal line of text. +To display text as a superscript above the normal line of text. --- diff --git a/curriculum/challenges/chinese/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md b/curriculum/challenges/chinese/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md index 184b714b4c..bf1a439064 100644 --- a/curriculum/challenges/chinese/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md +++ b/curriculum/challenges/chinese/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md @@ -22,7 +22,7 @@ HyperText Maker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -30,7 +30,7 @@ HyperText Marker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -38,7 +38,7 @@ HyperText Markdown Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- diff --git a/curriculum/challenges/chinese/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md b/curriculum/challenges/chinese/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md index 0f867d3ad9..06e0471e54 100644 --- a/curriculum/challenges/chinese/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md +++ b/curriculum/challenges/chinese/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md @@ -307,19 +307,19 @@ Given the following selectors, which has the lowest specificity? #### --distractors-- -`h1` +`#id` --- -`#id` +`.class` --- -`p` +`div h1` #### --answer-- -`div` +`h1` ### --question-- diff --git a/curriculum/challenges/chinese/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md b/curriculum/challenges/chinese/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md index 1c191914a8..911dd9f72d 100644 --- a/curriculum/challenges/chinese/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md +++ b/curriculum/challenges/chinese/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md @@ -205,11 +205,11 @@ Which of these functions allows specifying the transparency of a color? --- -`rgba()` +`alpha()` #### --answer-- -`opacity()` +`rgba()` ### --question-- @@ -419,7 +419,7 @@ Which of the following is the correct syntax to create a CSS variable with a fal ```css .element { - color: var(--main-color, red); + color: var(--main-color; red); } ``` diff --git a/curriculum/challenges/chinese/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md b/curriculum/challenges/chinese/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md index e3ab555833..c687e078a1 100644 --- a/curriculum/challenges/chinese/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md +++ b/curriculum/challenges/chinese/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md @@ -69,7 +69,7 @@ A single-page portfolio site. --- -A complex e-commerce site with multiple categories and subcategories. +An infinite scroll gallery site. --- diff --git a/curriculum/challenges/chinese/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md b/curriculum/challenges/chinese/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md index 2f77b05e5b..87c236a90f 100644 --- a/curriculum/challenges/chinese/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md +++ b/curriculum/challenges/chinese/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md @@ -24,7 +24,7 @@ Review the concepts below to prepare for the upcoming quiz. - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/chinese/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md b/curriculum/challenges/chinese/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md index 3343a69ca7..6e9e133430 100644 --- a/curriculum/challenges/chinese/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md +++ b/curriculum/challenges/chinese/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md @@ -2611,7 +2611,7 @@ In the above example, the `findFactorial` function is called recursively until ` - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/chinese/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index b54a3ebe12..57ce96e215 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ assert.lengthOf(document.querySelectorAll('body'), 1); assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md b/curriculum/challenges/chinese/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md index 2f8a3054da..32fd75bf32 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md @@ -13,7 +13,7 @@ Here is a reminder of how to call a function: ```js function myFunction() { - return 'Hello World'; + return "Hello World"; } // function call diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 06b4be5a16..0b98e7082b 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md index 36568bfc1d..1bcc7a9900 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -9,7 +9,7 @@ dashedName: step-104 Now that you've targeted the correct element, you can update its text after the delay you specified earlier. -Using the `.getElementById()` method, set the `textContent` property of the targeted element equal to the `msg` property of the current object. +Set the `textContent` property of the targeted element equal to the `msg` property of the current object by using property chaining on your `.getElementById()` method directly. # --hints-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md b/curriculum/challenges/chinese/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md index 9629382977..aa3271581f 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md @@ -18,7 +18,7 @@ The `for` attribute on the `label` element should match the `id` attribute on th Below your `legend` element, add a `label` element with the text of `Name (required):`. For the `for` attribute, set it to the value of `"full-name"`. -Then below your `legend` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. +Then below your `label` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. # --hints-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md index a010c6c140..408895d618 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md @@ -13,30 +13,76 @@ You should now push the three objects into the `recipes` array. To do thus, you Use the `push()` method to push all the recipe objects into the `recipes` array. Make sure to push `recipe1`, `recipe2`, and `recipe3` in that order. +Also delete the `recipe1Name`, `recipe2Name`, `recipe1CookingTime`, and `recipe2CookingTime` variables, and the `console.log` statements which log those variables. + # --hints-- -You should remove `recipe1Name` and its console log. +You should remove the `recipe1Name` variable. + +```js +try { + recipe1Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1Name is not defined'); +} +``` + +You should remove the `console.log(recipe1Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1Name\s*\)\s*;?/); +``` + +You should remove the `recipe2Name` variable. + +```js +try { + recipe2Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2Name is not defined'); +} +``` + +You should remove the `console.log(recipe2Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2Name\s*\)\s*;?/); +``` + +You should remove the `recipe1CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1Name\s*=\s*recipe1\.name;?\s*console\.log\(recipe1Name\);?/) +try { + recipe1CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1CookingTime is not defined'); +} ``` -You should remove `recipe2Name` and its console log. +You should remove the `console.log(recipe1CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2Name\s*=\s*recipe2\.name;?\s*console\.log\(recipe2Name\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1CookingTime\s*\)\s*;?/); ``` -You should remove `recipe1CookingTime` and its console log. +You should remove the `recipe2CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1CookingTime\s*=\s*recipe1\.cookingTime;?\s*console\.log\(recipe1CookingTime\);?/) +try { + recipe2CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2CookingTime is not defined'); +} ``` -You should remove `recipe2CookingTime` and its console log. +You should remove the `console.log(recipe2CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2CookingTime\s*=\s*recipe2\.cookingTime;?\s*console\.log\(recipe2CookingTime\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2CookingTime\s*\)\s*;?/); ``` You should push all the recipes objects into the `recipes` array. Make sure to push them in the order they are declared. diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md index 292feedbae..6ca14f2a2a 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md @@ -9,7 +9,7 @@ dashedName: step-7 Now, you should work on calculating the `averageRating`, `totalIngredients`, and the `difficultyLevel` for each recipe in the `recipes` array. -Start by creating a `getAverageRating` function that takes a `ratings` parameter. Inside the function, calculate the average rating using the items in the `ratings` property of each recipe. +Start by creating a `getAverageRating` function that takes a single argument, which is an array with ratings. Inside the function, calculate the average rating from the array passed to the function. Your `getAverageRating` function must return a number. @@ -21,10 +21,10 @@ You should create a `getAverageRating` function. assert.isFunction(getAverageRating) ``` -Your `getAverageRating` function should have a `ratings` parameter. +Your `getAverageRating` function should have a single parameter. ```js -assert.match(getAverageRating.toString(), /ratings/); +assert.lengthOf(getAverageRating, 1); ``` Your `getAverageRating` function should return a number. @@ -33,30 +33,22 @@ Your `getAverageRating` function should return a number. assert.isNumber(getAverageRating(recipe1.ratings)) ``` -You `getAverageRating` function should return a number when the average rating is `4.00`. +`getAverageRating(recipe1.ratings)` should return `4.5`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe1.ratings), 4.5) ``` -You `getAverageRating` function should return a number when the average rating is `4.75`. +`getAverageRating(recipe2.ratings)` should return `4.75`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe2.ratings), 4.75) ``` -You `getAverageRating` function should return a number when the average rating is `4.50`. +`getAverageRating(recipe3.ratings)` should return `4`. ```js -assert.isNumber(getAverageRating(recipe1.ratings)) -``` - -Your `getAverageRating` function should return the correct rating. - -```js -assert.equal(getAverageRating(recipe1.ratings), 4.50) -assert.equal(getAverageRating(recipe2.ratings), 4.75) -assert.equal(getAverageRating(recipe3.ratings), 4.00) +assert.strictEqual(getAverageRating(recipe3.ratings), 4) ``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md index ace358ab7f..6d190332d1 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md @@ -7,7 +7,7 @@ dashedName: step-8 # --description-- -Create a `getTotalIngredients` function that takes an `ingredients` parameter. This function should return the number of ingredients for each recipe by returning the length of the `ingredients` array. +Create a `getTotalIngredients` function that takes a single argument, representing an array with ingredients, and returns the number of ingredients from the array passed to the function. # --hints-- @@ -17,10 +17,10 @@ You should create a `getTotalIngredients` function. assert.isFunction(getTotalIngredients) ``` -You `getTotalIngredients` function should have an `ingredients` parameter. +Your `getTotalIngredients` function should have a single parameter. ```js -assert.match(getTotalIngredients.toString(), /ingredients/); +assert.lengthOf(getTotalIngredients, 1); ``` Your `getTotalIngredients` function should return a number. @@ -29,30 +29,22 @@ Your `getTotalIngredients` function should return a number. assert.isNumber(getTotalIngredients(recipe1.ingredients)) ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `5`. +`getTotalIngredients(recipe1.ingredients)` should return `4`. ```js -assert.isNumber(getTotalIngredients(recipe2.ingredients)) +assert.strictEqual(getTotalIngredients(recipe1.ingredients), 4); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `3`. +`getTotalIngredients(recipe2.ingredients)` should return `5`. ```js -assert.isNumber(getTotalIngredients(recipe3.ingredients)) +assert.strictEqual(getTotalIngredients(recipe2.ingredients), 5); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `4`. +`getTotalIngredients(recipe3.ingredients)` should return `3`. ```js -assert.isNumber(getTotalIngredients(recipe1.ingredients)) -``` - -Your `getTotalIngredients` function should return the correct number of ingredients. - -```js -assert.equal(getTotalIngredients(recipe1.ingredients), 4) -assert.equal(getTotalIngredients(recipe2.ingredients), 5) -assert.equal(getTotalIngredients(recipe3.ingredients), 3) +assert.strictEqual(getTotalIngredients(recipe3.ingredients), 3); ``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md index c686ff0e9a..7056df9e9b 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md @@ -7,9 +7,9 @@ dashedName: step-9 # --description-- -Create a `getDifficultyLevel` function that takes `cookingTime` as a parameter. +Create a `getDifficultyLevel` function that takes a number indicating the cooking time as a parameter. -If `cookingTime` is less than `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. +If the cooking time is less than or equal to `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. # --hints-- @@ -19,13 +19,13 @@ You should create a `getDifficultyLevel` function. assert.isFunction(getDifficultyLevel) ``` -You `getDifficultyLevel` function should have a `cookingTime` parameter. +Your `getDifficultyLevel` function should have a single parameter. ```js -assert.match(getDifficultyLevel.toString(), /cookingTime/); +assert.lengthOf(getDifficultyLevel, 1); ``` -Your `getDifficultyLevel` function should return `"easy"` when the `cookingTime` is less than or equal to `30`. +Your `getDifficultyLevel` function should return `"easy"` when the cooking time is less than or equal to `30`. ```js assert.strictEqual(getDifficultyLevel(10), "easy") @@ -34,7 +34,7 @@ assert.strictEqual(getDifficultyLevel(29), "easy") assert.strictEqual(getDifficultyLevel(30), "easy") ``` -Your `getDifficultyLevel` function should return `"medium"` when the `cookingTime` is greater than `31` and less than `60`. +Your `getDifficultyLevel` function should return `"medium"` when the cooking time is greater than `31` and less than or equal to `60`. ```js assert.strictEqual(getDifficultyLevel(31), "medium") @@ -43,7 +43,7 @@ assert.strictEqual(getDifficultyLevel(50), "medium") assert.strictEqual(getDifficultyLevel(60), "medium") ``` -Your `getDifficultyLevel` function should return `"hard"` when the `cookingTime` is greater than `60`. +Your `getDifficultyLevel` function should return `"hard"` when the cooking time is greater than `60`. ```js assert.strictEqual(getDifficultyLevel(61), "hard") diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md index 3a34c4658f..48de895967 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md @@ -9,46 +9,44 @@ dashedName: step-11 You can now fill in each item of the `recipes` array with values for the `averageRating`, `totalIngredients`, and `difficultyLevel` properties. -To do this, access the `averageRating`, `totalIngredients`, and `difficultyLevel` properties of each recipe object and assign them the results of the corresponding function calls with the appropriate arguments. - -For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate function calls and arguments. +For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate results of function calls and arguments. # --hints-- You should access the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating/) +assert.isNotNull(recipe1.averageRating); ``` -You should set the `averageRating` of `recipe1` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe1.ratings` to the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating\s*=\s*getAverageRating\(recipe1\.ratings\);?/) +assert.strictEqual(recipe1.averageRating, getAverageRating(recipe1.ratings)); ``` You should access the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients/) +assert.isNotNull(recipe1.totalIngredients); ``` -You should set the `totalIngredients` of `recipe1` you accessed to the calling of `getTotalIngredients` with `recipe1.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe1.ingredients` to the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients\s*=\s*getTotalIngredients\(recipe1\.ingredients\);?/) +assert.strictEqual(recipe1.totalIngredients, getTotalIngredients(recipe1.ingredients)); ``` You should access the `difficultyLevel` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel/) +assert.isNotEmpty(recipe1.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe1` you accessed to the calling of `getDifficultyLevel` with `recipe1.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe1.cookingTime` to the `cookingTime` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe1\.cookingTime\);?/) +assert.strictEqual(recipe1.difficultyLevel, getDifficultyLevel(recipe1.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md index bd9aceddf5..8f45a98cbd 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md @@ -14,37 +14,37 @@ Repeat the process for the `averageRating`, `totalIngredients`, and `difficultyL You should access the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating/) +assert.isNotNull(recipe2.averageRating); ``` -You should set the `averageRating` of `recipe2` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe2.ratings` to the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating\s*=\s*getAverageRating\(recipe2\.ratings\);?/) +assert.strictEqual(recipe2.averageRating, getAverageRating(recipe2.ratings)); ``` You should access the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients/) +assert.isNotNull(recipe2.totalIngredients); ``` -You should set the `totalIngredients` of `recipe2` you accessed to the calling of `getTotalIngredients` with `recipe2.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe2.ingredients` to the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients\s*=\s*getTotalIngredients\(recipe2\.ingredients\);?/) +assert.strictEqual(recipe2.totalIngredients, getTotalIngredients(recipe2.ingredients)); ``` You should access the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel/) +assert.isNotEmpty(recipe2.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe2` you accessed to the calling of `getDifficultyLevel` with `recipe2.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe2.cookingTime` to the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe2\.cookingTime\);?/) +assert.strictEqual(recipe2.difficultyLevel, getDifficultyLevel(recipe2.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md index dc26e12dbe..5577460076 100644 --- a/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md +++ b/curriculum/challenges/chinese/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md @@ -33,73 +33,73 @@ Make sure all the variables you created are logged to the console. You should create a `recipe1Name` variable. ```js -assert.isNotNull(recipe1Name) +assert.isDefined(recipe1Name); ``` -You should set your `recipe1Name` variable to the accessment of the `name` property of `recipe1`. +You should assign the value of the `name` property of `recipe1` to your `recipe1name` variable. ```js -assert.match(code, /recipe1\.name|recipe1\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe1Name, recipe1.name); ``` You should log `recipe1Name` to the console. ```js -assert.match(code, /console\.log\(recipe1Name\)/) +assert.match(code, /console\.log\(\s*recipe1Name\s*\)/); ``` You should create a `recipe2Name` variable. ```js -assert.isNotNull(recipe2Name) +assert.isDefined(recipe2Name); ``` -You should set your `recipe2Name` variable to the accessment of the `name` property of `recipe2`. +You should assign the value of the `name` property of `recipe2` to your `recipe2name` variable. ```js -assert.match(code, /recipe2\.name|recipe2\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe2Name, recipe2.name); ``` You should log `recipe2Name` to the console. ```js -assert.match(code, /console\.log\(recipe2Name\)/) +assert.match(code, /console\.log\(recipe2Name\)/); ``` You should create a `recipe1CookingTime` variable. ```js -assert.isNotNull(recipe1CookingTime) +assert.isDefined(recipe1CookingTime); ``` -You should set your `recipe1CookingTime` variable to the accessment of the `cookingTime` property of `recipe1`. +You should assign the value of the `cookingTime` property of `recipe1` to your `recipe1CookingTime` variable. ```js -assert.match(code, /recipe1\.cookingTime|recipe1\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe1CookingTime, recipe1.cookingTime); ``` You should log `recipe1CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe1CookingTime\)/) +assert.match(code, /console\.log\(recipe1CookingTime\)/); ``` You should create a `recipe2CookingTime` variable. ```js -assert.isNotNull(recipe2CookingTime) +assert.isDefined(recipe2CookingTime); ``` -You should set your `recipe2CookingTime` variable to the accessment of the `cookingTime` property of `recipe2`. +You should assign the value of the `cookingTime` property of `recipe2` to your `recipe2CookingTime` variable. ```js -assert.match(code, /recipe2\.cookingTime|recipe2\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe2CookingTime, recipe2.cookingTime); ``` You should log `recipe2CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe2CookingTime\)/) +assert.match(code, /console\.log\(recipe2CookingTime\)/); ``` # --seed-- diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md index 05a5c962b7..1bc6794851 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/boo-who.md @@ -17,61 +17,61 @@ Booleanos primitivos son `true` y `false`. `booWho(true)` debe devolver `true`. ```js -assert.strictEqual(booWho(true), true); +assert.isTrue(booWho(true)); ``` `booWho(false)` debe devolver `true`. ```js -assert.strictEqual(booWho(false), true); +assert.isTrue(booWho(false)); ``` `booWho([1, 2, 3])` debe devolver `false`. ```js -assert.strictEqual(booWho([1, 2, 3]), false); +assert.isFalse(booWho([1, 2, 3])); ``` `booWho([].slice)` debe devolver `false`. ```js -assert.strictEqual(booWho([].slice), false); +assert.isFalse(booWho([].slice)); ``` `booWho({ "a": 1 })` debe devolver `false`. ```js -assert.strictEqual(booWho({ a: 1 }), false); +assert.isFalse(booWho({ a: 1 })); ``` `booWho(1)` debe devolver `false`. ```js -assert.strictEqual(booWho(1), false); +assert.isFalse(booWho(1)); ``` `booWho(NaN)` debe devolver `false`. ```js -assert.strictEqual(booWho(NaN), false); +assert.isFalse(booWho(NaN)); ``` `booWho("a")` debe devolver `false`. ```js -assert.strictEqual(booWho('a'), false); +assert.isFalse(booWho('a')); ``` `booWho("true")` debe devolver `false`. ```js -assert.strictEqual(booWho('true'), false); +assert.isFalse(booWho('true')); ``` `booWho("false")` debe devolver `false`. ```js -assert.strictEqual(booWho('false'), false); +assert.isFalse(booWho('false')); ``` # --seed-- @@ -90,7 +90,7 @@ booWho(null); ```js function booWho(bool) { - return typeof bool === "boolean"; + return typeof bool === 'boolean'; } booWho(null); diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md index 995f911d4b..7a2ed77be9 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/chunky-monkey.md @@ -90,7 +90,7 @@ function chunkArrayInGroups(arr, size) { return arr; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` # --solutions-- @@ -106,5 +106,5 @@ function chunkArrayInGroups(arr, size) { return out; } -chunkArrayInGroups(["a", "b", "c", "d"], 2); +chunkArrayInGroups(['a', 'b', 'c', 'd'], 2); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md index bbdf95ead3..bab1d28f5a 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending.md @@ -10,84 +10,85 @@ dashedName: confirm-the-ending Evalúa si una cadena (primer argumento, `str`) termina con la cadena de destino dada (segundo argumento, `target`). -Este desafío *can* resolverse con el método `.endsWith()`, que fue introducido en ES2015. Pero para el propósito de este desafío, nos gustaría que usaras uno de los métodos de subcadena JavaScript en su lugar. +This challenge _can_ be solved with the `.endsWith()` method, which was introduced in ES2015. Pero para el propósito de este desafío, nos gustaría que usaras uno de los métodos de subcadena JavaScript en su lugar. # --hints-- `confirmEnding("Bastian", "n")` debe devolver `true`. ```js -assert(confirmEnding('Bastian', 'n') === true); +assert.isTrue(confirmEnding('Bastian', 'n')); ``` `confirmEnding("Congratulation", "on")` debe devolver `true`. ```js -assert(confirmEnding('Congratulation', 'on') === true); +assert.isTrue(confirmEnding('Congratulation', 'on')); ``` `confirmEnding("Connor", "n")` debe devolver `false`. ```js -assert(confirmEnding('Connor', 'n') === false); +assert.isFalse(confirmEnding('Connor', 'n')); ``` `confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification")` debe devolver `false`. ```js -assert( +assert.isFalse( confirmEnding( 'Walking on water and developing software from a specification are easy if both are frozen', 'specification' - ) === false + ) ); ``` `confirmEnding("He has to give me a new name", "name")` debe devolver `true`. ```js -assert(confirmEnding('He has to give me a new name', 'name') === true); +assert.isTrue(confirmEnding('He has to give me a new name', 'name')); ``` `confirmEnding("Open sesame", "same")` debe devolver `true`. ```js -assert(confirmEnding('Open sesame', 'same') === true); +assert.isTrue(confirmEnding('Open sesame', 'same')); ``` `confirmEnding("Open sesame", "sage")` debe devolver `false`. ```js -assert(confirmEnding('Open sesame', 'sage') === false); +assert.isFalse(confirmEnding('Open sesame', 'sage')); ``` `confirmEnding("Open sesame", "game")` debe devolver `false`. ```js -assert(confirmEnding('Open sesame', 'game') === false); +assert.isFalse(confirmEnding('Open sesame', 'game')); ``` `confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain")` should return `false`. ```js -assert( +assert.isFalse( confirmEnding( 'If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing', 'mountain' - ) === false + ) ); ``` `confirmEnding("Abstraction", "action")` debe devolver `true`. ```js -assert(confirmEnding('Abstraction', 'action') === true); +assert.isTrue(confirmEnding('Abstraction', 'action')); ``` Tu código no debe usar el método incorporado `.endsWith()` para resolver el desafío. ```js -assert(!/\.endsWith\(.*?\)\s*?;?/.test(__helpers.removeJSComments(code)) && !/\['endsWith'\]/.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.endsWith\(.*?\)\s*?;?/); +assert.notMatch(__helpers.removeJSComments(code), /\['endsWith'\]/); ``` # --seed-- @@ -99,7 +100,7 @@ function confirmEnding(str, target) { return str; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` # --solutions-- @@ -109,5 +110,5 @@ function confirmEnding(str, target) { return str.substring(str.length - target.length) === target; } -confirmEnding("Bastian", "n"); +confirmEnding('Bastian', 'n'); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md index e7e36ca8e0..f206ca268a 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/convert-celsius-to-fahrenheit.md @@ -17,37 +17,37 @@ Se te da una variable `celsius` que representa una temperatura en Celsius. Utili `convertCtoF(0)` debe devolver un número ```js -assert(typeof convertCtoF(0) === 'number'); +assert.isNumber(convertCtoF(0)); ``` `convertCtoF(-30)` debe devolver un valor de `-22` ```js -assert(convertCtoF(-30) === -22); +assert.strictEqual(convertCtoF(-30), -22); ``` `convertCtoF(-10)` debe devolver un valor de `14` ```js -assert(convertCtoF(-10) === 14); +assert.strictEqual(convertCtoF(-10), 14); ``` `convertCtoF(0)` debe devolver un valor de `32` ```js -assert(convertCtoF(0) === 32); +assert.strictEqual(convertCtoF(0), 32); ``` `convertCtoF(20)` debe devolver un valor de `68` ```js -assert(convertCtoF(20) === 68); +assert.strictEqual(convertCtoF(20), 68); ``` `convertCtoF(30)` debe devolver un valor de `86` ```js -assert(convertCtoF(30) === 86); +assert.strictEqual(convertCtoF(30), 86); ``` # --seed-- @@ -67,7 +67,7 @@ convertCtoF(30); ```js function convertCtoF(celsius) { - let fahrenheit = celsius * 9/5 + 32; + let fahrenheit = celsius * (9 / 5) + 32; return fahrenheit; } diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md index 1fd1cbfa46..a09e4a2bf7 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/factorialize-a-number.md @@ -23,31 +23,31 @@ Sólo se proporcionarán a la función los enteros mayores o iguales a cero. `factorialize(5)` debe devolver un número. ```js -assert(typeof factorialize(5) === 'number'); +assert.isNumber(factorialize(5)); ``` `factorialize(5)` debe devolver `120`. ```js -assert(factorialize(5) === 120); +assert.strictEqual(factorialize(5), 120); ``` `factorialize(10)` debe devolver `3628800`. ```js -assert(factorialize(10) === 3628800); +assert.strictEqual(factorialize(10), 3628800); ``` `factorialize(20)` debe devolver `2432902008176640000`. ```js -assert(factorialize(20) === 2432902008176640000); +assert.strictEqual(factorialize(20), 2432902008176640000); ``` `factorialize(0)` debe devolver `1`. ```js -assert(factorialize(0) === 1); +assert.strictEqual(factorialize(0), 1); ``` # --seed-- diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md index 1ac4811b28..91ae2642e6 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/falsy-bouncer.md @@ -45,7 +45,7 @@ No debes alterar `arr`. ```js const arr = ['a', false, 0, 'Naomi']; bouncer(arr); -assert.deepEqual(arr, ['a', false, 0, 'Naomi']) +assert.deepEqual(arr, ['a', false, 0, 'Naomi']); ``` # --seed-- @@ -57,7 +57,7 @@ function bouncer(arr) { return arr; } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` # --solutions-- @@ -67,5 +67,5 @@ function bouncer(arr) { return arr.filter(e => e); } -bouncer([7, "ate", "", false, 9]); +bouncer([7, 'ate', '', false, 9]); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md index 331d17f553..c6244aaecf 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/find-the-longest-word-in-a-string.md @@ -17,50 +17,51 @@ Tu respuesta debe ser un número. `findLongestWordLength("The quick brown fox jumped over the lazy dog")` debe devolver un número. ```js -assert( - typeof findLongestWordLength( - 'The quick brown fox jumped over the lazy dog' - ) === 'number' +assert.isNumber( + findLongestWordLength('The quick brown fox jumped over the lazy dog') ); ``` `findLongestWordLength("The quick brown fox jumped over the lazy dog")` debe devolver `6`. ```js -assert( - findLongestWordLength('The quick brown fox jumped over the lazy dog') === 6 +assert.strictEqual( + findLongestWordLength('The quick brown fox jumped over the lazy dog'), + 6 ); ``` `findLongestWordLength("May the force be with you")` debe devolver `5`. ```js -assert(findLongestWordLength('May the force be with you') === 5); +assert.strictEqual(findLongestWordLength('May the force be with you'), 5); ``` `findLongestWordLength("Google do a barrel roll")` debe devolver `6`. ```js -assert(findLongestWordLength('Google do a barrel roll') === 6); +assert.strictEqual(findLongestWordLength('Google do a barrel roll'), 6); ``` `findLongestWordLength("What is the average airspeed velocity of an unladen swallow")` debe devolver `8`. ```js -assert( +assert.strictEqual( findLongestWordLength( 'What is the average airspeed velocity of an unladen swallow' - ) === 8 + ), + 8 ); ``` `findLongestWordLength("What if we try a super-long word such as otorhinolaryngology")` debe devolver `19`. ```js -assert( +assert.strictEqual( findLongestWordLength( 'What if we try a super-long word such as otorhinolaryngology' - ) === 19 + ), + 19 ); ``` @@ -73,7 +74,7 @@ function findLongestWordLength(str) { return str.length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` # --solutions-- @@ -83,5 +84,5 @@ function findLongestWordLength(str) { return str.split(' ').sort((a, b) => b.length - a.length)[0].length; } -findLongestWordLength("The quick brown fox jumped over the lazy dog"); +findLongestWordLength('The quick brown fox jumped over the lazy dog'); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md index 27c226d09b..18c714398d 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/mutations.md @@ -21,73 +21,73 @@ Finalmente, `["Alien", "line"]`, debe devolver `true` porque todas las letras de `mutation(["hello", "hey"])` debe devolver `false`. ```js -assert(mutation(['hello', 'hey']) === false); +assert.isFalse(mutation(['hello', 'hey'])); ``` `mutation(["hello", "Hello"])` debe devolver `true`. ```js -assert(mutation(['hello', 'Hello']) === true); +assert.isTrue(mutation(['hello', 'Hello'])); ``` `mutation(["zyxwvutsrqponmlkjihgfedcba", "qrstu"])` debe devolver `true`. ```js -assert(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu']) === true); +assert.isTrue(mutation(['zyxwvutsrqponmlkjihgfedcba', 'qrstu'])); ``` `mutation(["Mary", "Army"])` debe devolver `true`. ```js -assert(mutation(['Mary', 'Army']) === true); +assert.isTrue(mutation(['Mary', 'Army'])); ``` `mutation(["Mary", "Aarmy"])` debe devolver `true`. ```js -assert(mutation(['Mary', 'Aarmy']) === true); +assert.isTrue(mutation(['Mary', 'Aarmy'])); ``` `mutation(["Alien", "line"])` debe devolver `true`. ```js -assert(mutation(['Alien', 'line']) === true); +assert.isTrue(mutation(['Alien', 'line'])); ``` `mutation(["floor", "for"])` debe devolver `true`. ```js -assert(mutation(['floor', 'for']) === true); +assert.isTrue(mutation(['floor', 'for'])); ``` `mutation(["hello", "neo"])` debe devolver `false`. ```js -assert(mutation(['hello', 'neo']) === false); +assert.isFalse(mutation(['hello', 'neo'])); ``` `mutation(["voodoo", "no"])` debe devolver `false`. ```js -assert(mutation(['voodoo', 'no']) === false); +assert.isFalse(mutation(['voodoo', 'no'])); ``` `mutation(["ate", "date"])` debe devolver `false`. ```js -assert(mutation(['ate', 'date']) === false); +assert.isFalse(mutation(['ate', 'date'])); ``` `mutation(["Tiger", "Zebra"])` debe devolver `false`. ```js -assert(mutation(['Tiger', 'Zebra']) === false); +assert.isFalse(mutation(['Tiger', 'Zebra'])); ``` `mutation(["Noel", "Ole"])` debe devolver `true`. ```js -assert(mutation(['Noel', 'Ole']) === true); +assert.isTrue(mutation(['Noel', 'Ole'])); ``` # --seed-- @@ -99,7 +99,7 @@ function mutation(arr) { return arr; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` # --solutions-- @@ -108,10 +108,16 @@ mutation(["hello", "hey"]); function mutation(arr) { let hash = Object.create(null); - arr[0].toLowerCase().split('').forEach(c => hash[c] = true); + arr[0] + .toLowerCase() + .split('') + .forEach(c => (hash[c] = true)); - return !arr[1].toLowerCase().split('').filter(c => !hash[c]).length; + return !arr[1] + .toLowerCase() + .split('') + .filter(c => !hash[c]).length; } -mutation(["hello", "hey"]); +mutation(['hello', 'hey']); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md index 3fae7dd6c1..b98b482919 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/repeat-a-string-repeat-a-string.md @@ -8,56 +8,56 @@ dashedName: repeat-a-string-repeat-a-string # --description-- -Repite una cadena dada `str` (primer argumento) por un número (`num`) de veces (segundo argumento). Devuelve una cadena vacía si `num` no es un número positivo. Para este desafío, *no* utilices el método incorporado `.repeat()`. +Repite una cadena dada `str` (primer argumento) por un número (`num`) de veces (segundo argumento). Devuelve una cadena vacía si `num` no es un número positivo. For the purpose of this challenge, do _not_ use the built-in `.repeat()` method. # --hints-- `repeatStringNumTimes("*", 3)` debe devolver la cadena `***`. ```js -assert(repeatStringNumTimes('*', 3) === '***'); +assert.strictEqual(repeatStringNumTimes('*', 3), '***'); ``` `repeatStringNumTimes("abc", 3)` debe devolver la cadena `abcabcabc`. ```js -assert(repeatStringNumTimes('abc', 3) === 'abcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 3), 'abcabcabc'); ``` `repeatStringNumTimes("abc", 4)` debe devolver la cadena `abcabcabcabc`. ```js -assert(repeatStringNumTimes('abc', 4) === 'abcabcabcabc'); +assert.strictEqual(repeatStringNumTimes('abc', 4), 'abcabcabcabc'); ``` `repeatStringNumTimes("abc", 1)` debe devolver la cadena `abc`. ```js -assert(repeatStringNumTimes('abc', 1) === 'abc'); +assert.strictEqual(repeatStringNumTimes('abc', 1), 'abc'); ``` `repeatStringNumTimes("*", 8)` debe devolver la cadena `********`. ```js -assert(repeatStringNumTimes('*', 8) === '********'); +assert.strictEqual(repeatStringNumTimes('*', 8), '********'); ``` `repeatStringNumTimes("abc", -2)` debe devolver una cadena vacía (`""`). ```js -assert(repeatStringNumTimes('abc', -2) === ''); +assert.isEmpty(repeatStringNumTimes('abc', -2)); ``` El método incorporado `repeat()` no debe ser utilizado. ```js -assert(!/\.repeat/g.test(__helpers.removeJSComments(code))); +assert.notMatch(__helpers.removeJSComments(code), /\.repeat/g); ``` `repeatStringNumTimes("abc", 0)` debe devolver `""`. ```js -assert(repeatStringNumTimes('abc', 0) === ''); +assert.isEmpty(repeatStringNumTimes('abc', 0)); ``` # --seed-- @@ -69,7 +69,7 @@ function repeatStringNumTimes(str, num) { return str; } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` # --solutions-- @@ -77,8 +77,8 @@ repeatStringNumTimes("abc", 3); ```js function repeatStringNumTimes(str, num) { if (num < 1) return ''; - return num === 1 ? str : str + repeatStringNumTimes(str, num-1); + return num === 1 ? str : str + repeatStringNumTimes(str, num - 1); } -repeatStringNumTimes("abc", 3); +repeatStringNumTimes('abc', 3); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md index b0bb50a887..f350df4f14 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/return-largest-numbers-in-arrays.md @@ -17,13 +17,13 @@ Recuerda, puedes iterar a través de un arreglo utilizando un simple bucle for, `largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]])` debe devolver un arreglo. ```js -assert( +assert.isArray( largestOfFour([ [4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1] - ]).constructor === Array + ]) ); ``` @@ -78,7 +78,12 @@ function largestOfFour(arr) { return arr; } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` # --solutions-- @@ -88,5 +93,10 @@ function largestOfFour(arr) { return arr.map(subArr => Math.max.apply(null, subArr)); } -largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]); +largestOfFour([ + [4, 5, 1, 3], + [13, 27, 18, 26], + [32, 35, 37, 39], + [1000, 1001, 857, 1] +]); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md index 00c935a7e8..a2a3c9193e 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/reverse-a-string.md @@ -17,25 +17,28 @@ Por ejemplo, `"hello"` debe convertirse `"olleh"`. `reverseString("hello")` debe devolver una cadena. ```js -assert(typeof reverseString('hello') === 'string'); +assert.isString(reverseString('hello')); ``` `reverseString("hello")` debe devolver la cadena `olleh`. ```js -assert(reverseString('hello') === 'olleh'); +assert.strictEqual(reverseString('hello'), 'olleh'); ``` `reverseString("Howdy")` debe devolver la cadena `ydwoH`. ```js -assert(reverseString('Howdy') === 'ydwoH'); +assert.strictEqual(reverseString('Howdy'), 'ydwoH'); ``` `reverseString("Greetings from Earth")` debe devolver la cadena `htraE morf sgniteerG`. ```js -assert(reverseString('Greetings from Earth') === 'htraE morf sgniteerG'); +assert.strictEqual( + reverseString('Greetings from Earth'), + 'htraE morf sgniteerG' +); ``` # --seed-- @@ -47,7 +50,7 @@ function reverseString(str) { return str; } -reverseString("hello"); +reverseString('hello'); ``` # --solutions-- @@ -57,5 +60,5 @@ function reverseString(str) { return str.split('').reverse().join(''); } -reverseString("hello"); +reverseString('hello'); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md index 31875cb1b5..836c9d0de6 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/slice-and-splice.md @@ -69,7 +69,7 @@ assert.deepEqual(testArr2, ['a', 'b']); ```js let testArr1 = [1, 2]; -let testArr2 = ["a", "b"]; +let testArr2 = ['a', 'b']; ``` ## --seed-contents-- @@ -89,7 +89,7 @@ function frankenSplice(arr1, arr2, n) { // It's alive. It's alive! let result = arr2.slice(); for (let i = 0; i < arr1.length; i++) { - result.splice(n+i, 0, arr1[i]); + result.splice(n + i, 0, arr1[i]); } return result; } diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md index 046020b6d7..1a1feeaa77 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/title-case-a-sentence.md @@ -17,27 +17,27 @@ Como propósito de este ejercicio, debes también usar mayúsculas conectando pa `titleCase("I'm a little tea pot")` debe devolver una cadena. ```js -assert(typeof titleCase("I'm a little tea pot") === 'string'); +assert.isString(titleCase("I'm a little tea pot")); ``` `titleCase("I'm a little tea pot")` debe devolver la cadena `I'm A Little Tea Pot`. ```js -assert(titleCase("I'm a little tea pot") === "I'm A Little Tea Pot"); +assert.strictEqual(titleCase("I'm a little tea pot"), "I'm A Little Tea Pot"); ``` `titleCase("sHoRt AnD sToUt")` debe devolver la cadena `Short And Stout`. ```js -assert(titleCase('sHoRt AnD sToUt') === 'Short And Stout'); +assert.strictEqual(titleCase('sHoRt AnD sToUt'), 'Short And Stout'); ``` `titleCase("HERE IS MY HANDLE HERE IS MY SPOUT")` debe devolver la cadena `Here Is My Handle Here Is My Spout`. ```js -assert( - titleCase('HERE IS MY HANDLE HERE IS MY SPOUT') === - 'Here Is My Handle Here Is My Spout' +assert.strictEqual( + titleCase('HERE IS MY HANDLE HERE IS MY SPOUT'), + 'Here Is My Handle Here Is My Spout' ); ``` @@ -57,7 +57,10 @@ titleCase("I'm a little tea pot"); ```js function titleCase(str) { - return str.split(' ').map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()).join(' '); + return str + .split(' ') + .map(word => word.charAt(0).toUpperCase() + word.substring(1).toLowerCase()) + .join(' '); } titleCase("I'm a little tea pot"); diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md index 44fdf37323..4e689bb3cf 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/truncate-a-string.md @@ -15,53 +15,55 @@ Recorta una cadena (primer argumento) si es más larga que la longitud máxima p `truncateString("A-tisket a-tasket A green and yellow basket", 8)` debe devolver la cadena `A-tisket...`. ```js -assert( - truncateString('A-tisket a-tasket A green and yellow basket', 8) === - 'A-tisket...' +assert.strictEqual( + truncateString('A-tisket a-tasket A green and yellow basket', 8), + 'A-tisket...' ); ``` `truncateString("Peter Piper picked a peck of pickled peppers", 11)` debe devolver la cadena `Peter Piper...`. ```js -assert( - truncateString('Peter Piper picked a peck of pickled peppers', 11) === - 'Peter Piper...' +assert.strictEqual( + truncateString('Peter Piper picked a peck of pickled peppers', 11), + 'Peter Piper...' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length)` debe devolver la cadena `A-tisket a-tasket A green and yellow basket`. ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length + 2)` debe devolver la cadena `A-tisket a-tasket A green and yellow basket`. ```js -assert( +assert.strictEqual( truncateString( 'A-tisket a-tasket A green and yellow basket', 'A-tisket a-tasket A green and yellow basket'.length + 2 - ) === 'A-tisket a-tasket A green and yellow basket' + ), + 'A-tisket a-tasket A green and yellow basket' ); ``` `truncateString("A-", 1)` debe devolver la cadena `A...`. ```js -assert(truncateString('A-', 1) === 'A...'); +assert.strictEqual(truncateString('A-', 1), 'A...'); ``` `truncateString("Absolutely Longer", 2)` debe devolver la cadena `Ab...`. ```js -assert(truncateString('Absolutely Longer', 2) === 'Ab...'); +assert.strictEqual(truncateString('Absolutely Longer', 2), 'Ab...'); ``` # --seed-- @@ -73,7 +75,7 @@ function truncateString(str, num) { return str; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` # --solutions-- @@ -87,5 +89,5 @@ function truncateString(str, num) { return str.slice(0, num) + '...'; } -truncateString("A-tisket a-tasket A green and yellow basket", 8); +truncateString('A-tisket a-tasket A green and yellow basket', 8); ``` diff --git a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md index b4d93070a6..349fb70bb8 100644 --- a/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md +++ b/curriculum/challenges/espanol/02-javascript-algorithms-and-data-structures/basic-algorithm-scripting/where-do-i-belong.md @@ -16,100 +16,100 @@ De esta forma, `getIndexToIns([20,3,5], 19)` debe devolver `2` porque una vez or # --hints-- -`getIndexToIns([10, 20, 30, 40, 50], 35)` debe devolver `3`. - -```js -assert(getIndexToIns([10, 20, 30, 40, 50], 35) === 3); -``` - `getIndexToIns([10, 20, 30, 40, 50], 35)` debe devolver un número. ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 35) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 35)); ``` -`getIndexToIns([10, 20, 30, 40, 50], 30)` debe devolver `2`. +`getIndexToIns([10, 20, 30, 40, 50], 35)` debe devolver `3`. ```js -assert(getIndexToIns([10, 20, 30, 40, 50], 30) === 2); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 35), 3); ``` `getIndexToIns([10, 20, 30, 40, 50], 30)` debe devolver un número. ```js -assert(typeof getIndexToIns([10, 20, 30, 40, 50], 30) === 'number'); +assert.isNumber(getIndexToIns([10, 20, 30, 40, 50], 30)); ``` -`getIndexToIns([40, 60], 50)` debe devolver `1`. +`getIndexToIns([10, 20, 30, 40, 50], 30)` debe devolver `2`. ```js -assert(getIndexToIns([40, 60], 50) === 1); +assert.strictEqual(getIndexToIns([10, 20, 30, 40, 50], 30), 2); ``` `getIndexToIns([40, 60], 50)` debe devolver un número. ```js -assert(typeof getIndexToIns([40, 60], 50) === 'number'); +assert.isNumber(getIndexToIns([40, 60], 50)); ``` -`getIndexToIns([3, 10, 5], 3)` debe devolver `0`. +`getIndexToIns([40, 60], 50)` debe devolver `1`. ```js -assert(getIndexToIns([3, 10, 5], 3) === 0); +assert.strictEqual(getIndexToIns([40, 60], 50), 1); ``` `getIndexToIns([3, 10, 5], 3)` debe devolver un número. ```js -assert(typeof getIndexToIns([3, 10, 5], 3) === 'number'); +assert.isNumber(getIndexToIns([3, 10, 5], 3)); ``` -`getIndexToIns([5, 3, 20, 3], 5)` debe devolver `2`. +`getIndexToIns([3, 10, 5], 3)` debe devolver `0`. ```js -assert(getIndexToIns([5, 3, 20, 3], 5) === 2); +assert.strictEqual(getIndexToIns([3, 10, 5], 3), 0); ``` `getIndexToIns([5, 3, 20, 3], 5)` debe devolver un número. ```js -assert(typeof getIndexToIns([5, 3, 20, 3], 5) === 'number'); +assert.isNumber(getIndexToIns([5, 3, 20, 3], 5)); +``` + +`getIndexToIns([5, 3, 20, 3], 5)` debe devolver `2`. + +```js +assert.strictEqual(getIndexToIns([5, 3, 20, 3], 5), 2); ``` `getIndexToIns([2, 20, 10], 19)` debe devolver `2`. ```js -assert(getIndexToIns([2, 20, 10], 19) === 2); +assert.strictEqual(getIndexToIns([2, 20, 10], 19), 2); ``` `getIndexToIns([2, 20, 10], 19)` debe devolver un número. ```js -assert(typeof getIndexToIns([2, 20, 10], 19) === 'number'); +assert.isNumber(getIndexToIns([2, 20, 10], 19)); ``` `getIndexToIns([2, 5, 10], 15)` debe devolver `3`. ```js -assert(getIndexToIns([2, 5, 10], 15) === 3); +assert.strictEqual(getIndexToIns([2, 5, 10], 15), 3); ``` `getIndexToIns([2, 5, 10], 15)` debe devolver un número. ```js -assert(typeof getIndexToIns([2, 5, 10], 15) === 'number'); +assert.isNumber(getIndexToIns([2, 5, 10], 15)); ``` -`getIndexToIns([], 1)` debe devolver `0`. +`getIndexToIns([], 1)` debe devolver un número. ```js -assert(getIndexToIns([], 1) === 0); +assert.isNumber(getIndexToIns([], 1)); ``` -`getIndexToIns([], 1)` debe devolver un número. +`getIndexToIns([], 1)` debe devolver `0`. ```js -assert(typeof getIndexToIns([], 1) === 'number'); +assert.strictEqual(getIndexToIns([], 1), 0); ``` # --seed-- diff --git a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md index ceb2f15d67..0c3045d61d 100644 --- a/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md +++ b/curriculum/challenges/espanol/07-scientific-computing-with-python/learn-list-comprehension-by-building-a-case-converter-program/657f456223b8c1187b461987.md @@ -50,7 +50,8 @@ Your list comprehension should evaluate `'_' + char.lower()` for each `char` in ```js ({ test: () => assert(runPython(` - _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list").find_comp_expr().is_equivalent("'_' + char.lower()") + target_var = _Node(_code).find_function("convert_to_snake_case").find_variable("snake_cased_char_list") + target_var.find_comp_expr().is_equivalent("'_' + char.lower()") and len(target_var.find_comp_ifs()) == 0 `)) }) ``` diff --git a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index 3cd3387dcd..f136f7a6af 100644 --- a/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/espanol/14-responsive-web-design-22/learn-basic-css-by-building-a-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ Tu etiqueta `div` debe estar anidado dentro del `body`. assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md index 0696fbcb52..70679b3f6b 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-cash-register-project/build-a-cash-register.md @@ -111,7 +111,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' @@ -148,7 +148,7 @@ cashInput.dispatchEvent(new Event('change')); purchaseBtn.click(); assert.strictEqual( alertMessage - .trim() + ?.trim() .replace(/[.,?!]+$/g, '') .toLowerCase(), 'customer does not have enough money to purchase the item' diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md index 4f20209dd5..cb706f4e99 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-palindrome-checker-project/build-a-palindrome-checker.md @@ -70,7 +70,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` Cuando el elemento `#text-input` solo contiene la letra `A` y se hace clic en el elemento `#check-btn`, el elemento `#result` debería contener el texto `"A is a palindrome"`. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md index e5b5de7cc1..9d94f4fe24 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-pokemon-search-app-project/build-a-pokemon-search-app.md @@ -153,7 +153,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); @@ -375,7 +375,7 @@ async () => { if (!res.ok) { await new Promise(resolve => setTimeout(resolve, 2000)); // Additional delay to allow the alert to trigger - assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); + assert.include(['pokémon not found', 'pokemon not found'], alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase()); } } catch (err) { throw new Error(err); diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md index 7036221471..9a6f18d6e5 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/build-a-telephone-number-validator-project/build-a-telephone-number-validator.md @@ -103,7 +103,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store userInput.value = ''; checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a phone number'); ``` When you click on the `#clear-btn` element, the content within the `#results-div` element should be removed. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md index 8f7b0e8195..fa5a86f3ff 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb472593e3be6d10a7c13b.md @@ -9,7 +9,7 @@ dashedName: step-103 Inside your condition, add a `forEach` loop to iterate through the `checkpoints` array. Use `checkpoint` as the parameter name for the callback function. -Inside the loop, use the subtraction assignment operator to subtract 5 from the checkpoints's `x` position. +Inside the `forEach` callback, use the subtraction assignment operator to subtract 5 from the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ You should have a `checkpoint` parameter inside the `forEach` callback function. ```js const splitter = code.split("if (keys.rightKey.pressed && isCheckpointCollisionDetectionActive)") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` You should use the subtraction assignment operator to subtract 5 from the `checkpoint`'s `x` position. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md index d43b9b3281..4d688fc5c1 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-intermediate-oop-by-building-a-platformer-game/64cb480723790d6d727b8ef5.md @@ -9,7 +9,7 @@ dashedName: step-104 Inside your `else if` statement, add a `forEach` loop to iterate through the `checkpoints` array. Use `checkpoint` as the parameter name for the callback function. -Inside the loop, use the addition assignment operator to add 5 to the checkpoints's `x` position. +Inside the `forEach` callback, use the addition assignment operator to add 5 to the checkpoints's `x` position. # --hints-- @@ -24,7 +24,7 @@ You should use the `checkpoint` parameter inside the `forEach` callback function ```js const splitter = code.split("else if (keys.leftKey.pressed && isCheckpointCollisionDetectionActive) {") -assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{/); +assert.match(splitter[1], /checkpoints\.forEach\(\s*(\(\s*checkpoint\s*\)|checkpoint)\s*=>\s*\{?/); ``` You should use the addition assignment operator to add 5 to the `checkpoint`'s `x` position. diff --git a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index ce23fe39c4..6b98ac4fd2 100644 --- a/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/espanol/15-javascript-algorithms-and-data-structures-22/learn-recursion-by-building-a-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md b/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md index d2df5dc405..34c586a251 100644 --- a/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md +++ b/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66b56d36cc47571a0e2a3dc5.md @@ -32,7 +32,7 @@ This answer doesn't have anything to do with the dialogue. Focus on answers that ## --video-solution-- -2 +1 # --explanation-- diff --git a/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md b/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md index f2f4e253a6..26b9c70e81 100644 --- a/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md +++ b/curriculum/challenges/espanol/24-b1-english-for-developers/learn-how-to-describe-places-and-events/66bbc147bc59c25e60e18aec.md @@ -48,7 +48,7 @@ If it were working correctly, Tom wouldn't say that it isn't showing. ## --video-solution-- -2 +3 # --explanation-- diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md b/curriculum/challenges/espanol/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md index 4e01db4fce..d83313a592 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-book-catalog-table/66ec4c8e9878d8441956516f.md @@ -18,7 +18,7 @@ Fulfill the user stories below and get all the tests to pass to complete the lab 1. Your table should have a table body element with at least five rows in it. 1. Each row in your table body should have four table data elements that display the book's Title, Author, Genre, and Publication Year. 1. Your table should have a table footer element with one row in it. -1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: [number of books in your table]`. +1. The row in your table footer element should have a table data element that spans four columns and has the text `Total Books: N` where `N` should be replaced by the number of books in your table. # --hints-- diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md b/curriculum/challenges/espanol/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md index bbfe90546d..bb91e70a7b 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-event-hub/66ebd4ae2812430bb883c787.md @@ -92,7 +92,7 @@ const secondLink = document.querySelectorAll('header nav ul li a')[1]; assert.exists(secondLink); ``` -The text of the first item in the unordered list should be `"Upcoming Events"`. +The text of the first item in the unordered list should be `Upcoming Events`. ```js const firstLink = document.querySelectorAll('header nav>ul>li>a')[0]; @@ -107,6 +107,13 @@ const hrefAttribute = anchorElement?.getAttribute("href"); assert.strictEqual(hrefAttribute, "#upcoming-events"); ``` +The text of the second item in the unordered list should be `Past Events`. + +```js +const secondLink = document.querySelectorAll('header nav>ul>li>a')[1]; +assert.strictEqual(secondLink.innerText, "Past Events"); +``` + The second item in the unordered list should have the `href` set to `#past-events`. ```js @@ -230,6 +237,22 @@ for (let img of imgElements) { } ``` +Each `h3` element should have the event title. + +```js +const eventTitles = document.querySelectorAll('h3'); +assert.isNotEmpty(eventTitles); +eventTitles.forEach((eventTitle => assert.isNotEmpty(eventTitle.innerText))); +``` + +Each `p` element shoud have the event description. + +```js +const eventDescriptions = document.querySelectorAll('p'); +assert.isNotEmpty(eventDescriptions); +eventDescriptions.forEach((eventDescription => assert.isNotEmpty(eventDescription.innerText))); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md b/curriculum/challenges/espanol/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md index 98e7891cd0..31f8c96df1 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-javascript-trivia-bot/66ed41f912d0bb1dc62da5dd.md @@ -72,20 +72,18 @@ You should use `let` to declare a new variable `codingFact`. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) assert.match(code, /let\s+codingFact/) -assert.include(first, 'let'); -assert.exists(first); ``` You should give `codingFact` a value that includes `favoriteLanguage` using concatenation. ```js const codeWithoutComments = __helpers.removeJSComments(code); -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) -assert.match(code, /let\scodingFact\s*=\s*("|').+?\1\s*\+\s*favoriteLanguage/) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) +assert.match(code, /let\scodingFact\s*=\s*("|')?.+?\1?\s*\+\s*favoriteLanguage/) assert.include(first, 'let'); assert.exists(first); +assert.isNotEmpty(codingFact); ``` You should log `codingFact` to the console. @@ -102,11 +100,12 @@ You should assign a new value to `codingFact` that also contains `favoriteLangua ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[4], favoriteLanguage); assert.notEqual(output[4], output[3]); assert.isAtLeast(loggingCodingFacts.length, 2); assert.exists(second); +assert.isNotEmpty(codingFact); ``` You should assign a value to `codingFact` for the third time that also contains `favoriteLanguage`, and log it to the console. @@ -114,12 +113,13 @@ You should assign a value to `codingFact` for the third time that also contains ```js const codeWithoutComments = __helpers.removeJSComments(code); const loggingCodingFacts = codeWithoutComments.match(/console\.log\(\s*codingFact\s*\)/g) -const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|').+?\2\s*\+\s*favoriteLanguage/g) +const [first, second, third] = codeWithoutComments.match(/(let )?\s*codingFact\s*=\s*("|')?.+?\2?\s*\+\s*favoriteLanguage/g) assert.include(output[5], favoriteLanguage); assert.notEqual(output[5], output[4]); assert.equal(output[5], codingFact); assert.lengthOf(loggingCodingFacts, 3); assert.exists(third); +assert.isNotEmpty(codingFact); ``` You should log to the console `"It was fun sharing these facts with you. Goodbye! - (botName) from (botLocation)."` using concatenation to add the values of the variables. diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md b/curriculum/challenges/espanol/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md index b877f975f7..7adc23cacf 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-markdown-to-html-converter/66f55eac933ff64ce654ca74.md @@ -134,6 +134,20 @@ const testH1 = testDiv.querySelector("h1") assert.notExists(testH1); ``` +When the value of `#markdown-input` is `# title 1\n# alternate title`, `convertMarkdown()` should return `

title 1

alternate title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "# title 1\n# alternate title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h1"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 1"); +assert.equal(headings[1].innerText, "alternate title"); +``` + When the value of `#markdown-input` is `## title 2`, `convertMarkdown()` should return `

title 2

`. ```js @@ -186,6 +200,20 @@ const testH2 = testDiv.querySelector("h2") assert.notExists(testH2); ``` +When the value of `#markdown-input` is `## title 2\n## title 2 alt`, `convertMarkdown()` should return `

title 2

title 2 alt

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "## title 2\n## title 2 alt"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h2"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 2"); +assert.equal(headings[1].innerText, "title 2 alt"); +``` + When the value of `#markdown-input` is `### title 3`, `convertMarkdown()` should return `

title 3

`. ```js @@ -238,6 +266,20 @@ const testH3 = testDiv.querySelector("h3") assert.notExists(testH3); ``` +When the value of `#markdown-input` is `### title 3\n### third title`, `convertMarkdown()` should return `

title 3

third title

`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "### title 3\n### third title"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const headings = testDiv.querySelectorAll("h3"); +assert.lengthOf(headings, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(headings[0].innerText, "title 3"); +assert.equal(headings[1].innerText, "third title"); +``` + When the value of `#markdown-input` is `**this is bold**`, `convertMarkdown()` should return `this is bold`. ```js @@ -279,17 +321,18 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` -When the value of `#markdown-input` is `__this is bold__`, `convertMarkdown()` should return `this is bold`. +When the value of `#markdown-input` is `**this is bold**\n**this is also bold**`, `convertMarkdown()` should return `this is boldthis is also bold`. ```js const input = document.querySelector("#markdown-input"); -input.value = "__this is bold__"; +input.value = "**this is bold**\n**this is also bold**"; const testDiv = document.createElement("div"); testDiv.innerHTML = convertMarkdown(); const strongs = testDiv.querySelectorAll("strong"); -assert.lengthOf(strongs, 1); -assert.lengthOf(testDiv.children, 1); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); ``` When the value of `#markdown-input` is `__this is bold__`, `this is bold` should be displayed inside `#html-output`. @@ -320,6 +363,20 @@ assert.lengthOf(preview.children, 1) assert.equal(strongs[0].innerText, "this is bold"); ``` +When the value of `#markdown-input` is `__this is bold__\n__this is also bold__`, `convertMarkdown()` should return `this is boldthis is also bold`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "__this is bold__\n__this is also bold__"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const strongs = testDiv.querySelectorAll("strong"); +assert.lengthOf(strongs, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(strongs[0].innerText, "this is bold"); +assert.equal(strongs[1].innerText, "this is also bold"); +``` + When the value of `#markdown-input` is `*this is italic*`, `convertMarkdown()` should return `this is italic`. ```js @@ -361,6 +418,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `*this is italic*\n*this is also italic*`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "*this is italic*\n*this is also italic*"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is `_this is italic_`, `convertMarkdown()` should return `this is italic`. ```js @@ -402,6 +473,20 @@ assert.lengthOf(preview.children, 1); assert.equal(italics[0].innerText, "this is italic"); ``` +When the value of `#markdown-input` is `_this is italic_\n_this is also italic_`, `convertMarkdown()` should return `this is italicthis is also italic`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "_this is italic_\n_this is also italic_"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const italics = testDiv.querySelectorAll("em"); +assert.lengthOf(italics, 2); +assert.lengthOf(testDiv.children, 2); +assert.equal(italics[0].innerText, "this is italic"); +assert.equal(italics[1].innerText, "this is also italic"); +``` + When the value of `#markdown-input` is either `# **title 1**` or `# __title 1__`, `convertMarkdown()` should return `

title 1

`. ```js @@ -529,6 +614,22 @@ assert.equal(imgs[0].alt, "alt-text"); assert.isTrue(imgs[0].src.endsWith("image-source")); ``` +When the value of `#markdown-input` is `![alt-text](image-source)\n![alt-text-2](image-source-2)`, `convertMarkdown()` should return `alt-textalt-text-2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "!![alt-text](image-source)\n![alt-text-2](image-source-2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const imgs = testDiv.querySelectorAll("img"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(imgs, 2); +assert.equal(imgs[0].alt, "alt-text"); +assert.isTrue(imgs[0].src.endsWith("image-source")); +assert.equal(imgs[1].alt, "alt-text-2"); +assert.isTrue(imgs[1].src.endsWith("image-source-2")); +``` + When the value of `#markdown-input` is `[link text](URL)`, `convertMarkdown()` should return `link text`. ```js @@ -573,6 +674,22 @@ assert.isTrue(anchors[0].href.endsWith("URL")); assert.equal(anchors[0].innerText, "link text"); ``` +When the value of `#markdown-input` is `[link text](URL)\n[link text 2](URL2)`, `convertMarkdown()` should return `link textlink text 2`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "[link text](URL)\n[link text 2](URL2)"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const anchors = testDiv.querySelectorAll("a"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(anchors, 2); +assert.isTrue(anchors[0].href.endsWith("URL")); +assert.equal(anchors[0].innerText, "link text"); +assert.isTrue(anchors[1].href.endsWith("URL2")); +assert.equal(anchors[1].innerText, "link text 2"); +``` + When the value of `#markdown-input` is `> this is a quote`, `convertMarkdown()` should return `
this is a quote
`. ```js @@ -614,6 +731,21 @@ assert.lengthOf(quotes, 1); assert.equal(quotes[0].innerText, "this is a quote"); ``` +When the value of `#markdown-input` is `> this is a quote\n> this is another quote`, `convertMarkdown()` should return `
this is a quote
this is another quote
`. + +```js +const input = document.querySelector("#markdown-input"); +input.value = "> this is a quote\n> this is another quote"; +const testDiv = document.createElement("div"); +testDiv.innerHTML = convertMarkdown(); +const quotes = testDiv.querySelectorAll("blockquote"); +assert.lengthOf(testDiv.children, 2); +assert.lengthOf(quotes, 2); +assert.equal(quotes[0].innerText, "this is a quote"); +assert.equal(quotes[1].innerText, "this is another quote"); +``` + + When the value of `#markdown-input` is `some text > not a quote anymore`, `convertMarkdown()` should not convert `> not a quote anymore` into a `blockquote` element. ```js diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md b/curriculum/challenges/espanol/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md index c2bc18d956..2691a60ccc 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-palindrome-checker/657bdc55a322aae1eac3838f.md @@ -68,7 +68,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store inputEl.value = ''; inputEl.dispatchEvent(new Event('change')) checkBtn.click(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please input a value'); ``` When the `#text-input` element only contains the letter `A` and the `#check-btn` element is clicked, the `#result` element should contain the text `"A is a palindrome"`. diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md b/curriculum/challenges/espanol/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md index 493cc70725..6175babe4c 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-project-idea-board/67051431a73f1ca25d9a6f25.md @@ -215,7 +215,7 @@ techProjects.unpin(smartHome); assert.isEmpty(techProjects.ideas); ``` -When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 ideas\n`. +When `new ProjectIdeaBoard("Empty Board")` is empty, `emptyBoard.formatToString()` should return `Empty Board has 0 idea(s)\n`. ```js diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md b/curriculum/challenges/espanol/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md index fa84659077..9fccd403f1 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-travel-agency-page/669e2f60e83c011754f711f9.md @@ -233,7 +233,7 @@ Each `img` element should have a valid `src` attribute. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.src.length, 0); + assert.isAbove(image.src.trim().length, 0); } ``` @@ -243,7 +243,7 @@ Each `img` element should have an `alt` attribute with an appropriate value. const images = document.querySelectorAll('img'); assert.isNotEmpty(images); for (let image of images) { - assert.isAbove(image.alt.length, 0); + assert.isAbove(image.alt.trim().length, 0); } ``` diff --git a/curriculum/challenges/espanol/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md b/curriculum/challenges/espanol/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md index 688f10f20c..4391ad52e4 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md +++ b/curriculum/challenges/espanol/25-front-end-development/lab-video-compilation-page/669e81368e52b3a5c35a2dc5.md @@ -13,10 +13,11 @@ Fulfill the user stories below and get all the tests to pass to complete the lab **Instrucciones:** -1. You should have a `main` element. +1. You should have a `main` element as the only child of the `body` element. 1. You should have an `h1` element with the topic of your page. 1. You should have a paragraph introducing the topic of your page below your `h1` element. -1. You should have three `section` elements, each containing an `h2` element, a paragraph, and an `iframe` element. +1. You should have three `section` elements below your first paragraph. +1. Each section should contain an `h2` element, a paragraph, and an `iframe` element, in this order. 1. The three `iframe` elements should have a `src` attribute set to a valid video. 1. Each `iframe` element should also have a `title` attribute to describe the embedded content, and a `height` attribute and a `width` attribute to set the element to a proper size. diff --git a/curriculum/challenges/espanol/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md b/curriculum/challenges/espanol/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md index 59beabf4e9..1ecd98c26e 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md +++ b/curriculum/challenges/espanol/25-front-end-development/lecture-importance-of-semantic-html/672995ffdfd2f337f5f215f8.md @@ -34,7 +34,7 @@ Review the beginning of the video where the `superscript` element is discussed. --- -To display text as a `superscript` above the normal line of text. +To display text as a superscript above the normal line of text. --- diff --git a/curriculum/challenges/espanol/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md b/curriculum/challenges/espanol/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md index 184b714b4c..bf1a439064 100644 --- a/curriculum/challenges/espanol/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md +++ b/curriculum/challenges/espanol/25-front-end-development/lecture-what-is-html/66f6db08d55022680a3cfbc9.md @@ -22,7 +22,7 @@ HyperText Maker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -30,7 +30,7 @@ HyperText Marker Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- @@ -38,7 +38,7 @@ HyperText Markdown Language ### --feedback-- -Focus on the term for describing the structure and presentation of web pages. +Review the first ten seconds of the lecture video where this was discussed. --- diff --git a/curriculum/challenges/espanol/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md b/curriculum/challenges/espanol/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md index 0f867d3ad9..06e0471e54 100644 --- a/curriculum/challenges/espanol/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md +++ b/curriculum/challenges/espanol/25-front-end-development/quiz-basic-css/66ed8fa2f45ce3ece4053eab.md @@ -307,19 +307,19 @@ Given the following selectors, which has the lowest specificity? #### --distractors-- -`h1` +`#id` --- -`#id` +`.class` --- -`p` +`div h1` #### --answer-- -`div` +`h1` ### --question-- diff --git a/curriculum/challenges/espanol/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md b/curriculum/challenges/espanol/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md index 1c191914a8..911dd9f72d 100644 --- a/curriculum/challenges/espanol/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md +++ b/curriculum/challenges/espanol/25-front-end-development/quiz-css-colors/66ed8fe1f45ce3ece4053eb1.md @@ -205,11 +205,11 @@ Which of these functions allows specifying the transparency of a color? --- -`rgba()` +`alpha()` #### --answer-- -`opacity()` +`rgba()` ### --question-- @@ -419,7 +419,7 @@ Which of the following is the correct syntax to create a CSS variable with a fal ```css .element { - color: var(--main-color, red); + color: var(--main-color; red); } ``` diff --git a/curriculum/challenges/espanol/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md b/curriculum/challenges/espanol/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md index e3ab555833..c687e078a1 100644 --- a/curriculum/challenges/espanol/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md +++ b/curriculum/challenges/espanol/25-front-end-development/quiz-design-fundamentals/66ed901ff45ce3ece4053eba.md @@ -69,7 +69,7 @@ A single-page portfolio site. --- -A complex e-commerce site with multiple categories and subcategories. +An infinite scroll gallery site. --- diff --git a/curriculum/challenges/espanol/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md b/curriculum/challenges/espanol/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md index 2f77b05e5b..87c236a90f 100644 --- a/curriculum/challenges/espanol/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md +++ b/curriculum/challenges/espanol/25-front-end-development/review-javascript-functional-programming/6723d2c154dd19d0025f7cd9.md @@ -24,7 +24,7 @@ Review the concepts below to prepare for the upcoming quiz. - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/espanol/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md b/curriculum/challenges/espanol/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md index 3343a69ca7..6e9e133430 100644 --- a/curriculum/challenges/espanol/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md +++ b/curriculum/challenges/espanol/25-front-end-development/review-javascript/6723d3cfdd0717d3f1bf27e3.md @@ -2611,7 +2611,7 @@ In the above example, the `findFactorial` function is called recursively until ` - Currying is a functional programming technique that transforms a function with multiple arguments into a sequence of functions, each taking a single argument. -Here is an example of a regualr function vs a curried function: +Here is an example of a regular function vs a curried function: ```js // Regular function diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md b/curriculum/challenges/espanol/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md index a704027e23..19a9832c7a 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-cafe-menu/5f356ed6cf6eab5f15f5cfe6.md @@ -37,6 +37,11 @@ Tu etiqueta `div` debe estar anidado dentro del `body`. assert.equal(document.querySelector('div')?.parentElement?.tagName, 'BODY'); ``` +You should move all the other elements inside the new `div`. + +```js +assert.lengthOf(document.querySelector('body > div#menu > main')?.children, 3); +``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md b/curriculum/challenges/espanol/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md index d2bb03e2a8..32e848f14d 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-calculator/66cc0a9e06e00b75d6782be9.md @@ -13,7 +13,7 @@ Here is a reminder of how to call a function: ```js function myFunction() { - return 'Hello World'; + return "Hello World"; } // function call diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md b/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md index 06b4be5a16..0b98e7082b 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/64475c0b61cddb6feaab4e2e.md @@ -31,7 +31,7 @@ window.alert = (message) => alertMessage = message; // Override alert and store numberInput.value = ''; checkUserInput(); -assert.strictEqual(alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); +assert.strictEqual(alertMessage?.trim().replace(/[.,?!]+$/g, '').toLowerCase(), 'please provide a decimal number greater than or equal to 0'); ``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md b/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md index 36568bfc1d..1bcc7a9900 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-decimal-to-binary-converter/6464b1384318a5087190950a.md @@ -9,7 +9,7 @@ dashedName: step-104 Now that you've targeted the correct element, you can update its text after the delay you specified earlier. -Using the `.getElementById()` method, set the `textContent` property of the targeted element equal to the `msg` property of the current object. +Set the `textContent` property of the targeted element equal to the `msg` property of the current object by using property chaining on your `.getElementById()` method directly. # --hints-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md b/curriculum/challenges/espanol/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md index e09ec4a88b..8b39c1fcd3 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-hotel-feedback-form/66a84111965a0c46df6bbd0a.md @@ -18,7 +18,7 @@ The `for` attribute on the `label` element should match the `id` attribute on th Below your `legend` element, add a `label` element with the text of `Name (required):`. For the `for` attribute, set it to the value of `"full-name"`. -Then below your `legend` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. +Then below your `label` element, add an `input` element with no attributes. In the next steps, you will add the necessary attributes. # --hints-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md index a010c6c140..408895d618 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5630.md @@ -13,30 +13,76 @@ You should now push the three objects into the `recipes` array. To do thus, you Use the `push()` method to push all the recipe objects into the `recipes` array. Make sure to push `recipe1`, `recipe2`, and `recipe3` in that order. +Also delete the `recipe1Name`, `recipe2Name`, `recipe1CookingTime`, and `recipe2CookingTime` variables, and the `console.log` statements which log those variables. + # --hints-- -You should remove `recipe1Name` and its console log. +You should remove the `recipe1Name` variable. + +```js +try { + recipe1Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1Name is not defined'); +} +``` + +You should remove the `console.log(recipe1Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1Name\s*\)\s*;?/); +``` + +You should remove the `recipe2Name` variable. + +```js +try { + recipe2Name; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2Name is not defined'); +} +``` + +You should remove the `console.log(recipe2Name);` statement. + +```js +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2Name\s*\)\s*;?/); +``` + +You should remove the `recipe1CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1Name\s*=\s*recipe1\.name;?\s*console\.log\(recipe1Name\);?/) +try { + recipe1CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe1CookingTime is not defined'); +} ``` -You should remove `recipe2Name` and its console log. +You should remove the `console.log(recipe1CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2Name\s*=\s*recipe2\.name;?\s*console\.log\(recipe2Name\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe1CookingTime\s*\)\s*;?/); ``` -You should remove `recipe1CookingTime` and its console log. +You should remove the `recipe2CookingTime` variable. ```js -assert.notMatch(code, /const\s*recipe1CookingTime\s*=\s*recipe1\.cookingTime;?\s*console\.log\(recipe1CookingTime\);?/) +try { + recipe2CookingTime; + assert.fail('Variable is defined/declared'); +} catch (e) { + assert.include(e?.message, 'recipe2CookingTime is not defined'); +} ``` -You should remove `recipe2CookingTime` and its console log. +You should remove the `console.log(recipe2CookingTime);` statement. ```js -assert.notMatch(code, /const\s*recipe2CookingTime\s*=\s*recipe2\.cookingTime;?\s*console\.log\(recipe2CookingTime\);?/) +assert.notMatch(__helpers.removeJSComments(code), /console\s*\.\s*log\s*\(\s*recipe2CookingTime\s*\)\s*;?/); ``` You should push all the recipes objects into the `recipes` array. Make sure to push them in the order they are declared. diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md index 292feedbae..6ca14f2a2a 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5631.md @@ -9,7 +9,7 @@ dashedName: step-7 Now, you should work on calculating the `averageRating`, `totalIngredients`, and the `difficultyLevel` for each recipe in the `recipes` array. -Start by creating a `getAverageRating` function that takes a `ratings` parameter. Inside the function, calculate the average rating using the items in the `ratings` property of each recipe. +Start by creating a `getAverageRating` function that takes a single argument, which is an array with ratings. Inside the function, calculate the average rating from the array passed to the function. Your `getAverageRating` function must return a number. @@ -21,10 +21,10 @@ You should create a `getAverageRating` function. assert.isFunction(getAverageRating) ``` -Your `getAverageRating` function should have a `ratings` parameter. +Your `getAverageRating` function should have a single parameter. ```js -assert.match(getAverageRating.toString(), /ratings/); +assert.lengthOf(getAverageRating, 1); ``` Your `getAverageRating` function should return a number. @@ -33,30 +33,22 @@ Your `getAverageRating` function should return a number. assert.isNumber(getAverageRating(recipe1.ratings)) ``` -You `getAverageRating` function should return a number when the average rating is `4.00`. +`getAverageRating(recipe1.ratings)` should return `4.5`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe1.ratings), 4.5) ``` -You `getAverageRating` function should return a number when the average rating is `4.75`. +`getAverageRating(recipe2.ratings)` should return `4.75`. ```js -assert.isNumber(getAverageRating(recipe2.ratings)) +assert.strictEqual(getAverageRating(recipe2.ratings), 4.75) ``` -You `getAverageRating` function should return a number when the average rating is `4.50`. +`getAverageRating(recipe3.ratings)` should return `4`. ```js -assert.isNumber(getAverageRating(recipe1.ratings)) -``` - -Your `getAverageRating` function should return the correct rating. - -```js -assert.equal(getAverageRating(recipe1.ratings), 4.50) -assert.equal(getAverageRating(recipe2.ratings), 4.75) -assert.equal(getAverageRating(recipe3.ratings), 4.00) +assert.strictEqual(getAverageRating(recipe3.ratings), 4) ``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md index ace358ab7f..6d190332d1 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5632.md @@ -7,7 +7,7 @@ dashedName: step-8 # --description-- -Create a `getTotalIngredients` function that takes an `ingredients` parameter. This function should return the number of ingredients for each recipe by returning the length of the `ingredients` array. +Create a `getTotalIngredients` function that takes a single argument, representing an array with ingredients, and returns the number of ingredients from the array passed to the function. # --hints-- @@ -17,10 +17,10 @@ You should create a `getTotalIngredients` function. assert.isFunction(getTotalIngredients) ``` -You `getTotalIngredients` function should have an `ingredients` parameter. +Your `getTotalIngredients` function should have a single parameter. ```js -assert.match(getTotalIngredients.toString(), /ingredients/); +assert.lengthOf(getTotalIngredients, 1); ``` Your `getTotalIngredients` function should return a number. @@ -29,30 +29,22 @@ Your `getTotalIngredients` function should return a number. assert.isNumber(getTotalIngredients(recipe1.ingredients)) ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `5`. +`getTotalIngredients(recipe1.ingredients)` should return `4`. ```js -assert.isNumber(getTotalIngredients(recipe2.ingredients)) +assert.strictEqual(getTotalIngredients(recipe1.ingredients), 4); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `3`. +`getTotalIngredients(recipe2.ingredients)` should return `5`. ```js -assert.isNumber(getTotalIngredients(recipe3.ingredients)) +assert.strictEqual(getTotalIngredients(recipe2.ingredients), 5); ``` -Your `getTotalIngredients` function should return a number when the total ingrendients is `4`. +`getTotalIngredients(recipe3.ingredients)` should return `3`. ```js -assert.isNumber(getTotalIngredients(recipe1.ingredients)) -``` - -Your `getTotalIngredients` function should return the correct number of ingredients. - -```js -assert.equal(getTotalIngredients(recipe1.ingredients), 4) -assert.equal(getTotalIngredients(recipe2.ingredients), 5) -assert.equal(getTotalIngredients(recipe3.ingredients), 3) +assert.strictEqual(getTotalIngredients(recipe3.ingredients), 3); ``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md index c686ff0e9a..7056df9e9b 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5633.md @@ -7,9 +7,9 @@ dashedName: step-9 # --description-- -Create a `getDifficultyLevel` function that takes `cookingTime` as a parameter. +Create a `getDifficultyLevel` function that takes a number indicating the cooking time as a parameter. -If `cookingTime` is less than `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. +If the cooking time is less than or equal to `30`, the function should return `"easy"`. If it is less than or equal to `60`, the function should return `"medium"`. Otherwise, the function should return `"hard"`. # --hints-- @@ -19,13 +19,13 @@ You should create a `getDifficultyLevel` function. assert.isFunction(getDifficultyLevel) ``` -You `getDifficultyLevel` function should have a `cookingTime` parameter. +Your `getDifficultyLevel` function should have a single parameter. ```js -assert.match(getDifficultyLevel.toString(), /cookingTime/); +assert.lengthOf(getDifficultyLevel, 1); ``` -Your `getDifficultyLevel` function should return `"easy"` when the `cookingTime` is less than or equal to `30`. +Your `getDifficultyLevel` function should return `"easy"` when the cooking time is less than or equal to `30`. ```js assert.strictEqual(getDifficultyLevel(10), "easy") @@ -34,7 +34,7 @@ assert.strictEqual(getDifficultyLevel(29), "easy") assert.strictEqual(getDifficultyLevel(30), "easy") ``` -Your `getDifficultyLevel` function should return `"medium"` when the `cookingTime` is greater than `31` and less than `60`. +Your `getDifficultyLevel` function should return `"medium"` when the cooking time is greater than `31` and less than or equal to `60`. ```js assert.strictEqual(getDifficultyLevel(31), "medium") @@ -43,7 +43,7 @@ assert.strictEqual(getDifficultyLevel(50), "medium") assert.strictEqual(getDifficultyLevel(60), "medium") ``` -Your `getDifficultyLevel` function should return `"hard"` when the `cookingTime` is greater than `60`. +Your `getDifficultyLevel` function should return `"hard"` when the cooking time is greater than `60`. ```js assert.strictEqual(getDifficultyLevel(61), "hard") diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md index 3a34c4658f..48de895967 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5635.md @@ -9,46 +9,44 @@ dashedName: step-11 You can now fill in each item of the `recipes` array with values for the `averageRating`, `totalIngredients`, and `difficultyLevel` properties. -To do this, access the `averageRating`, `totalIngredients`, and `difficultyLevel` properties of each recipe object and assign them the results of the corresponding function calls with the appropriate arguments. - -For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate function calls and arguments. +For now, access the `averageRating`, `totalIngredients`, and `difficultyLevel` of `recipe1` and set them to the appropriate results of function calls and arguments. # --hints-- You should access the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating/) +assert.isNotNull(recipe1.averageRating); ``` -You should set the `averageRating` of `recipe1` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe1.ratings` to the `averageRating` property of `recipe1`. ```js -assert.match(code, /recipe1\.averageRating\s*=\s*getAverageRating\(recipe1\.ratings\);?/) +assert.strictEqual(recipe1.averageRating, getAverageRating(recipe1.ratings)); ``` You should access the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients/) +assert.isNotNull(recipe1.totalIngredients); ``` -You should set the `totalIngredients` of `recipe1` you accessed to the calling of `getTotalIngredients` with `recipe1.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe1.ingredients` to the `totalIngredients` property of `recipe1`. ```js -assert.match(code, /recipe1\.totalIngredients\s*=\s*getTotalIngredients\(recipe1\.ingredients\);?/) +assert.strictEqual(recipe1.totalIngredients, getTotalIngredients(recipe1.ingredients)); ``` You should access the `difficultyLevel` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel/) +assert.isNotEmpty(recipe1.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe1` you accessed to the calling of `getDifficultyLevel` with `recipe1.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe1.cookingTime` to the `cookingTime` property of `recipe1`. ```js -assert.match(code, /recipe1\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe1\.cookingTime\);?/) +assert.strictEqual(recipe1.difficultyLevel, getDifficultyLevel(recipe1.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md index bd9aceddf5..8f45a98cbd 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/66fbcf750a62784cf11f5636.md @@ -14,37 +14,37 @@ Repeat the process for the `averageRating`, `totalIngredients`, and `difficultyL You should access the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating/) +assert.isNotNull(recipe2.averageRating); ``` -You should set the `averageRating` of `recipe2` you accessed to the calling of `getAverageRating` with `recipe1.ratings` as its parameter. +You should assign the result of calling `getAverageRating` with `recipe2.ratings` to the `averageRating` property of `recipe2`. ```js -assert.match(code, /recipe2\.averageRating\s*=\s*getAverageRating\(recipe2\.ratings\);?/) +assert.strictEqual(recipe2.averageRating, getAverageRating(recipe2.ratings)); ``` You should access the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients/) +assert.isNotNull(recipe2.totalIngredients); ``` -You should set the `totalIngredients` of `recipe2` you accessed to the calling of `getTotalIngredients` with `recipe2.ingredients` as its parameter. +You should assign the result of calling `getTotalIngredients` with `recipe2.ingredients` to the `totalIngredients` property of `recipe2`. ```js -assert.match(code, /recipe2\.totalIngredients\s*=\s*getTotalIngredients\(recipe2\.ingredients\);?/) +assert.strictEqual(recipe2.totalIngredients, getTotalIngredients(recipe2.ingredients)); ``` You should access the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel/) +assert.isNotEmpty(recipe2.difficultyLevel); ``` -You should set the `difficultyLevel` of `recipe2` you accessed to the calling of `getDifficultyLevel` with `recipe2.cookingTime` as its parameter. +You should assign the result of calling `getDifficultyLevel` with `recipe2.cookingTime` to the `difficultyLevel` property of `recipe2`. ```js -assert.match(code, /recipe2\.difficultyLevel\s*=\s*getDifficultyLevel\(recipe2\.cookingTime\);?/) +assert.strictEqual(recipe2.difficultyLevel, getDifficultyLevel(recipe2.cookingTime)); ``` # --seed-- diff --git a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md index dc26e12dbe..5577460076 100644 --- a/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md +++ b/curriculum/challenges/espanol/25-front-end-development/workshop-recipe-tracker/670e4f45f7116c0f216a5177.md @@ -33,73 +33,73 @@ Make sure all the variables you created are logged to the console. You should create a `recipe1Name` variable. ```js -assert.isNotNull(recipe1Name) +assert.isDefined(recipe1Name); ``` -You should set your `recipe1Name` variable to the accessment of the `name` property of `recipe1`. +You should assign the value of the `name` property of `recipe1` to your `recipe1name` variable. ```js -assert.match(code, /recipe1\.name|recipe1\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe1Name, recipe1.name); ``` You should log `recipe1Name` to the console. ```js -assert.match(code, /console\.log\(recipe1Name\)/) +assert.match(code, /console\.log\(\s*recipe1Name\s*\)/); ``` You should create a `recipe2Name` variable. ```js -assert.isNotNull(recipe2Name) +assert.isDefined(recipe2Name); ``` -You should set your `recipe2Name` variable to the accessment of the `name` property of `recipe2`. +You should assign the value of the `name` property of `recipe2` to your `recipe2name` variable. ```js -assert.match(code, /recipe2\.name|recipe2\[("|'|`)name("|'|`)\]/) +assert.strictEqual(recipe2Name, recipe2.name); ``` You should log `recipe2Name` to the console. ```js -assert.match(code, /console\.log\(recipe2Name\)/) +assert.match(code, /console\.log\(recipe2Name\)/); ``` You should create a `recipe1CookingTime` variable. ```js -assert.isNotNull(recipe1CookingTime) +assert.isDefined(recipe1CookingTime); ``` -You should set your `recipe1CookingTime` variable to the accessment of the `cookingTime` property of `recipe1`. +You should assign the value of the `cookingTime` property of `recipe1` to your `recipe1CookingTime` variable. ```js -assert.match(code, /recipe1\.cookingTime|recipe1\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe1CookingTime, recipe1.cookingTime); ``` You should log `recipe1CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe1CookingTime\)/) +assert.match(code, /console\.log\(recipe1CookingTime\)/); ``` You should create a `recipe2CookingTime` variable. ```js -assert.isNotNull(recipe2CookingTime) +assert.isDefined(recipe2CookingTime); ``` -You should set your `recipe2CookingTime` variable to the accessment of the `cookingTime` property of `recipe2`. +You should assign the value of the `cookingTime` property of `recipe2` to your `recipe2CookingTime` variable. ```js -assert.match(code, /recipe2\.cookingTime|recipe2\[("|'|`)cookingTime("|'|`)\]/) +assert.strictEqual(recipe2CookingTime, recipe2.cookingTime); ``` You should log `recipe2CookingTime` to the console. ```js -assert.match(code, /console\.log\(recipe2CookingTime\)/) +assert.match(code, /console\.log\(recipe2CookingTime\)/); ``` # --seed-- diff --git a/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml b/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml index a80dd7a7be..ffdff4d3c8 100644 --- a/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml +++ b/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-certification/javascript-algorithms-and-data-structures-certification.yml @@ -1,5 +1,5 @@ id: 561abd10cb81ac38a17513bc -title: Certificazione algoritmi e strutture dati in JavaScript +title: Legacy JavaScript Algorithms and Data Structures Certification certification: javascript-algorithms-and-data-structures challengeType: 7 isPrivate: true diff --git a/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-v8/javascript-algorithms-and-data-structures-certification-v8.yml b/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-v8/javascript-algorithms-and-data-structures-certification-v8.yml index 820e11e75c..3e19d07bc1 100644 --- a/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-v8/javascript-algorithms-and-data-structures-certification-v8.yml +++ b/curriculum/challenges/italian/00-certifications/javascript-algorithms-and-data-structures-v8/javascript-algorithms-and-data-structures-certification-v8.yml @@ -1,5 +1,5 @@ id: 658180220947283cdc0689ce -title: Certificazione algoritmi e strutture dati in JavaScript (beta) +title: JavaScript Algorithms and Data Structures Certification certification: javascript-algorithms-and-data-structures-v8 challengeType: 7 isPrivate: true diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-a-negative-margin-to-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-a-negative-margin-to-an-element.md index aab0241fb3..d6bd65c807 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-a-negative-margin-to-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-a-negative-margin-to-an-element.md @@ -24,7 +24,9 @@ Imposta il `margin` del riquadro blu a `-15px`, in modo che riempia l'intera lar La tua classe `blue-box` dovrebbe dare `-15px` di `margin` agli elementi. ```js -assert($('.blue-box').css('margin-top') === '-15px'); +const blueBox = document.querySelector('.blue-box'); +const marginTop = window.getComputedStyle(blueBox)["margin-top"]; +assert.strictEqual(marginTop, "-15px"); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-borders-around-your-elements.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-borders-around-your-elements.md index 425dcfade1..51d36422da 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-borders-around-your-elements.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-borders-around-your-elements.md @@ -38,35 +38,42 @@ Remember that you can apply multiple classes to an element using its `class` att Your `img` element should have the class `smaller-image`. ```js -assert($('img').hasClass('smaller-image')); +assert.isTrue(document.querySelector('img').classList.contains('smaller-image')); ``` Your `img` element should have the class `thick-green-border`. ```js -assert($('img').hasClass('thick-green-border')); +assert.isTrue(document.querySelector('img').classList.contains('thick-green-border')); ``` Your image should have a border width of `10px`. ```js -assert( - $('img').hasClass('thick-green-border') && - parseInt($('img').css('border-top-width'), 10) >= 8 && - parseInt($('img').css('border-top-width'), 10) <= 12 -); +// Note: to any future maintainers, the read width of the border is dependent on +// the zoom. For example we cannot match 10px exactly because if a campers set the zoom to 110% +// it will be read as 9~px. +const image = document.querySelector('img'); +const imageBorderTopWidth = window.getComputedStyle(image)["border-top-width"]; +const widthNumber = parseInt(imageBorderTopWidth); +assert.isAtLeast(widthNumber, 8); +assert.isAtMost(widthNumber, 12); ``` Your image should have a border style of `solid`. ```js -assert($('img').css('border-right-style') === 'solid'); +const image = document.querySelector('img'); +const borderRightStyle = window.getComputedStyle(image)["border-right-style"]; +assert.strictEqual(borderRightStyle, 'solid'); ``` The border around your `img` element should be green. ```js -assert($('img').css('border-left-color') === 'rgb(0, 128, 0)'); +const image = document.querySelector('img'); +const borderLeftColor = window.getComputedStyle(image)["border-left-color"]; +assert.strictEqual(borderLeftColor, 'rgb(0, 128, 0)'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element.md index 985e6b6f67..42ce1ec38b 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-margins-to-each-side-of-an-element.md @@ -22,25 +22,33 @@ Dài al riquadro blu un `margin` di `40px` sul lato superiore e sinistro, ma di La tua classe `blue-box` dovrebbe dare alla parte superiore degli elementi `40px` di `margin`. ```js -assert($('.blue-box').css('margin-top') === '40px'); +const blueBox = document.querySelector('.blue-box'); +const marginTop = window.getComputedStyle(blueBox)['margin-top']; +assert.strictEqual(marginTop, '40px'); ``` La tua classe `blue-box` dovrebbe dare alla parte destra degli elementi `20px` di `margin`. ```js -assert($('.blue-box').css('margin-right') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const marginRight = window.getComputedStyle(blueBox)['margin-right']; +assert.strictEqual(marginRight, '20px'); ``` La tua classe `blue-box` dovrebbe dare alla parte inferiore degli elementi `20px` di `margin`. ```js -assert($('.blue-box').css('margin-bottom') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const marginBottom = window.getComputedStyle(blueBox)['margin-bottom']; +assert.strictEqual(marginBottom, '20px'); ``` La tua classe `blue-box` dovrebbe dare alla parte sinistra degli elementi `40px` di `margin`. ```js -assert($('.blue-box').css('margin-left') === '40px'); +const blueBox = document.querySelector('.blue-box'); +const marginLeft = window.getComputedStyle(blueBox)['margin-left']; +assert.strictEqual(marginLeft,'40px'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element.md index 2b41f41ef4..4e8418b60a 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-different-padding-to-each-side-of-an-element.md @@ -22,25 +22,33 @@ Assegna al riquadro blu un `padding` di `40px` sul lato superiore e sinistro, ma La tua classe `blue-box` dovrebbe dare alla parte superiore degli elementi `40px` di `padding`. ```js -assert($('.blue-box').css('padding-top') === '40px'); +const blueBox = document.querySelector('.blue-box'); +const paddingTop = window.getComputedStyle(blueBox)['padding-top']; +assert.strictEqual(paddingTop, '40px'); ``` La tua classe `blue-box` dovrebbe dare alla parte destra degli elementi `20px` di `padding`. ```js -assert($('.blue-box').css('padding-right') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const paddingRight = window.getComputedStyle(blueBox)['padding-right']; +assert.strictEqual(paddingRight, '20px'); ``` La tua classe `blue-box` dovrebbe dare alla parte inferiore degli elementi `20px` di `padding`. ```js -assert($('.blue-box').css('padding-bottom') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const paddingBottom = window.getComputedStyle(blueBox)['padding-bottom']; +assert.strictEqual(paddingBottom, '20px'); ``` La tua classe `blue-box` dovrebbe dare alla parte sinistra degli elementi `40px` di `padding`. ```js -assert($('.blue-box').css('padding-left') === '40px'); +const blueBox = document.querySelector('.blue-box'); +const paddingLeft = window.getComputedStyle(blueBox)['padding-left']; +assert.strictEqual(paddingLeft, '40px'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-rounded-corners-with-border-radius.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-rounded-corners-with-border-radius.md index e237df68e5..cd135f9d0d 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-rounded-corners-with-border-radius.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/add-rounded-corners-with-border-radius.md @@ -22,18 +22,23 @@ Puoi specificare un `border-radius` in pixel. Dai alla foto del gatto un `border Il tuo elemento img dovrebbe avere la classe `thick-green-border`. ```js -assert($('img').hasClass('thick-green-border')); +assert.isTrue(document.querySelector('img').classList.contains('thick-green-border')); ``` La tua immagine dovrebbe avere un border radius di `10px`. ```js -assert( - $('img').css('border-top-left-radius') === '10px' && - $('img').css('border-top-right-radius') === '10px' && - $('img').css('border-bottom-left-radius') === '10px' && - $('img').css('border-bottom-right-radius') === '10px' -); +const image = document.querySelector('img'); +const style = window.getComputedStyle(image); +const borderTopLeftRadius = style['border-top-left-radius']; +const borderTopRightRadius = style['border-top-right-radius']; +const borderBottomLeftRadius = style['border-bottom-left-radius']; +const borderBottomRightRadius = style['border-bottom-right-radius']; + +assert.strictEqual(borderTopLeftRadius, '10px'); +assert.strictEqual(borderTopRightRadius, '10px'); +assert.strictEqual(borderBottomLeftRadius, '10px'); +assert.strictEqual(borderBottomRightRadius, '10px'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-margin-of-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-margin-of-an-element.md index 027345a1c7..7d09f770b3 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-margin-of-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-margin-of-an-element.md @@ -24,7 +24,9 @@ Cambia il `margin` del riquadro blu per farlo corrispondere a quello del riquadr La tua classe `blue-box` dovrebbe dare agli elementi `20px` di `margin`. ```js -assert($('.blue-box').css('margin-top') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const marginTop = window.getComputedStyle(blueBox)['margin-top']; +assert.strictEqual(marginTop, '20px'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-padding-of-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-padding-of-an-element.md index ab5d97d3c0..6bc8bd53f8 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-padding-of-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/adjust-the-padding-of-an-element.md @@ -30,7 +30,9 @@ Cambia il `padding` del riquadro blu per farlo corrispondere a quello del riquad La tua classe `blue-box` dovrebbe dare agli elementi `20px` di `padding`. ```js -assert($('.blue-box').css('padding-top') === '20px'); +const blueBox = document.querySelector('.blue-box'); +const paddingTop = window.getComputedStyle(blueBox)['padding-top']; +assert.strictEqual(paddingTop, '20px'); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable.md index 1d49492240..a8ed8ae6c7 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/attach-a-fallback-value-to-a-css-variable.md @@ -30,21 +30,13 @@ It looks like there is a problem with the variables supplied to the `.penguin-to The fallback value of `black` should be used in the `background` property of the `penguin-top` class. ```js -assert( - code.match( - /.penguin-top\s*?{[\s\S]*background\s*?:\s*?var\(\s*?--pengiun-skin\s*?,\s*?black\s*?\)\s*?;[\s\S]*}[\s\S]*.penguin-bottom\s{/gi - ) -); +assert.match(__helpers.removeCssComments(code), /.penguin-top\s*?{[\s\S]*background\s*?:\s*?var\(\s*?--pengiun-skin\s*?,\s*?black\s*?\)\s*?;[\s\S]*}[\s\S]*.penguin-bottom\s{/gi); ``` The fallback value of `black` should be used in `background` property of the `penguin-bottom` class. ```js -assert( - code.match( - /.penguin-bottom\s*?{[\s\S]*background\s*?:\s*?var\(\s*?--pengiun-skin\s*?,\s*?black\s*?\)\s*?;[\s\S]*}/gi - ) -); +assert.match(__helpers.removeCssComments(code), /.penguin-bottom\s*?{[\s\S]*background\s*?:\s*?var\(\s*?--pengiun-skin\s*?,\s*?black\s*?\)\s*?;[\s\S]*}/gi); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-a-variable-for-a-specific-area.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-a-variable-for-a-specific-area.md index eb9a5b4eb6..bb8bb5aa2a 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-a-variable-for-a-specific-area.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-a-variable-for-a-specific-area.md @@ -22,17 +22,13 @@ Cambia il valore di `--penguin-belly` in `white` nella classe `penguin`. La classe `penguin` dovrebbe riassegnare alla variabile `--penguin-belly` il valore `white`. ```js -assert( - code.match(/\.penguin\s*?{[\s\S]*--penguin-belly\s*?:\s*?white\s*?;[\s\S]*}/gi) -); +assert.match(__helpers.removeCssComments(code), /\.penguin\s*?{[\s\S]*--penguin-belly\s*?:\s*?white\s*?;[\s\S]*}/gi); ``` La classe `penguin` non dovrebbe contenere la proprietà `background-color`. ```js -assert( - code.match(/^((?!background-color\s*?:\s*?)[\s\S])*$/g) -); +assert.match(__helpers.removeCssComments(code), /^((?!background-color\s*?:\s*?)[\s\S])*$/g); ``` diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-color-of-text.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-color-of-text.md index 1ec9e8ca66..597cd0f5dc 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-color-of-text.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-color-of-text.md @@ -32,19 +32,19 @@ Change your `h2` element's style so that its text color is red. Your `h2` element should have a `style` declaration. ```js -assert($('h2').attr('style')); +assert.exists(document.querySelector('h2').getAttribute('style')); ``` Your `h2` element should have color set to `red`. ```js -assert($('h2')[0].style.color === 'red'); +assert.strictEqual(document.querySelector('h2').style.color, 'red'); ``` Your `style` declaration should end with a `;` . ```js -assert($('h2').attr('style') && $('h2').attr('style').endsWith(';')); +assert.isTrue(document.querySelector('h2').getAttribute('style').endsWith(';')); ``` # --seed-- diff --git a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-font-size-of-an-element.md b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-font-size-of-an-element.md index 9c5e32d01a..757c0c02d1 100644 --- a/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-font-size-of-an-element.md +++ b/curriculum/challenges/italian/01-responsive-web-design/basic-css/change-the-font-size-of-an-element.md @@ -26,7 +26,7 @@ All'interno dello stesso tag `
- Quincy Larson's profile picture + Quincy Larson's profile picture

Quincy Larson

@ossia

@@ -236,18 +257,17 @@ assert($('.stats').css('display') == 'flex');
-

I meet so many people who are in search of that one trick that will help them work smart. Even if you work smart, you still have to work hard.

+

+ I meet so many people who are in search of that one trick that will help + them work smart. Even if you work smart, you still have to work hard. +

1:32 PM - 12 Jan 2018 -
+