/g), 'message: The opening main
tag should come before the paragraph tag.');",
"assert(code.match(/<\\/p>\\s*?<\\/main>/g), 'message: The closing main
tag should come after your closing paragraph tag.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {}
},
{
"id": "bad87fee1348bd9aedf08833",
"title": "Fill in the Blank with Placeholder Text",
"description": [
"Web developers traditionally use lorem ipsum text
as placeholder text. The 'lorem ipsum' text is randomly scraped from a famous passage by Cicero of Ancient Rome.",
"Lorem ipsum text has been used as placeholder text by typesetters since the 16th century, and this tradition continues on the web.",
"Well, 5 centuries is long enough. Since we're building a CatPhotoApp, let's use something called kitty ipsum text
.",
"Replace the text inside your p
element with the first few words of this kitty ipsum text: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
],
"challengeSeed": [
"
Hello World
", "", "CatPhotoApp
", "", "Hello Paragraph
" ], "tests": [ "assert.isTrue((/Kitty(\\s)+ipsum/gi).test($(\"p\").text()), 'message: Yourp
element should contain the first few words of the provided kitty ipsum text
.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"description": [
"Webentwickler nutzen für gewöhnlich \"Lorem Ipsum Text\" als Platzhalter. Es heißt \"Lorem Ipsum\", weil es die ersten zwei Wörter aus einer bekannten Passage von Cicero des alten Roms sind.",
"\"Lorem Ipsum\" Text wurde seit dem 16. Jahrhundert von Schriftsetzern als Platzhalter verwendet. Und diese Tradition setzt sich im Web fort.",
"Nun gut, fünf Jahrhunderte sind lange genug. Da wir eine CatPhotoApp entwickeln, lass uns stattdessen lieber kitty ipsum text
nutzen.",
"Ersetze den Text in deinem p
Element mit den ersten Wörtern des \"Kitty Ipsum\" Textes: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
]
},
"fr": {
"title": "Remplissez les blancs avec du faux-texte",
"description": [
"Les développeurs Web utilisent traditionnellement du lorem ipsum
comme texte de substitution. Le texte lorem ipsum provient d'un extrait de Cicero, de la Rome antique.",
"Le texte lorem ipsum a été utilisé comme faux-texte par des typographes depuis le 16ème siècle et cette tradition se poursuit sur le Web.",
"Enfin, 5 siècles est suffisament long. Étant donné que nous fabriquons une application de photos de chats, utilisons plutôt du texte Kitty ipsum
.",
"Remplacez le texte à l'intérieur des éléments p
avec ces quelques mots du texte Kitty ipsum : Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
]
},
"pt-br": {
"title": "Preencha Espaços com Texto de Espaço Reservado",
"description": [
"Desenvolvedores web tradicionalmente usam Lorem Ipsum
como texto de preenchimento. Lorem Ipsum é chamado assim pois essas são as duas primeiras palavras de uma passagem famosa de Cícero da Roma Antiga.",
"O texto Lorem Ipsum tem sido utilizado como texto de espaço reservado por compositores desde o século 16, e esta tradição continua na web.",
"Bem, 5 séculos é um tempo longo o bastante. Já que estamos desenvolvendo um aplicativo sobre fotos de gatos (CatPhotoApp), vamos usar algo chamado Kitty Ipsum
.",
"Substitua o texto dentro do seu elemento p
pelas primeiras palavras deste texto Kitty Ipsum: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
]
},
"ru": {
"title": "Заполните пустоты замещающим текстом",
"description": [
"Традиционно web-разработчики используют текст lorem ipsum
в качестве замещающего текста. Он называется тектсом lorem ipsum
по первым двум словам известного пассажа Цицерона из Древнего Рима.",
"Текст lorem ipsum
применяется в качестве замещающего текста наборщиками с 16-го века, и эта традиция продолжается в сети.",
"5 веков довольно долгий период. Так как мы строим приложение CatPhotoApp, давайте используем нечто называемое текстом kitty ipsum
.",
"Замените текст внутри вашего элемента p
первыми двумя словами текста kitty ipsum
: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
]
}
}
},
{
"id": "bad87fee1348bd9aedf08812",
"title": "Add Images to your Website",
"description": [
"You can add images to your website by using the img
element, and point to a specific image's URL using the src
attribute.",
"An example of this would be:",
"<img src=\"https://www.your-image-source.com/your-image.jpg\">
",
"All img
elements must have an alt
attribute. The text inside an alt
attribute is used for screen readers to improve accessibility and is displayed if the image fails to load.",
"Let's add an alt
attribute to our img
example above:",
"<img src=\"https://www.your-image-source.com/your-image.jpg\" alt=\"Author standing on a beach with two thumbs up.\">
",
"Note that in most cases, img
elements are self-closing.",
"Try it with this image:",
"https://bit.ly/fcc-relaxing-cat
"
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
", "", "Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
", "Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
" ], "tests": [ "assert($(\"img\").length > 0, 'message: Your page should have an image element.');", "assert(new RegExp(\"\\/\\/bit.ly\\/fcc-relaxing-cat|\\/\\/s3.amazonaws.com\\/freecodecamp\\/relaxing-cat.jpg\", \"gi\").test($(\"img\").attr(\"src\")), 'message: Your image should have asrc
attribute that points to the kitten image.');",
"assert(code.match(/alt\\s*?=\\s*?(\\\"|\\').*(\\\"|\\')/), 'message: Your image element must have an alt
attribute.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"description": [
"Du kannst img
Elemente verwenden, um Bilder in deine Website einzubauen. Um zur URL des Bildes zu verweisen, benutzt du das src
Attribut.",
"Ein Beispiel dafür wäre:",
"<img src=\"https://www.deine-bild-quelle.com/dein-bild.jpg\">
",
"Beachte dass in den meisten Fällen img Elemente selbstschließend sind.",
"Versuche es mit diesem Bild:",
"https://bit.ly/fcc-relaxing-cat
"
]
},
"fr": {
"title": "Ajouter des images à votre site Web",
"description": [
"Vous pouvez ajouter des images à votre site Web en utilisant l'élément img
et pointer vers une URL d'image spécifique en utilisant l'attribut src
.",
"Un exemple de cette procédure serait :",
"<img src=\"https://www.your-image-source.com/your-image.jpg\">
",
"Note that in most cases, img
elements are self-closing.",
"Prenez note que dans la plupart des cas, les éléments img
sont auto-fermants.",
"Essayez avec cette image :",
"https://bit.ly/fcc-relaxing-cat
"
]
},
"pt-br": {
"title": "Adicione Imagens em sua Página Web",
"description": [
"Você pode adicionar imagens à sua página da internet com o uso do elemento img
, e apontar para a URL específica de uma imagem utilizando o atributo src
.",
"Um exemplo para isso seria:",
"<img src=\"https://www.your-image-source.com/your-image.jpg\">
",
"Observe que na maior parte dos casos, os elementos img
são de fechamento automático.",
"Agora, tente fazer isso com essa imagem:",
"https://bit.ly/fcc-relaxing-cat
"
]
},
"ru": {
"title": "Добавьте изображения к вашему сайту",
"description": [
"Вы можете добавлять изображения к вашему сайту с помощью элемента img
и указывать ссылки определённых изображений с помощтю атрибута src
.",
"Примером добавления мзображения может служить:",
"<img src=\"https://www.your-image-source.com/your-image.jpg\">
",
"Обратите внимание, что в большинстве случаев элементы img
являются самозакрывающимися.",
"Попробуйте добавить изображение используя следующую ссылку:",
"https://bit.ly/fcc-relaxing-cat
"
]
}
}
},
{
"id": "bad87fee1348bd9aedf08802",
"title": "Uncomment HTML",
"description": [
"Commenting is a way that you can leave comments within your code without affecting the code itself.",
"Commenting is also a convenient way to make code inactive without having to delete it entirely.",
"You can start a comment with <!--
and end a comment with -->
",
"Uncomment your h1
, h2
and p
elements."
],
"challengeSeed": [
""
],
"tests": [
"assert($(\"h1\").length > 0, 'message: Make your h1
element visible on your page by uncommenting it.');",
"assert($(\"h2\").length > 0, 'message: Make your h2
element visible on your page by uncommenting it.');",
"assert($(\"p\").length > 0, 'message: Make your p
element visible on your page by uncommenting it.');",
"assert(!/[^fc]-->/gi.test(code.replace(/ *"
],
"tests": [
"assert(($(\"h1\").length === 0), 'message: Comment out your h1
element so that it is not visible on your page.');",
"assert(($(\"h2\").length > 0), 'message: Leave your h2
element uncommented so that it is visible on your page.');",
"assert(($(\"p\").length === 0), 'message: Comment out your p
element so that it is not visible on your page.');",
"assert(code.match(/[^fc]-->/g).length > 1, 'message: Be sure to close each of your comments with -->
.');",
"assert((code.match(/<([a-z0-9]){1,2}>/g)[0]===\"\" && code.match(/<([a-z0-9]){1,2}>/g)[1]===\"\" && code.match(/<([a-z0-9]){1,2}>/g)[2]===\"
\") , 'message: Do not change the order of the h1
h2
or p
in the code.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"description": [
"Denk daran, dass du einen Kommentar mit <!--
anfangen und mit -->
wieder beenden werden.",
"Hier wirst du deinen Kommentar vor dem h2
Element beenden müssen.",
"Kommentiere die h1
und p
Elemente aus, aber lasse dein h2
Element unkommentiert."
]
},
"fr": {
"title": "Commentez du HTML",
"description": [
"Souvenez-vous que pour débuter un commentaire, vous devez utiliser <!--
et que pour le terminer, vous devez utiliser -->
.",
"Ici vous devrez terminer le commentaire juste avant que l'élément h2
commence.",
"Commentez les éléments h1
et p
, mais laissez l'élément h2
tel quel."
]
},
"pt-br": {
"title": "Comente o HTML",
"description": [
"Lembre-se que para iniciar um comentário você precisa utilizar <!--
, e para terminar um comentário é necessário usar -->
.",
"Aqui, você deverá terminar o comentário antes que seu elemento h2
inicie.",
"Comente o elemento h1
e o elemento p
, e deixe o elemento h2
sem nenhum comentário."
]
},
"ru": {
"title": "Закомментируйте HTML",
"description": [
"Помните, что для начала комментария вам необходимо использовать <!--
, а для завершения комментария - -->
",
"Тут вам необходимо завершить комментарий до начала вашего элемента h2
.",
"Закомментируйте ваши элементы h1
и p
, но оставьте ваш элемент h2
раскомментированным."
]
}
}
},
{
"id": "bad87fed1348bd9aedf08833",
"title": "Delete HTML Elements",
"description": [
"Our phone doesn't have much vertical space.",
"Let's remove the unnecessary elements so we can start building our CatPhotoApp.",
"Delete your h1
element so we can simplify our view."
],
"challengeSeed": [
"
Hello World
",
"",
"CatPhotoApp
",
"",
"Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
"
],
"tests": [
"assert(($(\"h1\").length == 0), 'message: Delete your h1
element.');",
"assert(($(\"h2\").length > 0), 'message: Leave your h2
element on the page.');",
"assert(($(\"p\").length > 0), 'message: Leave your p
element on the page.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"description": [
"Unser Smartphone hat nicht sehr viel vertikalen Platz.",
"Lass uns die unwichtigen Elemente entfernen, damit wir unsere CatPhotoApp entwickeln können.",
"Lösche die Elemente h1
, damit wir etwas Ordnung schaffen."
]
},
"fr": {
"title": "Supprimer des éléments HTML",
"description": [
"Notre téléphone n'a pas beaucoup d'espace vertical.",
"Enlevons les éléments superflus pour débuter la construction de notre application de photos de chats.",
"Supprimez l'élément h1
afin de simplifier l'affichage."
]
},
"pt-br": {
"title": "Apague Elementos HTML",
"description": [
"Nosso celular não possui muito espaço vertical.",
"Vamos eliminar os elementos desnecessários para começar a construir nosso CatPhotoApp.",
"Apague o elemento h1
para simplificar o nosso espaço."
]
},
"ru": {
"title": "Удалите HTML-элементы",
"description": [
"Наш телефон не очень большой по-вертикали.",
"Давайте удалим некоторые ненужные элементы, чтобы мы могли приступить к созданию приложения CatPhotoApp.",
"Удалите ваш h1
элемент, чтобы упростить общий вид."
]
}
}
},
{
"id": "bad87fee1348bd9aedf08816",
"title": "Link to External Pages with Anchor Elements",
"description": [
"a
elements, also known as anchor
elements, are used to link to content outside of the current page.",
"Here's a diagram of an a
element. In this case, the a
element is used in the middle of a paragraph element, which means the link will appear in the middle of a sentence.",
"
",
"Here's an example:",
"<p>Here's a <a href=\"http://freecodecamp.com\"> link to Free Code Camp</a> for you to follow.</p>
",
"Create an a
element that links to http://freecatphotoapp.com
and has \"cat photos\" as its anchor text
."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
",
"",
"
",
"",
"Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
",
"Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
"
],
"tests": [
"assert((/cat photos/gi).test($(\"a\").text()), 'message: Your a
element should have the anchor text
of \"cat photos\".');",
"assert(/http:\\/\\/(www\\.)?freecatphotoapp\\.com/gi.test($(\"a\").attr(\"href\")), 'message: You need an a
element that links to http://freecatphotoapp.com
');",
"assert(code.match(/<\\/a>/g) && code.match(/<\\/a>/g).length === code.match(/a
element has a closing tag.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"title": "Verlinke externe Seiten mit Anker Elementen",
"description": [
"a
Elemente, auch bekannt als anchor
(Anker) Elemente, werden verwendet um auf Inhalte außerhalb der aktuellen Seite zu verlinken.",
"So sieht ein a
Element aus. In diesem Fall wird es innerhalb eines Paragraphen Elements verwendet. Das bedeutet dein Link wird innerhalb des Satzes erscheinen.",
"
",
"Hier ist ein Beispiel:",
"<p>Hier ist ein <a href=\"http://freecodecamp.com\"> Link zu Free Code Camp</a> dem du folgen kannst.</p>
",
"Erstelle ein a
Element, das auf http://freecatphotoapp.com
verlinkt und den \"cat photos\" als anchor text
(Link-Text) beinhaltet."
]
},
"es": {
"title": "Enlaza páginas externas con elementos ancla",
"description": [
"Los elementos a
, también conocidos como elementos ancla
, se utilizan para enlazar a contenido fuera de la página actual.",
"Aquí está un diagrama de un elemento a
. En este caso, el elemento a
se utiliza en el medio de un elemento de párrafo, lo que significa que el enlace aparecerá en el medio de una frase. ",
"
",
"He aquí un ejemplo:",
"<p>Aquí está un <a href=\"https://freecodecamp.com\"> enlace a Free Code Camp</a> para que lo sigas.</p>
",
"Crea un elemento a
que se vincule a http://freecatphotoapp.com
y tenga como texto de ancla
\"fotos de gatos\"."
]
},
"pt-br": {
"title": "Ligue Páginas Externas com o Elemento Âncora",
"description": [
"Os elementos a
, também conhecidos como elementos âncora
, são utilizados para ligar conteúdo fora da página atual.",
"Aqui está um diagrama de um elemento a
. Neste caso, o elemento a
é utilizado no meio de um elemento de parágrafo, o que significa que o link externo aparecerá no meio de uma frase.",
"
",
"Veja um exemplo:",
"<p>Aqui está um <a href=\"https://freecodecamp.com\"> link ligado ao Free Code Camp</a> para que você o siga.</p>
",
"Crie um elemento a
que esteja ligado ao site http://freecatphotoapp.com
e tenha como texto de âncora
\"fotos de gatos\"."
]
},
"ru": {
"title": "Присоедините внешние страницы с помощью якорных элементов",
"description": [
"Элементы a
, также известные как якорные
элементы, применяют для связи с содержимым вне текущей страницы.",
"Вот диаграмма элемента a
. В этом случае, элемент a
использован в середине элемента параграфа, что значит, что ссылка появится в середине предложения.",
"
",
"Вот пример:",
"<p>Вот <a href=\"http://freecodecamp.com\"> ссылка на Free Code Camp</a> для перехода на ресурс.</p>
",
"Создайте элемент a
, который присоединяет http://freecatphotoapp.com
и имеет значение \"cat photos\" в качестве текста якоря
."
]
}
}
},
{
"id": "bad88fee1348bd9aedf08816",
"title": "Link to Internal Sections of a Page with Anchor Elements",
"description": [
"In addition to creating external links, anchor elements can also be used to create internal links, which are links that jump to different sections within a webpage.",
"The format is similar to an external link except instead of a URL, you'll use the #
and a word to describe the section you want to jump to.",
"Here's an example:",
"<a href=\"#contact\">Go to contact section</a>
",
"Next, you'll want to create a corresponding anchor link in the HTML where you want the internal link to take users. Instead of using the href
attribute, you'll use the name
attribute. Here's an example:",
"<h1>Contact</h1>
<a name=\"contact\"></a>
",
"Now when users click the \"Go to contact section\" link, they'll be taken to the section of the webpage with the anchor that has the name
attribute \"contact\".",
"
",
"Change your external link to an internal link by changing the href
attribute to \"#bottom\" and the anchor text from \"cat photos\" to \"Jump to Bottom\".",
"Then add an anchor link with a name
attribute set to \"bottom\" after the last paragraph.",
"Note
Additional kitty ipsum text has been added to the paragraphs to better show the effect of clicking the internal anchor link to jump to the bottom of the page."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
",
"",
"cat photos",
"",
"
",
"",
"Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff. Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched. Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
",
"Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched. Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff. Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
"
],
"tests": [
"assert($('a').length == 2, 'message: There should be only two anchor tags on your page.');",
"assert($('a').eq(0).attr('href') == \"#bottom\", 'message: The first a
tag should have an href
attribute set to #bottom.');",
"assert($('a').eq(1).attr('name') == \"bottom\", 'message: The second a
tag should have a name
attribute set to bottom.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {}
},
{
"id": "bad87fee1348bd9aede08817",
"title": "Nest an Anchor Element within a Paragraph",
"description": [
"Again, here's a diagram of an a
element for your reference:",
"
",
"Here's an example:",
"<p>Here's a <a href=\"https://freecodecamp.com\"> link to Free Code Camp</a> for you to follow.</p>
",
"Nesting
just means putting one element inside of another element.",
"Now nest your existing a
element within a new p
element (just after the existing h2
element) so that the surrounding paragraph says \"View more cat photos\", but where only \"cat photos\" is a link, and the rest of the text is plain text."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
",
"",
"cat photos",
"",
"
",
"",
"Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
",
"Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
"
],
"tests": [
"assert(($(\"a[href=\\\"http://freecatphotoapp.com\\\"]\").length > 0 || $(\"a[href=\\\"http://www.freecatphotoapp.com\\\"]\").length > 0), 'message: You need an a
element that links to \"http://freecatphotoapp.com\".');",
"assert($(\"a\").text().match(/cat\\sphotos/gi), 'message: Your a
element should have the anchor text of \"cat photos\"');",
"assert($(\"p\") && $(\"p\").length > 2, 'message: Create a new p
element around your a
element.');",
"assert(($(\"a[href=\\\"http://freecatphotoapp.com\\\"]\").parent().is(\"p\") || $(\"a[href=\\\"http://www.freecatphotoapp.com\\\"]\").parent().is(\"p\")), 'message: Your a
element should be nested within your new p
element.');",
"assert(($(\"a[href=\\\"http://freecatphotoapp.com\\\"]\").parent().text().match(/View\\smore\\s/gi) || $(\"a[href=\\\"http://www.freecatphotoapp.com\\\"]\").parent().text().match(/View\\smore\\s/gi)), 'message: Your p
element should have the text \"View more \" (with a space after it).');",
"assert(!$(\"a\").text().match(/View\\smore/gi), 'message: Your a
element should not have the text \"View more\".');",
"assert(code.match(/<\\/p>/g) && code.match(//g).length === code.match(/
p
elements has a closing tag.');",
"assert(code.match(/<\\/a>/g) && code.match(//g).length === code.match(/a elements has a closing tag.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"title": "Umschließe ein Anker Element mit einem Paragraphen",
"description": [
"Hier ist nochmal ein Beispiel für ein a
Element:",
"
<p>Hier ist ein <a href=\"https://freecodecamp.com\"> Link zu Free Code Camp</a> dem du folgen kannst.</p>
",
"Nesting
bedeuted ein Element innerhalb eines anderen Elements zu schreiben",
"Jetzt umschließe dein a
Element mit einem neuen p
Element (direkt nach dem bereits existierenden h2
Element) indem steht \"View more cat photos\", wo allerdings nur \"cat photos\" ein Link ist und der Rest normaler Text."
]
},
"es": {
"title": "Anida un elemento de ancla dentro de un párrafo",
"description": [
"Una vez más, aquí está un diagrama de un elemento a
para tu referencia:",
"
<p>Aquí hay un <a href=\"https://freecodecamp.com\"> enlace a Free Code Camp</a> para que lo sigas.</p>
",
"Anidamiento
simplemente significa poner un elemento dentro de otro elemento.",
"Ahora anida el elemento a
existente dentro de un nuevo elemento p
(justo después del elemento h2
que ya tienes) de tal forma que el párrafo que lo rodee diga \"View more cat photos\", pero que sólo \"cat photos\" sea un enlace, y el resto sea texto plano ."
]
},
"pt-br": {
"title": "Aninhe o Elemento Âncora no Interior de um Parágrafo",
"description": [
"Outra vez, aqui está um diagrama de um elemento a
para você usar como referência.",
"
<p>Este é um <a href=\"https://freecodecamp.com\"> link ligado ao Free Code Camp</a> para que você o siga.</p>
",
"Aninhamento
significa ter um elemento no interior de outro elemento.",
"Agora, aninhe o elemento a
existente dentro de um novo elemento p
de forma que o parágrafo diga \"View more cat photos\", mas onde apenas \"cat photos\" seja um link, e o resto seja texto comum."
]
},
"ru": {
"title": "Создайте вложенный якорный элемент внутри параграфа",
"description": [
"Вот диаграмма элемента a
:",
"
<p>Вот <a href=\"https://freecodecamp.com\"> ссылка на Free Code Camp</a> для перехода на ресурс.</p>
",
"Вложенность
значит установку одного элемента внутрь друго элемента.",
"Теперь вложите ваш существующий элемент a
внутрь нового элемента p
(сразу после существующего элемента h2
) таким образом, что добавляемый параграф сообщает: \"View more cat photos\", но где только \"cat photos\" является ссылкой, а остальной текст обычный."
]
}
}
},
{
"id": "bad87fee1348bd9aedf08817",
"title": "Make Dead Links using the Hash Symbol",
"description": [
"Sometimes you want to add a
elements to your website before you know where they will link.",
"This is also handy when you're changing the behavior of a link using jQuery
, which we'll learn about later.",
"The current value of the href
attribute is a link that points to \"http://freecatphotoapp.com\". Replace the href
attribute value with a #
, also known as a hash symbol, to create a dead link."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
", "", "Click here to view more cat photos.
", "", "Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
", "Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
" ], "tests": [ "assert($(\"a\").attr(\"href\") === \"#\", 'message: Youra
element should be a dead link with the value of the href
attribute set to \"#\".');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"title": "Erstelle tote Links mit dem Hash Symbol",
"description": [
"Manchmal wirst du a
Elemente zu deiner Website hinzufügen möchten, ohne dass du das Ziel des Links kennst.",
"Das ist auch nützlich, wenn du die Funktion eines Links mit jQuery
verändern willst. Das werden wir später noch behandeln.",
"Ersetze den Inhalt des href
Attributs deines a
Elements mit einem #
, auch bekannt als Hash Symbol, um einen toten Link zu erzeugen."
]
},
"es": {
"title": "Haz vínculos muertos utilizando el símbolo de numero",
"description": [
"A veces quieres agregar elementos a
a tu sitio web antes de saber qué enlazarán.",
"Esto también es útil cuando estás cambiando el comportamiento de un enlace usando jQuery
, lo cual aprenderemos más adelante.",
"Reemplaza el atributo href
de tu elemento a
con un #
, también conocido como un símbolo de número o de hash, para convertirlo en un vínculo muerto."
]
},
"pt-br": {
"title": "Crie Links Inativos com o Símbolo Cerquilha",
"description": [
"As vezes você pode querer adicionar elementos a
em sua página web antes de saber o link que as ligará.",
"Isso também é útil quando você desejar mudar o comportamento de um link utilizando jQuery
, o que vamos aprender mais adiante.",
"Substitua o atributo href
de seu elemento a
por um #
, também conhecido como símbolo de hash ou hashtag. Isso o transformará em um link inativo."
]
},
"ru": {
"title": "Создайте мёртвые ссылки используя хэш-символ",
"description": [
"Иногда вам нужно добавить элементы a
к вашему сайту до того, как вы знаете куда будут вести ссылки.",
"Также это может оказаться полезно, когда вы меняете поведение ссылки используя jQuery
, что мы изучим позже.",
"Замените значение атрибута href
вашего элемента a
на #
, известное как хэш-символ, для превращения элемента в мёртвую ссылку."
]
}
}
},
{
"id": "bad87fee1348bd9aedf08820",
"title": "Turn an Image into a Link",
"description": [
"You can make elements into links by nesting them within an a
element.",
"Nest your image within an a
element. Here's an example:",
"<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\" alt=\"Three kittens running towards the camera.\"></a>
",
"Remember to use #
as your a
element's href
property in order to turn it into a dead link.",
"Place the existing image element within an anchor element.",
"Once you've done this, hover over your image with your cursor. Your cursor's normal pointer should become the link clicking pointer. The photo is now a link."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
", "", "Click here for cat photos.
", "", "Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
", "Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
" ], "tests": [ "assert($(\"a\").children(\"img.smaller-image\").length > 0, 'message: Nest the existingimg
element within an a
element.');",
"assert(new RegExp(\"#\").test($(\"a\").children(\"img\").parent().attr(\"href\")), 'message: Your a
element should be a dead link with a href
attribute set to #
.');",
"assert(code.match(/<\\/a>/g) && code.match(//g).length === code.match(/a elements has a closing tag.');"
],
"type": "waypoint",
"challengeType": 0,
"translations": {
"de": {
"title": "Verlinke ein Bild",
"description": [
"Du kannst jedes Element in einen Link verwandeln, indem du es mit einem a
Element umschließt.",
"Umschließe dein Bild mit einem a
Element. Hier ist ein Beispiel:",
"<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\"></a>
",
"Vergewissere dich, dass du ein #
innerhalb des href
Attributs des a
Elements nutzt, um daraus einen toten Link zu machen.",
"Sobald du das gemacht hast, kannst du mit der Maus über dein Bild fahren. Der normale Mauszeiger sollte nun zu einer Hand für Links werden. Das Bild ist jetzt ein Link."
]
},
"es": {
"title": "Convierte una imagen en un vínculo",
"description": [
"Puedes convertir elementos en enlaces al anidarlos dentro de un elemento a
.",
"Anida tu imagen dentro de un elemento a
. He aquí un ejemplo: ",
"<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\"/></a>
",
"Recuerda usar #
como atributo href
de tu elemento a
con el fin de convertirlo en un vínculo muerto.",
"Una vez hayas hecho esto, coloca el cursor sobre tu imagen. El puntero normal de tu cursor debería convertirse en el puntero de enlace. La foto es ahora un vínculo ."
]
},
"pt-br": {
"title": "Transforme uma Imagem em um Link",
"description": [
"Você pode transformar elementos em links ao aninhá-los com um elemento a
.",
"Aninhe sua imagem dentro de um elemento a
. Temos aqui um exemplo.",
"<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\"/></a>
",
"Lembre de usar #
como atributo href
de seu elemento a
para tornar o link inativo."
]
},
"ru": {
"title": "Превратите изображение в ссылку",
"description": [
"Вы можете превратить элементы в ссылки путём их вложения внутрь элементов a
.",
"Вложите ваше изображение в элемент a
. Вот пример:",
"<a href=\"#\"><img src=\"https://bit.ly/fcc-running-cats\"></a>
",
"Не забывайте использовать #
в качестве значения атрибута href
вашего элемента a
для превращения ссылки в мёртвую.",
"Как только вы это сделаете, наведите курсор мыши на ваше изображение. При этом курсор должен изменить вид с обычного на используемый при наведении на ссылки. Ваше фото теперь является ссылкой."
]
}
}
},
{
"id": "bad87fee1348bd9aedf08827",
"title": "Create a Bulleted Unordered List",
"description": [
"HTML has a special element for creating unordered lists
, or bullet point-style lists.",
"Unordered lists start with a <ul>
element. Then they contain some number of <li>
elements.",
"For example: ",
"<ul>", "would create a bullet point-style list of \"milk\" and \"cheese\".", "Remove the last two
<li>milk</li>
<li>cheese</li>
</ul>
p
elements and create an unordered list of three things that cats love at the bottom of the page."
],
"challengeSeed": [
"",
"",
"",
"CatPhotoApp
", "", "Click here for cat photos.
", "", "Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.
", "Purr jump eat the grass rip the couch scratched sunbathe, shed everywhere rip the couch sleep in the sink fluffy fur catnip scratched.
" ], "tests": [ "assert($(\"ul\").length > 0, 'message: Create aul
element.');",
"assert($(\"ul li\").length > 2, 'message: You should have three li
elements within your ul
element.');",
"assert(code.match(/<\\/ul>/gi) && code.match(/- /gi).length === code.match(/
- ]/gi) && code.match(/<\\/li>/gi).length === code.match(/
- ]/gi).length, 'message: Make sure your
li
elements have closing tags.');" ], "type": "waypoint", "challengeType": 0, "translations": { "de": { "title": "Erstelle eine ungeordnete Liste", "description": [ "HTML hat ein spezielles Element zum Erstellen vonunordered lists
(ungeordneten Listen).", "Ungeordnete Listen starten mit einem<ul>
Element. Dann beinhalten sie eine gewisse Anzahl an<li>
Elementen.", "Zum Beispiel:", "<ul>
", "würde eine ungeordnete Liste für \"Milch\" und \"Käse\" erstellen.", "Entferne die letzten zwei
<li>Milch</li>
<li>Käse</li>
</ul>p
Elemente und erstelle eine ungeordnete Liste von drei Dingen die Katzen lieben am Ende der Seite" ] }, "es": { "title": "Crea una lista no ordenada con viñetas", "description": [ "HTML tiene un elemento especial para la creación delistas no ordenadas
, o listas con estilo viñeta.", "Las listas no ordenadas comienzan con un elemento<ul>
. A continuación contienen una cantidad de elementos<li>.
", "Por ejemplo: ", "<ul>
", "creará una lista con viñetas y con elementos \"leche\" y \"queso\".", "Elimina los dos últimos elementos
<li>leche</li>
<li>queso</li>
</ul>p
y en la parte inferior de la página crea una lista no ordenada de tres cosas que los gatos aman." ] }, "pt-br": { "title": "Crie uma Lista Não Ordenada com Marcadores", "description": [ "O HTML possui um elemento especial para a criação delistas não ordenadas
, ou listas com marcadores.", "As listas não ordenadas iniciam com um elemento<ul>
. Logo após, possuem uma série de elementos<li>.
", "Por exemplo:", "<ul>
", "<li>leite</li>
", "<li>queijo</li>
", "</ul>
", "Isso criará uma lista com marcadores que tem como elementos \"leite\" e \"queijo\".", "Apague os dois últimos elementosp
e no final da página crie uma lista não ordenada com três coisas que os gatos adoram." ] }, "ru": { "title": "Создайте ненумерованный неупорядоченный список", "description": [ "В HTML есть специальный элемент для созданиянеупорядоченного списка
, или списка с точками в виде меток элементов.", "Неупорядоченные списки начинаются с элемента<ul>
. Затем они содержат некоторе количество элементов<li>
.", "Например: ", "<ul>
", "создаст ненумерованный список из \"milk\" и \"cheese\".", "Удалите последние два элемента
<li>milk</li>
<li>cheese</li>
</ul>p
и создайте неупорядоченный список из трёх вещей, которые любят кошки." ] } } }, { "id": "bad87fee1348bd9aedf08828", "title": "Create an Ordered List", "description": [ "HTML has a special element for creatingordered lists
, or numbered-style lists.", "Ordered lists start with a<ol>
element. Then they contain some number of<li>
elements.", "For example:", "<ol>
", "would create a numbered list of \"Garfield\" and \"Sylvester\".", "Create an ordered list of the top 3 things cats hate the most." ], "challengeSeed": [ "", "", "", "
<li>Garfield</li>
<li>Sylvester</li>
</ol>CatPhotoApp
", "", "Click here for cat photos.
", "", "", "", "
Things cats love:
", "- ",
"
- cat nip ", "
- laser pointers ", "
- lasagna ", "
Top 3 things cats hate:
" ], "tests": [ "assert((/Top 3 things cats hate:/i).test($(\"ol\").prev().text()), 'message: You should have an ordered list for \"Top 3 things cats hate:\"');", "assert((/Things cats love:/i).test($(\"ul\").prev().text()), 'message: You should have an unordered list for \"Things cats love:\"');", "assert.equal($(\"ul li\").length, 3, 'message: You should have threeli
elements within yourul
element.');", "assert.equal($(\"ol li\").length, 3, 'message: You should have threeli
elements within yourol
element.');", "assert(code.match(/<\\/ul>/g) && code.match(/<\\/ul>/g).length === code.match(/- /g).length, 'message: Make sure your
- /g) && code.match(/<\\/li>/g).length === code.match(/
- /g).length, 'message: Make sure your
li
element has a closing tag.');" ], "type": "waypoint", "challengeType": 0, "translations": { "de": { "title": "Erstelle eine geordnete Liste", "description": [ "HTML beinhaltet ein spezielles Element fürordered lists
(geordnete Listen).", "Geordnete Listen starten mit einem<ol>
Element. Dann enthalten sie eine gewisse Anzahl an<li>
Elementen.", "Zum Beispiel:", "<ol>
", "würde eine nummerierte Liste mit \"Garfield\" und \"Sylvester\" erstellen.", "Erstelle eine geordnete Liste von den drei Dingen, die Katzen am meisten hassen." ] }, "es": { "title": "Crear una lista ordenada", "description": [ "HTML tiene un elemento especial para la creación de
<li>Garfield</li>
<li>Sylvester</li>
</ol>listas ordenadas
, o listas de estilo numerado.", "Las listas ordenadas comienzan con un elemento<ol>
. Luego contienen un número de elementos<li>.
", "Por ejemplo:", "<ol>
", "creará una lista numerada con \"Garfield\" y \"Sylvester\".", "Crea una lista ordenada de los 3 cosas que más odian los gatos." ] }, "pt-br": { "title": "Crie uma Lista Ordenada", "description": [ "O HTML possui um elemento especial para a criação de
<li>Garfield</li>
<li>Sylvester</li>
</ol>listas ordenadas
, ou listas numeradas.", "As listas ordenadas iniciam com um elemento<ol>
. Logo após, contém uma série de elementos<li>.
", "Por exemplo:", "<ol>
", "<li>Garfield</li>
", "<li>Sylvester</li>
", "</ol>
", "Isso criará uma lista numerada com \"Garfield\" e \"Sylvester\".", "Crie uma lista ordenada com as três coisas que os gatos mais odeiam." ] }, "ru": { "title": "Создайте упорядоченный список", "description": [ "В HTML есть специальный элемент для созданияупорядоченных списков
, или списков с номерами в качестве меток элементов.", "Упорядоченные списки начинаются с элемента<ol>
. Далее они содержат некоторое количество элементов<li>
.", "Например:", "<ol>
", "создаст нумерованный список из \"Garfield\" и \"Sylvester\".", "Создайте нумерованный список из 3-х вещей, который кошки больше всего ненавидят." ] } } }, { "id": "bad87fee1348bd9aedf08829", "title": "Create a Text Field", "description": [ "Now let's create a web form.", "Text inputs are a convenient way to get input from your user.", "You can create one like this:", "
<li>Garfield</li>
<li>Sylvester</li>
</ol><input type=\"text\">
", "Note thatinput
elements are self-closing.", "Create aninput
element of typetext
below your lists." ], "challengeSeed": [ "", "", "", "CatPhotoApp
", "", "Click here for cat photos.
", "", "", "", "
Things cats love:
", "- ",
"
- cat nip ", "
- laser pointers ", "
- lasagna ", "
Top 3 things cats hate:
", "- ",
"
- flea treatment ", "
- thunder ", "
- other cats ", "
input
element of typetext
.');" ], "type": "waypoint", "challengeType": 0, "translations": { "de": { "title": "Erstelle ein Textfeld", "description": [ "Nun erstellen wir ein Web Formular.", "Eingabefelder sind eine bewährte Möglichkeit um Daten von Usern zu erhalten.", "So kannst du eines erstellen:", "<input type=\"text\">
", "Beachte, dassinput
Elemente selbstschließend sind.", "Erstelle eininput
Element des Typ (\"type\")text
unter deinen Listen." ] }, "es": { "title": "Crea un campo de texto", "description": [ "Ahora vamos a crear un formulario web.", "Los campos de texto son una manera conveniente de obtener retroalimentación de tu usuario.", "Puedes crear uno como este:", "<input type=\"text\">
", "Ten en cuenta que los elementosinput
son de cierre automático.", "Crea un elementoinput
de tipotext
debajo de tus listas." ] }, "pt-br": { "title": "Crie um Campo de Texto", "description": [ "Agora vamos criar um formulário web.", "Os campos de texto são uma forma conveniente de obter uma resposta do usuário.", "Você pode criar um assim:", "<input type=\"text\">
", "Note que os elementosinput
são de fechamento automático.", "Crie um elementoinput
de tipotext
abaixo de suas listas." ] }, "ru": { "title": "Создайте текстовое поле", "description": [ "Теперь давайте создадим web-форму.", "Поля текстового ввода - удобный способ получения данных от пользователя.", "Вы можете создать текстовое поле следующим образом:", "<input type=\"text\">
", "Обратите внимание, что элементыinput
самозакрывающиеся.", "Создайте элементinput
типаtext
под вашими списками." ] } } }, { "id": "bad87fee1348bd9aedf08830", "title": "Add Placeholder Text to a Text Field", "description": [ "Your placeholder text is what appears in your textinput
before your user has input anything.", "You can create placeholder text like so:", "<input type=\"text\" placeholder=\"this is placeholder text\">
", "Set theplaceholder
value of your textinput
to \"cat photo URL\"." ], "challengeSeed": [ "", "", "", "CatPhotoApp
", "", "Click here for cat photos.
", "", "", "", "
Things cats love:
", "- ",
"
- cat nip ", "
- laser pointers ", "
- lasagna ", "
Top 3 things cats hate:
", "- ",
"
- flea treatment ", "
- thunder ", "
- other cats ", "
placeholder
attribute to the existing textinput
element.');", "assert($(\"input\") && $(\"input\").attr(\"placeholder\") && $(\"input\").attr(\"placeholder\").match(/cat\\s+photo\\s+URL/gi), 'message: Set the value of your placeholder attribute to \"cat photo URL\".');", "assert($(\"input[type=text]\").length > 0 && code.match(/\\s]+))?)+\\s*|\\s*)\\/?>/gi), 'message: The finishedinput
element should have valid syntax.');" ], "type": "waypoint", "challengeType": 0, "translations": { "de": { "title": "Füge Platzhalter zu einem Textfeld hinzu", "description": [ "Platzhaltertexte erscheinen in deineninput
Feldern, bevor der Nutzer etwas eingibt.", "Du kannst Platzhalter auf folgende Weise erstellen:", "<input type=\"text\" placeholder=\"Das ist ein Platzhalter.\">
", "Setze bei deineminput
Element den Wert fürplaceholder
auf \"cat photo URL\"." ] }, "es": { "title": "Agrega un texto de relleno a un campo de texto", "description": [ "El texto de relleno es el que aparece en un campo de texto antes de que un usuario haya ingresado datos.", "Puedes crear un texto de relleno de esta manera:", "<input type=\"text\" placeholder=\"este es un texto de relleno\">
", "Establece el valor deltexto de relleno
de tu campo de texto como \"cat photo URL\"." ] }, "pt-br": { "title": "Adicione Texto Indicativo a um Campo de Texto", "description": [ "O texto indicativo é o que aparece em um campo de texto antes que um usuário tenha escrito algo.", "Você pode criar um texto indicativo assim:", "<input type=\"text\" placeholder=\"isso é um texto indicativo\">
", "Estabeleça o valor dotexto indicativo
do seu campo de texto como \"cat photo URL\"." ] }, "ru": { "title": "Добавьте замещающий текст к текстовому полю", "description": [ "Ваш замещающий текст - это то, что отображается в виде текста внутриinput
пока пользователь не ввёл туда что-либо.", "Вы можете создать замещающий текст следующим образом:", "<input type=\"text\" placeholder=\"это замещающий текст\">
", "Установите значение атрибутаplaceholder
вашего текстового поляinput
равными \"cat photo URL\"." ] } } }, { "id": "bad87fee1348bd9aede08830", "title": "Create a Form Element", "description": [ "You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on yourform
element.", "For example:", "<form action=\"/url-where-you-want-to-submit-form-data\"></form>
", "Nest your text field in aform
element. Add theaction=\"/submit-cat-photo\"
attribute to this form element." ], "challengeSeed": [ "", "", "", "CatPhotoApp
", "", "Click here for cat photos.
", "", "", "", "
Things cats love:
", "- ",
"
- cat nip ", "
- laser pointers ", "
- lasagna ", "
Top 3 things cats hate:
", "- ",
"
- flea treatment ", "
- thunder ", "
- other cats ", "
form
element.');", "assert($(\"form\").attr(\"action\") === \"/submit-cat-photo\", 'message: Make sure yourform
has anaction
attribute which is set to/submit-cat-photo
');", "assert(code.match(/<\\/form>/g) && code.match(/" ], "tests": [ "assert($(\"form\").children(\"button\").length > 0, 'message: Your form should have a button inside it.');", "assert($(\"button\").attr(\"type\") === \"submit\", 'message: Your submit button should have the attributetype
set tosubmit
.');", "assert($(\"button\").text().match(/^\\s*submit\\s*$/gi), 'message: Your submit button should only have the text \"Submit\".');", "assert(code.match(/<\\/button>/g) && code.match(/
ul
element has a closing tag.');", "assert(code.match(/<\\/ol>/g) && code.match(/<\\/ol>/g).length === code.match(/- /g).length, 'message: Make sure your
ol
element has a closing tag.');", "assert(code.match(/<\\/li>/g) && code.match(/
- ul element has a closing tag.');",
"assert(code.match(/<\\/li>/gi) && code.match(/