diff --git a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
index 8ed46e800bc..ef8c82ae5f7 100644
--- a/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
+++ b/curriculum/challenges/_meta/learn-html-by-building-a-cat-photo-app/meta.json
@@ -53,236 +53,244 @@
"title": "Step 11"
},
{
- "id": "5dfa22d1b521be39a3de7be0",
+ "id": "671141d8e32fe934c26fa1be",
"title": "Step 12"
},
{
- "id": "62dabe2ef403a12d5d295273",
+ "id": "671141f948cbab359e74cc93",
"title": "Step 13"
},
{
- "id": "5dfa2407b521be39a3de7be1",
+ "id": "671141feba228a35cefba82d",
"title": "Step 14"
},
{
- "id": "5dfa30b9eacea3f48c6300ad",
+ "id": "5dfa2407b521be39a3de7be1",
"title": "Step 15"
},
{
- "id": "5f07be6ef7412fbad0c5626b",
+ "id": "671144cdcc01d73f7dd79dc9",
"title": "Step 16"
},
{
- "id": "5f07c98cdb9413cbd4b16750",
+ "id": "5dfa30b9eacea3f48c6300ad",
"title": "Step 17"
},
{
- "id": "5dfa3589eacea3f48c6300ae",
+ "id": "5f07be6ef7412fbad0c5626b",
"title": "Step 18"
},
{
- "id": "5dfa371beacea3f48c6300af",
+ "id": "5f07c98cdb9413cbd4b16750",
"title": "Step 19"
},
{
- "id": "5dfa37b9eacea3f48c6300b0",
+ "id": "5dfa3589eacea3f48c6300ae",
"title": "Step 20"
},
{
- "id": "5dfb5ecbeacea3f48c6300b1",
+ "id": "5dfa371beacea3f48c6300af",
"title": "Step 21"
},
{
- "id": "5dfb6250eacea3f48c6300b2",
+ "id": "5dfa37b9eacea3f48c6300b0",
"title": "Step 22"
},
{
- "id": "5dfb655eeacea3f48c6300b3",
+ "id": "5dfb5ecbeacea3f48c6300b1",
"title": "Step 23"
},
{
- "id": "5dfb6a35eacea3f48c6300b4",
+ "id": "5dfb6250eacea3f48c6300b2",
"title": "Step 24"
},
{
- "id": "5ef9b03c81a63668521804d0",
+ "id": "5dfb655eeacea3f48c6300b3",
"title": "Step 25"
},
{
- "id": "5ef9b03c81a63668521804d1",
+ "id": "5dfb6a35eacea3f48c6300b4",
"title": "Step 26"
},
{
- "id": "5ef9b03c81a63668521804d2",
+ "id": "5ef9b03c81a63668521804d0",
"title": "Step 27"
},
{
- "id": "5ef9b03c81a63668521804d3",
+ "id": "5ef9b03c81a63668521804d1",
"title": "Step 28"
},
{
- "id": "5efada803cbd2bbdab94e332",
+ "id": "5ef9b03c81a63668521804d2",
"title": "Step 29"
},
{
- "id": "5efae0543cbd2bbdab94e333",
+ "id": "5ef9b03c81a63668521804d3",
"title": "Step 30"
},
{
- "id": "5efae16e3cbd2bbdab94e334",
+ "id": "5efada803cbd2bbdab94e332",
"title": "Step 31"
},
{
- "id": "5ef9b03c81a63668521804d4",
+ "id": "5efae0543cbd2bbdab94e333",
"title": "Step 32"
},
{
- "id": "5f07fb1579dc934717801375",
+ "id": "5efae16e3cbd2bbdab94e334",
"title": "Step 33"
},
{
- "id": "5ef9b03c81a63668521804d5",
+ "id": "5ef9b03c81a63668521804d4",
"title": "Step 34"
},
{
- "id": "5ef9b03c81a63668521804d6",
+ "id": "5f07fb1579dc934717801375",
"title": "Step 35"
},
{
- "id": "5ef9b03c81a63668521804d7",
+ "id": "5ef9b03c81a63668521804d5",
"title": "Step 36"
},
{
- "id": "5ef9b03c81a63668521804d8",
+ "id": "5ef9b03c81a63668521804d6",
"title": "Step 37"
},
{
- "id": "5efb23e70dc218d6c85f89b1",
+ "id": "5ef9b03c81a63668521804d7",
"title": "Step 38"
},
{
- "id": "7cf9b03d81a65668421804c3",
+ "id": "5ef9b03c81a63668521804d8",
"title": "Step 39"
},
{
- "id": "5ef9b03c81a63668521804d9",
+ "id": "5efb23e70dc218d6c85f89b1",
"title": "Step 40"
},
{
- "id": "5ef9b03c81a63668521804db",
+ "id": "7cf9b03d81a65668421804c3",
"title": "Step 41"
},
{
- "id": "5ef9b03c81a63668521804da",
+ "id": "5ef9b03c81a63668521804d9",
"title": "Step 42"
},
{
- "id": "5efb2c990dc218d6c85f89b2",
+ "id": "5ef9b03c81a63668521804db",
"title": "Step 43"
},
{
- "id": "5ef9b03c81a63668521804dc",
+ "id": "5ef9b03c81a63668521804da",
"title": "Step 44"
},
{
- "id": "5ef9b03c81a63668521804dd",
+ "id": "5efb2c990dc218d6c85f89b2",
"title": "Step 45"
},
{
- "id": "5ef9b03c81a63668521804df",
+ "id": "5ef9b03c81a63668521804dc",
"title": "Step 46"
},
{
- "id": "5f05a1d8e233dff4a68508d8",
+ "id": "5ef9b03c81a63668521804dd",
"title": "Step 47"
},
{
- "id": "5ef9b03c81a63668521804de",
+ "id": "5ef9b03c81a63668521804df",
"title": "Step 48"
},
{
- "id": "5f1a80975fc4bcae0edb3497",
+ "id": "5f05a1d8e233dff4a68508d8",
"title": "Step 49"
},
{
- "id": "5ef9b03c81a63668521804e1",
+ "id": "5ef9b03c81a63668521804de",
"title": "Step 50"
},
{
- "id": "5f0d48e7b435f13ab6550051",
+ "id": "5f1a80975fc4bcae0edb3497",
"title": "Step 51"
},
{
- "id": "5f0d4ab1b435f13ab6550052",
+ "id": "5ef9b03c81a63668521804e1",
"title": "Step 52"
},
{
- "id": "5f0d4d04b435f13ab6550053",
+ "id": "5f0d48e7b435f13ab6550051",
"title": "Step 53"
},
{
- "id": "5ef9b03c81a63668521804e2",
+ "id": "5f0d4ab1b435f13ab6550052",
"title": "Step 54"
},
{
- "id": "5efc54138d6a74d05e68af76",
+ "id": "5f0d4d04b435f13ab6550053",
"title": "Step 55"
},
{
- "id": "5efc4f528d6a74d05e68af74",
+ "id": "5ef9b03c81a63668521804e2",
"title": "Step 56"
},
{
- "id": "5efc518e8d6a74d05e68af75",
+ "id": "5efc54138d6a74d05e68af76",
"title": "Step 57"
},
{
- "id": "5ef9b03c81a63668521804e3",
+ "id": "5efc4f528d6a74d05e68af74",
"title": "Step 58"
},
{
- "id": "5efc575c8d6a74d05e68af77",
+ "id": "5efc518e8d6a74d05e68af75",
"title": "Step 59"
},
{
- "id": "5f1a89f1190aff21ae42105a",
+ "id": "5ef9b03c81a63668521804e3",
"title": "Step 60"
},
{
- "id": "5ef9b03c81a63668521804e5",
+ "id": "5efc575c8d6a74d05e68af77",
"title": "Step 61"
},
{
- "id": "5ef9b03c81a63668521804e7",
+ "id": "5f1a89f1190aff21ae42105a",
"title": "Step 62"
},
{
- "id": "5ef9b03c81a63668521804e8",
+ "id": "5ef9b03c81a63668521804e5",
"title": "Step 63"
},
{
- "id": "5ef9b03c81a63668521804e9",
+ "id": "5ef9b03c81a63668521804e7",
"title": "Step 64"
},
{
- "id": "5ef9b03c81a63668521804ea",
+ "id": "5ef9b03c81a63668521804e8",
"title": "Step 65"
},
{
- "id": "5ef9b03c81a63668521804eb",
+ "id": "5ef9b03c81a63668521804e9",
"title": "Step 66"
},
{
- "id": "5ef9b03c81a63668521804ec",
+ "id": "5ef9b03c81a63668521804ea",
"title": "Step 67"
},
{
- "id": "5ef9b03c81a63668521804ee",
+ "id": "5ef9b03c81a63668521804eb",
"title": "Step 68"
},
{
- "id": "62bb4009e3458a128ff57d5d",
+ "id": "5ef9b03c81a63668521804ec",
"title": "Step 69"
+ },
+ {
+ "id": "5ef9b03c81a63668521804ee",
+ "title": "Step 70"
+ },
+ {
+ "id": "62bb4009e3458a128ff57d5d",
+ "title": "Step 71"
}
]
}
\ No newline at end of file
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17d3bf86c76b9248c6eb4.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17d3bf86c76b9248c6eb4.md
index b6d246dbd52..1f5f84ef95c 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17d3bf86c76b9248c6eb4.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17d3bf86c76b9248c6eb4.md
@@ -9,7 +9,7 @@ dashedName: step-3
The `p` element is used to create a paragraph of text on websites. Create a `p` element below your `h2` element and give it the following text:
-`See more cat photos in our gallery.`
+`Everyone loves cute cats online!`
# --hints--
@@ -25,13 +25,13 @@ Your `p` element should have a closing tag. Closing tags have a `/` just after t
assert(code.match(/<\/p\>/));
```
-Your `p` element's text should be `See more cat photos in our gallery.` You have either omitted the text or have a typo.
+Your `p` element's text should be `Everyone loves cute cats online!` You have either omitted the text or have a typo.
```js
const extraSpacesRemoved = document
.querySelector('p')
.innerText.replace(/\s+/g, ' ');
-assert(extraSpacesRemoved.match(/see more cat photos in our gallery\.?$/i));
+assert.match(extraSpacesRemoved, /everyone loves cute cats online!$/i);
```
Your `p` element should be below the `h2` element. You have them in the wrong order.
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17dc8f86c76b9248c6eb5.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17dc8f86c76b9248c6eb5.md
index f92eeab3cb4..647433daf1f 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17dc8f86c76b9248c6eb5.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc17dc8f86c76b9248c6eb5.md
@@ -49,12 +49,9 @@ assert(code.match(//i));
Your comment should be above the `p` element. You have them in the wrong order.
```js
-assert(
- code
- .replace(/\s/g, '')
- .match(
- /
seemorecatphotosinourgallery\.?<\/p>/i
- )
+assert.match(
+ code.replace(/\s/g, ''),
+ /
everyonelovescutecatsonline!<\/p>/i
);
```
@@ -69,7 +66,7 @@ assert(
Cat Photos
--fcc-editable-region--
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
- --fcc-editable-region--
+--fcc-editable-region--
CatPhotoApp
Cat Photos
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md
index 191f0be992c..c73342f4ff1 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc23f9bf86c76b9248c6eba.md
@@ -52,7 +52,7 @@ assert(collection.indexOf('P') < collection.indexOf('IMG'));
Cat Photos
--fcc-editable-region--
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
index 0d6ec6dd9c4..cb3310434c4 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24073f86c76b9248c6ebb.md
@@ -36,19 +36,19 @@ assert(document.querySelector('img').src);
Your `img` element's `src` attribute should be set to '`https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg`'. You have either omitted the URL or have a typo. The case of the URL is important.
```js
-assert(document.querySelector('img').src === 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg');
+assert.strictEqual(document.querySelector('img').src, 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg');
```
Although you have set the `img` element's `src` to the correct URL, it is recommended to always surround the value of an attribute with quotation marks.
```js
-assert(!/\ ` or `/>`.
```js
-assert(/ /.test(code));
+assert.match(code, / /);
```
# --seed--
@@ -62,7 +62,7 @@ assert(/ CatPhotoApp
Cat Photos
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24165f86c76b9248c6ebc.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24165f86c76b9248c6ebc.md
index fa3d1706989..7b194a8d99b 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24165f86c76b9248c6ebc.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24165f86c76b9248c6ebc.md
@@ -54,7 +54,7 @@ assert(altText.match(/A cute orange cat lying on its back\.?$/i));
CatPhotoApp
Cat Photos
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md
index 8a4743a1801..b17e0bebe70 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dc24614f86c76b9248c6ebd.md
@@ -75,7 +75,7 @@ assert(
Cat Photos
--fcc-editable-region--
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ddbd81294d8ddc1510a8e56.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ddbd81294d8ddc1510a8e56.md
index 899253f5331..b0172e87cb0 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ddbd81294d8ddc1510a8e56.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ddbd81294d8ddc1510a8e56.md
@@ -15,7 +15,7 @@ Here is an example of a link with the text `click here to go to freeCodeCamp.org
click here to go to freeCodeCamp.org
```
-Add the anchor text `link to cat pictures` to the anchor element. This will become the link's text.
+Add the anchor text `cat photos` to the anchor element. This will become the link's text.
# --hints--
@@ -31,12 +31,12 @@ Your anchor (`a`) element should have a closing tag. Closing tags have a `/` jus
assert(code.match(/<\/a\>/));
```
-Your anchor (`a`) element's text should be `link to cat pictures`. Make sure to put the link text between the anchor (`a`) element's opening tag and closing tag.
+Your anchor (`a`) element's text should be `cat photos`. Make sure to put the link text between the anchor (`a`) element's opening tag and closing tag.
```js
-assert(
- document.querySelector('a').innerText.toLowerCase().replace(/\s+/g, ' ') ===
- 'link to cat pictures'
+assert.strictEqual(
+ document.querySelector('a').innerText.toLowerCase().replace(/\s+/g, ' '),
+ 'cat photos'
);
```
@@ -51,7 +51,7 @@ assert(
CatPhotoApp
Cat Photos
- See more cat photos in our gallery.
+ Everyone loves cute cats online!
--fcc-editable-region--
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa22d1b521be39a3de7be0.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa22d1b521be39a3de7be0.md
deleted file mode 100644
index 913170f5439..00000000000
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa22d1b521be39a3de7be0.md
+++ /dev/null
@@ -1,78 +0,0 @@
----
-id: 5dfa22d1b521be39a3de7be0
-title: Step 12
-challengeType: 0
-dashedName: step-12
----
-
-# --description--
-
-You can turn any text into a link, such as the text inside of a `p` element.
-
-``` html
-I think freeCodeCamp is great.
-```
-
-In the text of your `p` element, turn the words `cat photos` into a link by adding opening and closing anchor (`a`) tags around these words. Then set the `href` attribute to `https://freecatphotoapp.com`
-
-
-# --hints--
-
-You should nest a new anchor (`a`) element within the `p` element.
-
-```js
-const nestedAnchor = document.querySelector(`p > a`);
-assert.isNotNull(nestedAnchor)
-```
-
-The link's `href` value should be `https://freecatphotoapp.com`. You have either omitted the `href` value or have a typo.
-
-```js
-assert(
- document.querySelector('p > a').href === 'https://freecatphotoapp.com/'
-);
-```
-
-The link's text should be `cat photos`. You have either omitted the text or have a typo.
-
-```js
-const nestedAnchor = document.querySelector('p > a');
-const innerContent = nestedAnchor.innerHTML;
-assert.isTrue(innerContent.trim() === 'cat photos');
-```
-
-The text inside your anchor element has extra leading or trailing whitespace. The only space in the anchor text should be between the word `cat` and the word `photos`.
-
-```js
-const nestedAnchor = document.querySelector('p > a');
-const innerContent = nestedAnchor.innerHTML;
-assert.isNotTrue(/^\s+|\s+$/.test(innerContent));
-```
-
-After nesting the anchor (`a`) element, the only `p` element content visible in the browser should be `See more cat photos in our gallery.` Double check the text, spacing, or punctuation of both the `p` and nested anchor element.
-
-```js
-assert.match(code, /see more ]*>cat photos<\/a> in our gallery\.?<\/p>/i)
-```
-
-# --seed--
-
-## --seed-contents--
-
-```html
-
-
-
- CatPhotoApp
- Cat Photos
-
---fcc-editable-region--
- See more cat photos in our gallery.
---fcc-editable-region--
- link to cat pictures
-
-
-
-
-```
-
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa2407b521be39a3de7be1.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa2407b521be39a3de7be1.md
index 085a5be2eb4..1500c6dff7d 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa2407b521be39a3de7be1.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa2407b521be39a3de7be1.md
@@ -1,8 +1,8 @@
---
id: 5dfa2407b521be39a3de7be1
-title: Step 14
+title: Step 15
challengeType: 0
-dashedName: step-14
+dashedName: step-15
---
# --description--
@@ -25,22 +25,20 @@ Your `p` element should have a nested anchor (`a`) element with the text `cat ph
```js
const anchor = document.querySelectorAll('p > a');
-assert(
- anchor.length &&
- anchor[0].innerText.toLowerCase().replace(/\s+/g, ' ') === 'cat photos'
-);
+assert.isNotEmpty(anchor);
+assert.strictEqual(anchor[1]?.innerText?.toLowerCase().replace(/\s+/g, ' '), 'cat photos')
```
Your anchor (`a`) element does not have a `target` attribute. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names.
```js
-assert(document.querySelector('a').hasAttribute('target'));
+assert.isTrue(document.querySelectorAll('a')[1]?.hasAttribute('target'));
```
The value of the `target` attribute should be `_blank`. You have either omitted the value or have a typo. Remember that attribute values should be surrounded with quotation marks.
```js
-assert(document.querySelector('a').getAttribute('target') === '_blank');
+assert.strictEqual(document.querySelectorAll('a')[1]?.getAttribute('target'), '_blank');
```
# --seed--
@@ -54,6 +52,7 @@ assert(document.querySelector('a').getAttribute('target') === '_blank');
CatPhotoApp
Cat Photos
+ Everyone loves cute cats online!
--fcc-editable-region--
See more cat photos in our gallery.
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md
index bec6ee44c49..32ae9ffd925 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa30b9eacea3f48c6300ad.md
@@ -1,8 +1,8 @@
---
id: 5dfa30b9eacea3f48c6300ad
-title: Step 15
+title: Step 17
challengeType: 0
-dashedName: step-15
+dashedName: step-17
---
# --description--
@@ -40,7 +40,7 @@ assert(document.querySelectorAll('a').length >= 2);
You are missing a closing (`a`) tag after the image.
```js
-assert(document.querySelectorAll('a').length === 2);
+assert.lengthOf(document.querySelectorAll('a'), 3);
```
Your anchor (`a`) element should have a closing tag. Closing tags have a `/` just after the `<` character.
@@ -52,7 +52,7 @@ assert(code.match(/<\/a>/g).length >= 2);
You should only add one closing anchor (`a`) tag. Please remove any extras.
```js
-assert(code.match(/<\/a>/g).length === 2);
+assert.lengthOf(code.match(/<\/a>/g), 3);
```
Your anchor (`a`) element does not have an `href` attribute. Check that there is a space after the opening tag's name and/or there are spaces before all attribute names.
@@ -86,7 +86,7 @@ assert(document.querySelector('img').parentNode.nodeName === 'A');
CatPhotoApp
Cat Photos
-
+ Everyone loves cute cats online!
See more cat photos in our gallery.
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa3589eacea3f48c6300ae.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa3589eacea3f48c6300ae.md
index e0520466f41..8072330d7e8 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa3589eacea3f48c6300ae.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa3589eacea3f48c6300ae.md
@@ -1,8 +1,8 @@
---
id: 5dfa3589eacea3f48c6300ae
-title: Step 18
+title: Step 20
challengeType: 0
-dashedName: step-18
+dashedName: step-20
---
# --description--
@@ -60,7 +60,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md
index 727727f45a9..f3404c08674 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa371beacea3f48c6300af.md
@@ -1,8 +1,8 @@
---
id: 5dfa371beacea3f48c6300af
-title: Step 19
+title: Step 21
challengeType: 0
-dashedName: step-19
+dashedName: step-21
---
# --description--
@@ -68,7 +68,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa37b9eacea3f48c6300b0.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa37b9eacea3f48c6300b0.md
index d279364bc9c..4d58aa32fa2 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa37b9eacea3f48c6300b0.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfa37b9eacea3f48c6300b0.md
@@ -1,8 +1,8 @@
---
id: 5dfa37b9eacea3f48c6300b0
-title: Step 20
+title: Step 22
challengeType: 0
-dashedName: step-20
+dashedName: step-22
---
# --description--
@@ -43,7 +43,7 @@ assert.equal(secondSectionLastElemNode?.nodeName , 'UL');
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb5ecbeacea3f48c6300b1.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb5ecbeacea3f48c6300b1.md
index b00e4e327a1..41284db98aa 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb5ecbeacea3f48c6300b1.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb5ecbeacea3f48c6300b1.md
@@ -1,8 +1,8 @@
---
id: 5dfb5ecbeacea3f48c6300b1
-title: Step 21
+title: Step 23
challengeType: 0
-dashedName: step-21
+dashedName: step-23
---
# --description--
@@ -65,7 +65,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md
index 2fabb4f9c34..29eac45c353 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6250eacea3f48c6300b2.md
@@ -1,8 +1,8 @@
---
id: 5dfb6250eacea3f48c6300b2
-title: Step 22
+title: Step 24
challengeType: 0
-dashedName: step-22
+dashedName: step-24
---
# --description--
@@ -72,7 +72,7 @@ assert.isTrue(!/\ CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb655eeacea3f48c6300b3.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb655eeacea3f48c6300b3.md
index 402a6be7a4e..264ae25a827 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb655eeacea3f48c6300b3.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb655eeacea3f48c6300b3.md
@@ -1,8 +1,8 @@
---
id: 5dfb655eeacea3f48c6300b3
-title: Step 23
+title: Step 25
challengeType: 0
-dashedName: step-23
+dashedName: step-25
---
# --description--
@@ -34,11 +34,7 @@ assert.equal(document.querySelectorAll('section')?.[1]?.lastElementChild?.nodeNa
The lasagna `img` element should be nested in the `figure` element.
```js
-assert(
- document.querySelector('figure > img') &&
- document.querySelector('figure > img').getAttribute('src').toLowerCase() ===
- 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg'
-);
+assert.strictEqual(document.querySelector('figure > img')?.src.toLowerCase(), 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg');
```
# --seed--
@@ -52,7 +48,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6a35eacea3f48c6300b4.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6a35eacea3f48c6300b4.md
index 34c94f53d3f..680d96fef10 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6a35eacea3f48c6300b4.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5dfb6a35eacea3f48c6300b4.md
@@ -1,8 +1,8 @@
---
id: 5dfb6a35eacea3f48c6300b4
-title: Step 24
+title: Step 26
challengeType: 0
-dashedName: step-24
+dashedName: step-26
---
# --description--
@@ -82,7 +82,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d0.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d0.md
index ed02dbc5104..1673cecf43e 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d0.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d0.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d0
-title: Step 25
+title: Step 27
challengeType: 0
-dashedName: step-25
+dashedName: step-27
---
# --description--
@@ -61,7 +61,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d1.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d1.md
index 28ad6702c18..6773d7a4ac9 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d1.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d1.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d1
-title: Step 26
+title: Step 28
challengeType: 0
-dashedName: step-26
+dashedName: step-28
---
# --description--
@@ -55,7 +55,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d2.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d2.md
index 01356944a50..b727a214615 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d2.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d2.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d2
-title: Step 27
+title: Step 29
challengeType: 0
-dashedName: step-27
+dashedName: step-29
---
# --description--
@@ -74,7 +74,7 @@ assert([...document.querySelectorAll('ol')].length == 1);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d3.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d3.md
index 436166d0a34..208f5149784 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d3.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d3.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d3
-title: Step 28
+title: Step 30
challengeType: 0
-dashedName: step-28
+dashedName: step-30
---
# --description--
@@ -40,7 +40,7 @@ assert.equal(document.querySelectorAll('main > section')?.[1]?.lastElementChild?
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d4.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d4.md
index 44020dfc230..7ad42656a00 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d4.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d4.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d4
-title: Step 32
+title: Step 34
challengeType: 0
-dashedName: step-32
+dashedName: step-34
---
# --description--
@@ -60,7 +60,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d5.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d5.md
index 2088328d0c0..ba5ecd944d8 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d5.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d5.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d5
-title: Step 34
+title: Step 36
challengeType: 0
-dashedName: step-34
+dashedName: step-36
---
# --description--
@@ -67,7 +67,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d6.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d6.md
index a18c4298b52..041d0d26a0c 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d6.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d6.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d6
-title: Step 35
+title: Step 37
challengeType: 0
-dashedName: step-35
+dashedName: step-37
---
# --description--
@@ -51,7 +51,7 @@ assert.lengthOf(document.querySelector('form')?.innerHTML?.trim(), 0);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d7.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d7.md
index 2b69c81d0d5..b2a61b81465 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d7.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d7.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d7
-title: Step 36
+title: Step 38
challengeType: 0
-dashedName: step-36
+dashedName: step-38
---
# --description--
@@ -83,7 +83,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md
index 203ffa8b654..6c8d809328f 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d8.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d8
-title: Step 37
+title: Step 39
challengeType: 0
-dashedName: step-37
+dashedName: step-39
---
# --description--
@@ -68,7 +68,7 @@ assert.isTrue(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d9.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d9.md
index 8d92834aa41..ea9fd216b95 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d9.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804d9.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804d9
-title: Step 40
+title: Step 42
challengeType: 0
-dashedName: step-40
+dashedName: step-42
---
# --description--
@@ -68,7 +68,7 @@ assert(!/\<\s*input\s+placeholder\s*=\s*cat\s+photo\s+url/i.test(code));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md
index 029f4e23543..eb09123ea5b 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804da.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804da
-title: Step 42
+title: Step 44
challengeType: 0
-dashedName: step-42
+dashedName: step-44
---
# --description--
@@ -51,7 +51,7 @@ assert(collection.indexOf('INPUT') < collection.indexOf('BUTTON'));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804db.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804db.md
index d5d1b6641f4..9d903089234 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804db.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804db.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804db
-title: Step 41
+title: Step 43
challengeType: 0
-dashedName: step-41
+dashedName: step-43
---
# --description--
@@ -49,7 +49,7 @@ assert.strictEqual(document.querySelector('input')?.getAttribute('required'), ''
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
index c0b70478760..02fb679b9f7 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dc.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804dc
-title: Step 44
+title: Step 46
challengeType: 0
-dashedName: step-44
+dashedName: step-46
---
# --description--
@@ -107,7 +107,7 @@ assert.match(radioInputElem?.nextSibling?.nodeValue?.replace(/\s+/g, ' '), /\s*I
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
index 558848e00a7..23cd6fe5b9c 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804dd.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804dd
-title: Step 45
+title: Step 47
challengeType: 0
-dashedName: step-45
+dashedName: step-47
---
# --description--
@@ -69,7 +69,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804de.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804de.md
index 0d24e64f6c3..dbd106c3fc8 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804de.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804de.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804de
-title: Step 48
+title: Step 50
challengeType: 0
-dashedName: step-48
+dashedName: step-50
---
# --description--
@@ -68,9 +68,10 @@ assert(
CatPhotoApp
Cat Lists
Things cats love:
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
index 5e0de64f76d..7e6da73cc03 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804df.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804df
-title: Step 46
+title: Step 48
challengeType: 0
-dashedName: step-46
+dashedName: step-48
---
# --description--
@@ -57,7 +57,7 @@ assert.match(document.querySelector('input')?.id, /^indoor$/);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md
index 1be668305c9..b0f504e41f8 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e1.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e1
-title: Step 50
+title: Step 52
challengeType: 0
-dashedName: step-50
+dashedName: step-52
---
# --description--
@@ -57,7 +57,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e2.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e2.md
index 336035057aa..14421aa91ff 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e2.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e2.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e2
-title: Step 54
+title: Step 56
challengeType: 0
-dashedName: step-54
+dashedName: step-56
---
# --description--
@@ -76,7 +76,7 @@ assert.match(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e3.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e3.md
index 5072a34e569..85d4f47ee8e 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e3.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e3.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e3
-title: Step 58
+title: Step 60
challengeType: 0
-dashedName: step-58
+dashedName: step-60
---
# --description--
@@ -68,7 +68,7 @@ assert.strictEqual(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e5.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e5.md
index 9432c77bcf7..bb5b933a8b4 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e5.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e5.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e5
-title: Step 61
+title: Step 63
challengeType: 0
-dashedName: step-61
+dashedName: step-63
---
# --description--
@@ -71,7 +71,7 @@ assert.isFalse(document.querySelectorAll('input[type="checkbox"]')?.[2]?.hasAttr
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e7.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e7.md
index 37a76b9e0eb..83e8c455f38 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e7.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e7.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e7
-title: Step 62
+title: Step 64
challengeType: 0
-dashedName: step-62
+dashedName: step-64
---
# --description--
@@ -48,7 +48,7 @@ assert(document.querySelector('main').nextElementSibling.nodeName === 'FOOTER');
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e8.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e8.md
index d6c2bc6ddd3..b82223e2a76 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e8.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e8.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e8
-title: Step 63
+title: Step 65
challengeType: 0
-dashedName: step-63
+dashedName: step-65
---
# --description--
@@ -23,11 +23,11 @@ Your `footer` element should have a `p` element. Make sure to add an opening tag
assert(document.querySelector('footer > p'));
```
-Your `footer` element should have a closing tag. Closing tags have a `/` just after the `<` character.
+Your `p` element should have a closing tag. Closing tags have a `/` just after the `<` character.
```js
const pElemClosingTags = code.match(/<\/p\>/g);
-assert(pElemClosingTags && pElemClosingTags.length === 2);
+assert.lengthOf(pElemClosingTags, 3);
```
Your `p` element's text should be `No Copyright - freeCodeCamp.org`. You have either omitted the text, have a typo, or it is not between the `p` element's opening and closing tags.
@@ -48,7 +48,7 @@ assert.match(extraSpacesRemoved, /No Copyright - freeCodeCamp\.org$/i);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md
index c969d3313c8..659376576f4 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804e9.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804e9
-title: Step 64
+title: Step 66
challengeType: 0
-dashedName: step-64
+dashedName: step-66
---
# --description--
@@ -21,7 +21,7 @@ Your anchor (`a`) element should have a closing tag. Closing tags have a `/` jus
```js
const aElemClosingTags = code.match(/<\/a\>/g);
-assert(aElemClosingTags && aElemClosingTags.length === 3);
+assert.lengthOf(aElemClosingTags, 4);
```
Your anchor (`a`) element should have an `href` attribute with the value `https://www.freecodecamp.org`. You may have omitted the attribute/value, or have a typo.
@@ -59,7 +59,7 @@ assert.match(pText, /^no copyright - freecodecamp.org$/);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ea.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ea.md
index 71708712aff..97226fa0de5 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ea.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ea.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804ea
-title: Step 65
+title: Step 67
challengeType: 0
-dashedName: step-65
+dashedName: step-67
---
# --description--
@@ -54,7 +54,7 @@ assert(noSpaces.match(/\<\/head\>\/));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md
index 9183fe37273..fd4b0abc648 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804eb.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804eb
-title: Step 66
+title: Step 68
challengeType: 0
-dashedName: step-66
+dashedName: step-68
---
# --description--
@@ -56,7 +56,7 @@ assert(document.title && document.title.toLowerCase() === 'catphotoapp');
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ec.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ec.md
index 184f3bdce19..c6f40217583 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ec.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ec.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804ec
-title: Step 67
+title: Step 69
challengeType: 0
-dashedName: step-67
+dashedName: step-69
---
# --description--
@@ -44,7 +44,7 @@ assert(extraSpacesRemoved.match(/\/));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ee.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ee.md
index f98f54be2de..a01a428a2f6 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ee.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5ef9b03c81a63668521804ee.md
@@ -1,8 +1,8 @@
---
id: 5ef9b03c81a63668521804ee
-title: Step 68
+title: Step 70
challengeType: 0
-dashedName: step-68
+dashedName: step-70
---
# --description--
@@ -45,7 +45,7 @@ assert(noSpaces.match(/^\<\!DOCTYPEhtml\>\CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md
index fe7dac07c21..50fecd825ba 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efada803cbd2bbdab94e332.md
@@ -1,8 +1,8 @@
---
id: 5efada803cbd2bbdab94e332
-title: Step 29
+title: Step 31
challengeType: 0
-dashedName: step-29
+dashedName: step-31
---
# --description--
@@ -42,16 +42,15 @@ The third image should have a `src` attribute set to `https://cdn.freecodecamp.o
```js
const catsImg = document.querySelectorAll('figure > img')[1];
-assert(
- catsImg &&
- catsImg.getAttribute('src').toLowerCase() === 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg'
+assert.strictEqual(
+ catsImg?.src?.toLowerCase(), 'https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg'
);
```
Although you have set the new image's `src` to the correct URL, it is recommended to always surround the value of an attribute with quotation marks.
```js
-assert(!/\ CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae0543cbd2bbdab94e333.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae0543cbd2bbdab94e333.md
index fc9ae81ed91..5c4b2d7bad4 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae0543cbd2bbdab94e333.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae0543cbd2bbdab94e333.md
@@ -1,8 +1,8 @@
---
id: 5efae0543cbd2bbdab94e333
-title: Step 30
+title: Step 32
challengeType: 0
-dashedName: step-30
+dashedName: step-32
---
# --description--
@@ -64,7 +64,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae16e3cbd2bbdab94e334.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae16e3cbd2bbdab94e334.md
index 5dd98f117a1..67adb8c27f9 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae16e3cbd2bbdab94e334.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efae16e3cbd2bbdab94e334.md
@@ -1,8 +1,8 @@
---
id: 5efae16e3cbd2bbdab94e334
-title: Step 31
+title: Step 33
challengeType: 0
-dashedName: step-31
+dashedName: step-33
---
# --description--
@@ -88,7 +88,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb23e70dc218d6c85f89b1.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb23e70dc218d6c85f89b1.md
index 20fab7dbb35..4bee47e445e 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb23e70dc218d6c85f89b1.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb23e70dc218d6c85f89b1.md
@@ -1,8 +1,8 @@
---
id: 5efb23e70dc218d6c85f89b1
-title: Step 38
+title: Step 40
challengeType: 0
-dashedName: step-38
+dashedName: step-40
---
# --description--
@@ -60,7 +60,7 @@ assert(!/\ CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb2c990dc218d6c85f89b2.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb2c990dc218d6c85f89b2.md
index c31c2c7312e..0ce265406c7 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb2c990dc218d6c85f89b2.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efb2c990dc218d6c85f89b2.md
@@ -1,8 +1,8 @@
---
id: 5efb2c990dc218d6c85f89b2
-title: Step 43
+title: Step 45
challengeType: 0
-dashedName: step-43
+dashedName: step-45
---
# --description--
@@ -57,7 +57,7 @@ assert(!/\<\s*button\s+type\s*=\s*submit/i.test(code));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md
index 8839051402d..279e4134d15 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc4f528d6a74d05e68af74.md
@@ -1,8 +1,8 @@
---
id: 5efc4f528d6a74d05e68af74
-title: Step 56
+title: Step 58
challengeType: 0
-dashedName: step-56
+dashedName: step-58
---
# --description--
@@ -110,7 +110,7 @@ assert.match(code, />\s+CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc518e8d6a74d05e68af75.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc518e8d6a74d05e68af75.md
index c66b5194a12..9c771a89660 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc518e8d6a74d05e68af75.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc518e8d6a74d05e68af75.md
@@ -1,8 +1,8 @@
---
id: 5efc518e8d6a74d05e68af75
-title: Step 57
+title: Step 59
challengeType: 0
-dashedName: step-57
+dashedName: step-59
---
# --description--
@@ -45,7 +45,7 @@ assert.match(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc54138d6a74d05e68af76.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc54138d6a74d05e68af76.md
index 79091df7c9e..fc0e86d7054 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc54138d6a74d05e68af76.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc54138d6a74d05e68af76.md
@@ -1,8 +1,8 @@
---
id: 5efc54138d6a74d05e68af76
-title: Step 55
+title: Step 57
challengeType: 0
-dashedName: step-55
+dashedName: step-57
---
# --description--
@@ -34,7 +34,7 @@ assert.match(document.querySelector('input[type="checkbox"]')?.id, /^loving$/);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc575c8d6a74d05e68af77.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc575c8d6a74d05e68af77.md
index 3b8813627f9..5cd8d5f74c5 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc575c8d6a74d05e68af77.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5efc575c8d6a74d05e68af77.md
@@ -1,8 +1,8 @@
---
id: 5efc575c8d6a74d05e68af77
-title: Step 59
+title: Step 61
challengeType: 0
-dashedName: step-59
+dashedName: step-61
---
# --description--
@@ -71,7 +71,7 @@ assert.strictEqual(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f05a1d8e233dff4a68508d8.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f05a1d8e233dff4a68508d8.md
index 6dc9acb6906..5e8cf58d474 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f05a1d8e233dff4a68508d8.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f05a1d8e233dff4a68508d8.md
@@ -1,8 +1,8 @@
---
id: 5f05a1d8e233dff4a68508d8
-title: Step 47
+title: Step 49
challengeType: 0
-dashedName: step-47
+dashedName: step-49
---
# --description--
@@ -92,7 +92,7 @@ assert(code.match(/<\/label>\s*\s* ]+>\s*Outdoor/i));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07be6ef7412fbad0c5626b.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07be6ef7412fbad0c5626b.md
index 8d1bf5b4d18..1b7c5b36f34 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07be6ef7412fbad0c5626b.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07be6ef7412fbad0c5626b.md
@@ -1,8 +1,8 @@
---
id: 5f07be6ef7412fbad0c5626b
-title: Step 16
+title: Step 18
challengeType: 0
-dashedName: step-16
+dashedName: step-18
---
# --description--
@@ -40,14 +40,14 @@ The entire `section` element should be between the opening and closing tags of t
assert(document.querySelector('section').parentNode.nodeName === 'MAIN');
```
-The existing `h2`, comment, `p` element, and anchor (`a`) element should be between the opening and closing tags of the `section` element.
+The existing `h2`, comment, two `p` elements, and anchor (`a`) element should be between the opening and closing tags of the `section` element.
```js
const childrenOfSection = [...document.querySelector('section').childNodes];
const foundElements = childrenOfSection.filter((child) => {
return ['H2', 'A', 'P'].includes(child.nodeName);
});
-assert(foundElements.length === 3);
+assert.lengthOf(foundElements, 4);
```
The `h1` element should not be nested in the `section` element.
@@ -65,12 +65,12 @@ assert.isFalse(includesH1);
```html
- --fcc-editable-region--
+--fcc-editable-region--
CatPhotoApp
Cat Photos
-
+ Everyone loves cute cats online!
See more cat photos in our gallery.
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07c98cdb9413cbd4b16750.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07c98cdb9413cbd4b16750.md
index 10b404ac3cb..613174d4295 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07c98cdb9413cbd4b16750.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07c98cdb9413cbd4b16750.md
@@ -1,8 +1,8 @@
---
id: 5f07c98cdb9413cbd4b16750
-title: Step 17
+title: Step 19
challengeType: 0
-dashedName: step-17
+dashedName: step-19
---
# --description--
@@ -69,7 +69,7 @@ assert(foundElems.length === 2);
--fcc-editable-region--
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07fb1579dc934717801375.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07fb1579dc934717801375.md
index 699dc0f39e3..7ff2d464db5 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07fb1579dc934717801375.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f07fb1579dc934717801375.md
@@ -1,8 +1,8 @@
---
id: 5f07fb1579dc934717801375
-title: Step 33
+title: Step 35
challengeType: 0
-dashedName: step-33
+dashedName: step-35
---
# --description--
@@ -62,7 +62,7 @@ assert.lengthOf(document.querySelectorAll('main > section')?.[2]?.children, 0);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d48e7b435f13ab6550051.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d48e7b435f13ab6550051.md
index 1e8d266f9a7..f28dc9e368f 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d48e7b435f13ab6550051.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d48e7b435f13ab6550051.md
@@ -1,8 +1,8 @@
---
id: 5f0d48e7b435f13ab6550051
-title: Step 51
+title: Step 53
challengeType: 0
-dashedName: step-51
+dashedName: step-53
---
# --description--
@@ -58,7 +58,7 @@ assert(extraSpacesRemoved.match(/Is your cat an indoor or outdoor cat\??$/i));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4ab1b435f13ab6550052.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4ab1b435f13ab6550052.md
index 5dc7d0c7595..9d670bac84e 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4ab1b435f13ab6550052.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4ab1b435f13ab6550052.md
@@ -1,8 +1,8 @@
---
id: 5f0d4ab1b435f13ab6550052
-title: Step 52
+title: Step 54
challengeType: 0
-dashedName: step-52
+dashedName: step-54
---
# --description--
@@ -79,7 +79,7 @@ assert(fieldsetChildren[0].length > fieldsetChildren[1].length);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4d04b435f13ab6550053.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4d04b435f13ab6550053.md
index 00c3eb5046e..a06fcf457a2 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4d04b435f13ab6550053.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f0d4d04b435f13ab6550053.md
@@ -1,8 +1,8 @@
---
id: 5f0d4d04b435f13ab6550053
-title: Step 53
+title: Step 55
challengeType: 0
-dashedName: step-53
+dashedName: step-55
---
# --description--
@@ -64,7 +64,7 @@ assert(
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a80975fc4bcae0edb3497.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a80975fc4bcae0edb3497.md
index 0fda7b0e334..0745f08bcfb 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a80975fc4bcae0edb3497.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a80975fc4bcae0edb3497.md
@@ -1,8 +1,8 @@
---
id: 5f1a80975fc4bcae0edb3497
-title: Step 49
+title: Step 51
challengeType: 0
-dashedName: step-49
+dashedName: step-51
---
# --description--
@@ -64,9 +64,10 @@ assert(outdoorRadioButton.getAttribute('value').match(/^outdoor$/));
CatPhotoApp
Cat Lists
Things cats love:
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a89f1190aff21ae42105a.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a89f1190aff21ae42105a.md
index 18830d72984..d9d8395afd3 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a89f1190aff21ae42105a.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/5f1a89f1190aff21ae42105a.md
@@ -1,8 +1,8 @@
---
id: 5f1a89f1190aff21ae42105a
-title: Step 60
+title: Step 62
challengeType: 0
-dashedName: step-60
+dashedName: step-62
---
# --description--
@@ -52,7 +52,7 @@ assert(energeticCheckbox.getAttribute('value').match(/^energetic$/));
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62bb4009e3458a128ff57d5d.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62bb4009e3458a128ff57d5d.md
index b624044c807..44398cd0ceb 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62bb4009e3458a128ff57d5d.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62bb4009e3458a128ff57d5d.md
@@ -1,8 +1,8 @@
---
id: 62bb4009e3458a128ff57d5d
-title: Step 69
+title: Step 71
challengeType: 0
-dashedName: step-69
+dashedName: step-71
---
# --description--
@@ -58,7 +58,7 @@ assert.notMatch(code, /<\/meta\s*>?/i);
CatPhotoApp
@@ -127,7 +127,7 @@ assert.notMatch(code, /<\/meta\s*>?/i);
CatPhotoApp
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62dabe2ef403a12d5d295273.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62dabe2ef403a12d5d295273.md
deleted file mode 100644
index e021c246346..00000000000
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/62dabe2ef403a12d5d295273.md
+++ /dev/null
@@ -1,62 +0,0 @@
----
-id: 62dabe2ef403a12d5d295273
-title: Step 13
-challengeType: 0
-dashedName: step-13
----
-
-# --description--
-
-Now that you turned the text `cat photos` inside the `p` element into a link, you don't need the second link below the `p` element. Delete the entire anchor element below the `p` element.
-
-# --hints--
-
-Your code should only have one paragraph (`p`) element.
-
-```js
-assert.isTrue(document.querySelectorAll('p').length === 1);
-```
-
-Your code should only have one anchor (`a`) element.
-
-```js
-assert.isTrue(document.querySelectorAll('a').length === 1);
-```
-
-Do not make any changes to the elements you created in the previous step.
-
-```js
-assert.strictEqual(document.querySelector('p').innerHTML, 'See more cat photos in our gallery.')
-```
-
-There should not be `cat photos` text below the `p` element.
-
-```js
-const pNextSibling = document.querySelector('p').nextSibling;
-assert(
- pNextSibling.nodeName === '#text' && !/cat\s*photos/.test(pNextSibling.nodeValue) ||
- pNextSibling.nodeName === 'IMG'
-);
-```
-
-
-# --seed--
-
-## --seed-contents--
-
-```html
-
-
-
- CatPhotoApp
- Cat Photos
-
---fcc-editable-region--
- See more cat photos in our gallery.
- link to cat pictures
---fcc-editable-region--
-
-
-
-
-```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141d8e32fe934c26fa1be.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141d8e32fe934c26fa1be.md
new file mode 100644
index 00000000000..1142a728005
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141d8e32fe934c26fa1be.md
@@ -0,0 +1,57 @@
+---
+id: 671141d8e32fe934c26fa1be
+title: Step 12
+challengeType: 0
+dashedName: step-12
+---
+
+# --description--
+
+Add the words `See more ` before the anchor element and ` in our gallery` after the anchor element
+
+# --hints--
+
+You should use the existing anchor element, do not create a new one.
+
+```js
+assert.lengthOf(document.querySelectorAll('a'), 1);
+```
+
+You should have the words `See more ` before the anchor element.
+
+```js
+assert.match(code, /See more cat photos<\/a>/)
+```
+
+You should have the words `in our gallery` after the anchor element.
+
+```js
+assert.match(code, / cat photos<\/a> in our gallery/)
+```
+
+You should have `See more cat photos in our gallery` in your code.
+
+```js
+assert.match(code, /See more cat photos<\/a> in our gallery/)
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+ CatPhotoApp
+ Cat Photos
+
+ Everyone loves cute cats online!
+--fcc-editable-region--
+ cat photos
+--fcc-editable-region--
+
+
+
+
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141f948cbab359e74cc93.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141f948cbab359e74cc93.md
new file mode 100644
index 00000000000..78aae1394e5
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141f948cbab359e74cc93.md
@@ -0,0 +1,48 @@
+---
+id: 671141f948cbab359e74cc93
+title: Step 13
+challengeType: 0
+dashedName: step-13
+---
+
+# --description--
+
+Add `p` tags to turn `See more cat photos in our gallery.` into a paragraph.
+
+# --hints--
+
+You should add a `p` element around `See more cat photos in our gallery.`.
+
+```js
+const P = document.querySelectorAll('p')[1];
+assert.exists(P);
+assert.strictEqual(P.innerText, "See more cat photos in our gallery.");
+```
+
+You should still have the anchor element inside the new paragraph.
+
+```js
+const P = document.querySelectorAll('p')[1];
+assert.exists(P.querySelector('a'));
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+ CatPhotoApp
+ Cat Photos
+
+ Everyone loves cute cats online!
+--fcc-editable-region--
+ See more cat photos in our gallery.
+--fcc-editable-region--
+
+
+
+
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141feba228a35cefba82d.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141feba228a35cefba82d.md
new file mode 100644
index 00000000000..57b41394977
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671141feba228a35cefba82d.md
@@ -0,0 +1,57 @@
+---
+id: 671141feba228a35cefba82d
+title: Step 14
+challengeType: 0
+dashedName: step-14
+---
+
+# --description--
+
+Turn the text `cute cats` into an anchor elements that links to `https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg`.
+
+# --hints--
+
+There should be a new anchor element in the first `p` element.
+
+```js
+assert.exists(document.querySelector('p')?.querySelector('a'));
+```
+
+The anchor text should be `cute cats`.
+
+```js
+assert.strictEqual(document.querySelector('a')?.innerText, "cute cats");
+```
+
+The `href` attrivute of the new anchor element should be `https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg`.
+
+```js
+assert.strictEqual(document.querySelector('a')?.href, "https://cdn.freecodecamp.org/curriculum/cat-photo-app/running-cats.jpg");
+```
+
+The text of the `p` element should still be `Everyone loves cute cats online!`.
+
+```js
+assert.strictEqual(document.querySelector('p')?.innerText, "Everyone loves cute cats online!");
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+ CatPhotoApp
+ Cat Photos
+
+--fcc-editable-region--
+ Everyone loves cute cats online!
+--fcc-editable-region--
+ See more cat photos in our gallery.
+
+
+
+
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671144cdcc01d73f7dd79dc9.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671144cdcc01d73f7dd79dc9.md
new file mode 100644
index 00000000000..7256f63593b
--- /dev/null
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/671144cdcc01d73f7dd79dc9.md
@@ -0,0 +1,47 @@
+---
+id: 671144cdcc01d73f7dd79dc9
+title: Step 16
+challengeType: 0
+dashedName: step-16
+---
+
+# --description--
+
+Now that you have added the link you can remove the comment.
+
+# --hints--
+
+There should not be any comment in your code.
+
+```js
+assert.notMatch(code, //);
+```
+
+The text `TODO: Add link to cat photos` should not be present anymore.
+
+```js
+assert.notMatch(code, /TODO:?/i)
+assert.notMatch(code, /Add\s*link\s*to\s*cat\s*photos/i)
+```
+
+# --seed--
+
+## --seed-contents--
+
+```html
+
+
+
+ CatPhotoApp
+ Cat Photos
+--fcc-editable-region--
+
+ Everyone loves cute cats online!
+ See more cat photos in our gallery.
+--fcc-editable-region--
+
+
+
+
+```
diff --git a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md
index 7af05536047..b4c81dd1c08 100644
--- a/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md
+++ b/curriculum/challenges/english/14-responsive-web-design-22/learn-html-by-building-a-cat-photo-app/7cf9b03d81a65668421804c3.md
@@ -1,8 +1,8 @@
---
id: 7cf9b03d81a65668421804c3
-title: Step 39
+title: Step 41
challengeType: 0
-dashedName: step-39
+dashedName: step-41
---
# --description--
@@ -66,7 +66,7 @@ assert(!/\<\s*input\s+.*\s*=\s*catphotourl/.test(code));
CatPhotoApp
diff --git a/e2e/lower-jaw.spec.ts b/e2e/lower-jaw.spec.ts
index 5b78413f68a..3b013efa221 100644
--- a/e2e/lower-jaw.spec.ts
+++ b/e2e/lower-jaw.spec.ts
@@ -69,7 +69,7 @@ test('Checks hotkeys when instruction is focused', async ({
const description = page.locator('#description');
await editor.fill(
- 'Cat Photos \nSee more cat photos in our gallery.
'
+ 'Cat Photos \nEveryone loves cute cats online!
'
);
await description.click();
@@ -100,7 +100,7 @@ test('Focuses on the submit button after tests passed', async ({
await clearEditor({ page, browserName });
await editor.fill(
- 'Cat Photos \nSee more cat photos in our gallery.
'
+ 'Cat Photos \nEveryone loves cute cats online!
'
);
await checkButton.click();
@@ -126,7 +126,7 @@ test('Prompts unauthenticated user to sign in to save progress', async ({
await clearEditor({ page, browserName });
await editor.fill(
- 'Cat Photos \nSee more cat photos in our gallery.
'
+ 'Cat Photos \nEveryone loves cute cats online!
'
);
await checkButton.click();
@@ -190,7 +190,7 @@ test('should display the text of submit and go to next challenge button accordin
await clearEditor({ page, browserName });
await editor.fill(
- 'Cat Photos \nSee more cat photos in our gallery.
'
+ 'Cat Photos \nEveryone loves cute cats online!
'
);
await checkButton.click();
diff --git a/e2e/progress-bar.spec.ts b/e2e/progress-bar.spec.ts
index 161a55a955d..905ba1df518 100644
--- a/e2e/progress-bar.spec.ts
+++ b/e2e/progress-bar.spec.ts
@@ -19,7 +19,7 @@ test.describe('Progress bar component', () => {
await clearEditor({ page, browserName });
await page.keyboard.insertText(
- 'CatPhotoApp Cat Photos See more cat photos in our gallery.
'
+ 'CatPhotoApp Cat Photos Everyone loves cute cats online!
'
);
await page.getByRole('button', { name: 'Check Your Code' }).click();
@@ -28,7 +28,7 @@ test.describe('Progress bar component', () => {
await expect(progressBarContainer).toContainText(
'Learn HTML by Building a Cat Photo App'
);
- await expect(progressBarContainer).toContainText('0% complete');
+ await expect(progressBarContainer).toContainText(/\d% complete/);
await page
.getByRole('button', { name: 'Submit and go to next challenge' })
.click();
@@ -55,7 +55,7 @@ test.describe('Progress bar component', () => {
.click();
await expect(page.locator('.completion-block-meta')).toContainText(
- '99% complete'
+ /\d% complete/
);
await page
diff --git a/tools/scripts/seed/user-data.js b/tools/scripts/seed/user-data.js
index ece22618664..ab470da9901 100644
--- a/tools/scripts/seed/user-data.js
+++ b/tools/scripts/seed/user-data.js
@@ -12219,6 +12219,30 @@ module.exports.fullyCertifiedUser = {
id: '647f7da207d29547b3bee1ba',
challengeType: 7,
files: []
+ },
+ {
+ completedDate: 1729240849345,
+ id: '671141d8e32fe934c26fa1be',
+ challengeType: 0,
+ files: []
+ },
+ {
+ completedDate: 1729240849345,
+ id: '671141f948cbab359e74cc93',
+ challengeType: 0,
+ files: []
+ },
+ {
+ completedDate: 1729240849345,
+ id: '671141feba228a35cefba82d',
+ challengeType: 0,
+ files: []
+ },
+ {
+ completedDate: 1729240849345,
+ id: '671144cdcc01d73f7dd79dc9',
+ challengeType: 0,
+ files: []
}
],
completedExams: [