Question:
We are currently using the for our Docsify-powered contributing documentation. One of the alert types, , also accepts the keyword to render. We currently render one of these boxes with and four of them with . For consistency sake, we should use the same keyword to render these. IMHO, with the displayed text being "Attention" we should use the keyword, but I wanted to get some feedback before opening this up to first timers. As an alternative, if we prefer the text, we can modify the plugin config to render on the end-user view instead of .
At this time, there are 4 instances of usage of and 1 instance for , I think it would make sense to make it consistent. And seeing that with the displayed being "Attention" I agree on that being the one used.
+1 on making it
I am happy either way. The only reason I came into this is because I am used to the Bootstrap way of naming, and naturally put DANGER.
Alright, I am going to open this up to first timers. A pull request that closes this issue will: Replace all instances of with in the directory Will not modify any of the files in the directory (these will be updated through our translation worfklow) If you are interested in resolving this issue, we recommend starting with our . If you have further questions feel free to join us in our .
Hi, can I try this out?
Sure thing! Let us know if you have any questions :)
Hey Nick, I would like to work on this!
I also thought of that, but as this issue has been already received by someone, let's give them some time! If it is more than a week without no response, you can grab this!
Yup I got that. That's why I commented so if they are unable then I can pick that up

be a rolling update or a manual update. The later is essential when changing dependencies or adding environment variables. <del> > [!DANGER] The automated pipelines are not handling dependencies updates at the </del> <ins> > [!ATTENTION] The automated pipelines are not handling dependencies updates at the </ins> > minute. We need to do a manual update before any deployment pipeline runs. #### 1. Manual Updates - Used for updating dependencies, env variables.

pm2 logs ``` <del> > [!DANGER] </del> <ins> > [!ATTENTION] </ins> > For client applications, the shell script can't be resurrected between Node.js versions with `pm2 resurrect`. Deploy processes from scratch instead. This should become nicer when we move to a docker based setup. ## Installing and Updating Azure Pipeline Agents

| npm (comes bundled with Node)                                                                 | `6.x`   | Does not have LTS releases, we use the version bundled with Node LTS | | [MongoDB Community Server](https://docs.mongodb.com/manual/administration/install-community/) | `4.0.x` | [Release Notes](https://docs.mongodb.com/v4.0/release-notes/)        | <del> > [!DANGER] </del> <ins> > [!ATTENTION] </ins> > If you have a different version, please install the recommended version. We can only support installation issues for recommended versions. See [troubleshooting](#troubleshooting) for details. If Node.js is already installed on your machine, run the following commands to validate the versions:


Question:
The challenge title of challenge Use && for a More Concise Conditional is not translatable on Crowdin ! (the greyed out text is for not translatable strings) An other challenge where the title is translatable ! this is the link for crowdin file: markdown file for the challenge:
mind taking a look?
I have manually marked the string as translatable today. After our workflows run tomorrow, I will confirm the string is still translatable - if it is not, I will investigate further.
Reopen if still and issue.
this actually happened again with last update
Just to add that this is also happening in pt-BR. The entry is blocked for translation. I suspect this has to do with the double ampersand.
Hello, we are a group of researchers developing machine learning techniques to locate issues suitable for newcomers, and our model consider this issue as likely a "good first issue". May we recommend you to label it as "good first issue" so newcomers know where to choose? Thank you!
thanks but it is not - this needs to be done through Crowdin pipeline, will need to do it, again

CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CURRICULUM }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} <ins> - name: Unhide Title of Use && For a More Concise Conditional uses: ./tools/crowdin/actions/unhide-specific-string with: filename: 'react/use--for-a-more-concise-conditional.md' string-content: 'Use && for a More Concise Conditional' env: CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CURRICULUM }} CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} </ins>

<ins> name: 'Unhide Specific String' description: "Updates a specific string to be not hidden" runs: using: 'node12' main: './index.js' inputs: filename: description: 'name of file with specific string to hide' required: true string-content: description: 'text content of string to unhide' required: true </ins>

<ins> require('dotenv').config({ path: `${__dirname}/../../.env` }); const core = require('@actions/core'); const { getFiles } = require('../../utils/files'); const { getStrings, changeHiddenStatus } = require('../../utils/strings'); const filename = core.getInput('filename'); const stringContent = core.getInput('string-content'); const hideString = async (projectId, fileName, string) => { const fileResponse = await getFiles(projectId); const targetFile = fileResponse.find(el => el.path.endsWith(filename)); if (!targetFile) { core.setFailed(`${fileName} was not found.`); return; } const stringResponse = await getStrings({ projectId, fileId: targetFile.fileId }); const targetString = stringResponse.find(el => el.data.text === string); if (!targetString) { core.setFailed(`${string} was not found.`); return; } await changeHiddenStatus(projectId, targetString.data.id, false); console.log('string unhidden!'); }; const projectId = process.env.CROWDIN_PROJECT_ID; hideString(projectId, filename, stringContent); </ins>


Question:
Affected page Any profile with a portfolio item: To Reproduce 1) Go to above portfolio link 2) Scroll to first and only portfolio item 3) Be shocked and horrified at word-wrapping Expected behaviour There should be no word wrapping breaking the word. I suggest something be to the CSS like: Screenshots ! Reported on forum: An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
Hi I had a look at this. It appears that this line is creating the mess. Wouldn't it be better to just remove that rule? I've tested it through dev tools and it works. Also checked the source and it appears that is only referenced in , so there are probably no unwanted side effects. Unfortunately, I can't access the profile page on my local setup to test. On a sidenote, how could I setup my local instance so that I can access the profile page? Anyway, what do you think?
Potentially. But, as you say, only if there are no side-effects. It is in this section of the . If you want to make the change, and open a PR, I think that makes sense. We will QA it, and, if anyone notices the change breaking something else, then we can work from there. Thanks, for digging deeper into this.
Thanks! Will send a PR, tomorrow!

min-width: 150px; } <del> .media { word-break: break-all; } </del> /* Timeline pagination */ .timeline-pagination_list { list-style: none;


Question:
When trying to view a JS solution, the following error appears in dev, explaining the issue in production. It seems we followed the expected prop-types too early (ref: ). The object is still an object literal. Reported on forum:
I have the same problem as I said in the forum, the bottom error says it responded with 404 to the request for the certification on JS algorithms and data structures. Seems like there's an issue with the backend reaching that certification. !

type SolutionStateType = { projectTitle: string; <del> challengeFiles: ChallengeFileType[] | null; </del> <ins> files?: ChallengeFileType[] | null; </ins> solution: CompletedChallenge['solution']; isOpen: boolean; }; const initSolutionState: SolutionStateType = { projectTitle: '', <del> challengeFiles: null, </del> <ins> files: null, </ins> solution: null, isOpen: false };

return null; } <del> const { solution, githubLink, challengeFiles } = completedProject; </del> <ins> const { solution, githubLink, files } = completedProject; </ins> const onClickHandler = () => setSolutionState({ projectTitle, <del> challengeFiles, </del> <ins> files, </ins> solution, isOpen: true }); <del> if (challengeFiles) { </del> <ins> if (files) { </ins> return ( <button className='project-link-button-override'

name, user: { username } } = props; <del> const { challengeFiles, isOpen, projectTitle, solution } = solutionState; </del> <ins> const { files, isOpen, projectTitle, solution } = solutionState; </ins> return ( <div> {t(

<Spacer /> {isOpen ? ( <ProjectModal <del> files={challengeFiles} </del> <ins> files={files} </ins> handleSolutionModalHide={handleSolutionModalHide} isOpen={isOpen} projectTitle={projectTitle}

challengeType?: number; completedDate: number; challengeFiles: ChallengeFileType[] | null; <ins> // TODO: remove once files->challengeFiles is refactored files?: ChallengeFileType[] | null; </ins> }; // TODO: renames: files => challengeFiles; key => fileKey; #42489 export type ChallengeFileType =


Question: Affected page docs/how-to-setup-freecodecamp- To Reproduce Steps to reproduce the behavior: to '' down to "Quick commands reference" section that it says - command for run test and server tests are "npm run test:client" and "npm run test:server" Expected behavior It should be and instead Screenshots ! System (please complete the following information): Device: [e.g. iPhone6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.4] Browser: [e.g. chrome, safari] Version: [e.g. 22] Additional context Add any other context about the problem here.

| `npm run develop`                                              | Starts the freeCodeCamp API Server and Client Applications.                         | | `npm run storybook`                                            | Starts Storybook for component library development.                                 | | `npm test`                                                     | Run all JS tests in the system, including client, server, lint and challenge tests. | <del> | `npm run test:client`                                          | Run the client test suite.                                                          | </del> <ins> | `npm run test-client`                                          | Run the client test suite.                                                          | </ins> | `npm run test:curriculum`                                      | Run the curriculum test suite.                                                      | | `npm run test:curriculum --block='Basic HTML and HTML5'`       | Test a specific Block.                                                              | | `npm run test:curriculum --superblock='responsive-web-design'` | Test a specific SuperBlock.                                                         | | `npm run test-curriculum-full-output`                          | Run the curriculum test suite, without bailing after the first error                | <del> | `npm run test:server`                                          | Run the server test suite.                                                          | </del> <ins> | `npm run test-server`                                          | Run the server test suite.                                                          | </ins> | `npm run e2e`                                                  | Run the Cypress end to end tests.                                                   | | `npm run clean`                                                | Uninstalls all dependencies and cleans up caches.                                   |


Question:
Describe the bug I am setting up the freecodecamp platform on my local following the instructions from I get this issue when I run . ! I have tried solutions given in below links: Still no luck. I also tried running the terminal on Rosetta, that also gave the same error. Desktop (please complete the following information): MacBook Air (M1, 2020) 11.4 (20F71)
can someone with a mac confirm this on another device? ?
I checked it yesterday but I didn't get any error. Also the docs suggest you to use Node v14. Could you try once with that version?
Oops. I had tried this on Node v14. My default version is 12, So at the time of creating the issue, it came as 12. Apologies. Here is the actual version.
Can you give some more info on what you've tried?
I forked and cloned the repo into my system. Then ran following commands. Environment: MacBook Air (M1, 2020) 11.4 (20F71) node: v14.16.1 npm: 6.14.12 terminal: iTerm 3.4.8 As suggested in , I went through these steps. I also tried removing the node_modules/sharp and installing it specifically to but no luck. It fails with below error. I might be missing something fundamental here. Not sure.
Did you configure your terminal to use Rosetta or are you using the normal terminal?
It is normal terminal.
Switched the terminal to run on Rosetta, deleted and installed all dependencies. The error is still the same. I verified that the terminal is running on Intel from Activity Monitor. PS: I have another Gatsby Project which has and it is running properly.
Hmm this is strange, I use the normal terminal and I haven't any issues in my M1 Mac. Could you try deleting your clone of FCC and starting again. Also how did you install Nodejs?
I installed NodeJS through NVM. Are you using terminal in rosetta or Apple M1?
Im using M1 terminal. I haven't come across the need to use Rosetta as of yet, so rosetta has not been enabled anywhere at all. Aha I knew I had missed something. Ok so when I got my M1, which was like a month or so back, I was reading up on Nodejs v14 support for M1 and at that time it was in testing stage as Node had made v15 and up fully support M1 but not v14. Later on a week later, they released a minor update v14.17 which backported support for v8. I think that if you use the v14.17 version you might not face any issue. Also just to be on the safer side, its better if you deleted your local clone of the repo. Also what output do you get when you run in terminal? Here's hoping that it works
Good that you recalled. Updating to node v14.17 worked!! PS: command output Do you think we need to update page for M1 users?
Hey Nice to hear that it worked! I don't think we need to add it in the contributors' guide because of the userbase being so small. Also, Node might update and the instructions could go out of date fast. You can always open a PR and we will review it. Have a nice day and looking forward to your contributions!
Perfect and also I think it would be better to add a small note in the "Troubleshooting" part of the contribution docs.
Added in
I am having the same issue with node v14.18.0
I suggest sticking to Node v14.17.0 for now if you are on M1 Mac.
tried switching too, still doesn't work, Gatsby is working though. Also, I am using a Linux machine

The first time setup can take a while depending on your network bandwidth. Be patient, and if you are still stuck we recommend using GitPod instead of an offline setup. <ins> > [!NOTE] > If you are using Apple Devices with M1 Chip to run the application locally, it is suggested to use Node v14.7 or above. You might run into issues with dependencies like Sharp otherwise. </ins> ## Getting Help If you are stuck and need help, feel free to ask questions on the ['Contributors' category on our forum](https://forum.freecodecamp.org/c/contributors) or [the contributors chat room](https://chat.freecodecamp.org/channel/contributors).


Question:
If any of the methods create new properties on the object the two tests for the properties and the one for the keys should fail. Not sure if the intent of the challenge needs to be clarified a bit better. We might want to refer back to the previous challenge "Use Closure to Protect Properties Within an Object from Being Modified Externally". Challenge: Forum post:
this probably can be tested only if we add a call to the setters (maybe also the getters to be throughful) before testing for the number of properties it wouldn't be too difficult to do, if we arrive to the conclusion that it is needed
Hi i would like to contribute to this issue. can you please define problem statement.
An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the

# --hints-- <del> `Object.keys(bob).length` should return 6. </del> <ins> No properties should be added. `Object.keys(bob).length` should always return 6. </ins> ```js <del> assert.deepEqual(Object.keys(bob).length, 6); </del> <ins> assert.strictEqual( Object.keys((function () { let bob = new Person('Bob Ross'); bob.setFirstName('Haskell'); bob.setLastName('Curry'); bob.setFullName('John Smith'); return bob; })()).length, 6 ); </ins> ``` `bob instanceof Person` should return `true`.


Question: <!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --From this forum topic: Affected page File: Your code Expected behavior As this challenge is about lazy matching this code should fail Maybe a way is to make sure that the character appear in the right place, there is a test that check if the character is used, so maybe we would need to have a test that check if or are used this in the screenshot checks only for , maybe we can add also the possibility to use as that is also lazy matching ! and just as we are there, removing the flag from the regex as it is not needed, see maybe also this can be fixed so that nor nor are included in the regex

`myRegex` should use lazy matching ```js <del> assert(/?/g.test(myRegex)); </del> <ins> assert(/[^][*+?]?/.test(myRegex)); </ins> ``` `myRegex` should not include the string `h1`


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Affected page Add a Link to the page with the problem. To Reproduce Steps to reproduce the behavior: to the video text "Help improve or add subtitles" is obscured by the video Expected behavior Either this text should be visible or the code should be removed. Screenshots The text is underneath this corner of the video. !
YouTube doesn't allow anymore for crowd sourcing subtitles If we don't have a different alternative it should be to remove the improve subtitles link for that challenge brings to a 404 page, I imagine all the others too if maybe there is a different service that allows for crowdsourcing subtitles the link could be updated (and the text made visible)

// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment videoId={videoId} /> <del> <i> <a href={ 'https://www.youtube.com/timedtext_editor?action_mde_edit_form=1&v=' + videoId + '&lang=en&bl=watch&ui=hd&ref=wt&tab=captions' } rel='noopener noreferrer' target='_blank' > {t('learn.add-subtitles')} </a> . </i> </del> </div> </Col> <Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>


Question:
I'm not sure if this was deliberately at some point, I'm guessing not - but viewing a cert solution for any cert brings up the JS code viewer with the URL in it when a URL is used to submit the project... ! Go View a solution See modal Possibly from this recent PR: - I swear I tested it
My bad. This line probably needs to change:
I just tried implementing your solution, but then realized I didn't know how to test if it worked without sign in/user data. How should that be done?
You should be able to log in - assuming the is set to true in your .env file. Then you can submit some projects, many of them can just be a URL and don't have any requirements. I believe the responsive web design, front end libraries, and data visualization don't require passing tests. So you should be able to get a cert like that and then go view it.
Turns out that login/the dev user doesn't work on my machine for some reason. Works fine on GitPod though, so it's been tested there.

isOpen: true }); <del> if (files) { </del> <ins> if (files?.length) { </ins> return ( <button className='project-link-button-override'


Question:
Continuing from This is a challenges with the function call used in the test not being visible in the test text. There may be others. The test text should include the function call used.
I'm not sure I understand here Are you referring to this test: How it doesn't say what exactly is being tested? The text should be more specific? edit: This challenge should definitely be renamed to
Sorry, it's this one: All elements from the first array should be to the second array in their original order. assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]); it happens that users use ways that don't agree with an empty array, but fail to understand why it is failing, and the only way for them to see that it was an empty array was to use inside the function and rely on the test logs
So to add, I think the test text should be something like The original text could be changed to be this, or the two could be combined in some way
A suggestion to try to make the description a little clearer: "You are given two arrays and an index. Copy each element of the first array into the second array, in order. Write a function called <codefrankenSplice</codethat receives the two arrays and an integer as the index <coden</codeon the second array where you start inserting the elements of the first array. The <codefrankenSplice</codefunction will return another array with the elements of the first array inserted in the second array starting on the index <coden</code. The input arrays should remain the same after the function runs." Also, to add to the idea expressed on "The first array should remain the same after the function runs.", I would suggest adding the following to that test text saying "In case the second array is empty and n is 0, frankenSplice would return a copy of the first array."

); ``` <del> All elements from the first array should be added to the second array in their original order. </del> <ins> All elements from the first array should be added to the second array in their original order. `frankenSplice([1, 2, 3, 4], [], 0)` should return `[1, 2, 3, 4]`. </ins> ```js assert.deepEqual(frankenSplice([1, 2, 3, 4], [], 0), [1, 2, 3, 4]);


Question:
Now it points to a Chinese forum post and shows nothing when people click "Get a Hint" button in the challenge of Chinese curriculum, for example, (). <!-- A clear and concise description of what you want to happen. --We may translate the hints into Chinese and other languages on Crowdin.
It should be possible to create something analogous to our current workflow, as long as the Discourse API allows it. i.e. GET the current articles for upload and then POST the translations once they're approved. Nick probably has a better idea about this than I do, though.
The biggest challenge is going to be figuring out how to update the front matter in the curriculum files to link the appropriate forum post.
I think a really long time ago in one of our conversations with Randy, it was deliberated that the complexity & time involved in working on a way to translate the hint comments, vs working on the new editor & new curriculum was not worth it. But I could be wrong.
That's probably true, but what do we want to do with the "Get a Hint" button? Some options: Link to the English page Remove that button for the Chinese challenges
I think linking to the English page is better~
Can we just link them to English pages?
That should be fine, yeah

export function getGuideUrl({ forumTopicId, title = '' }) { title = encodeURIComponent(title); return forumTopicId <del> ? `${forumLocation}/t/${forumTopicId}` </del> <ins> ? `https://forum.freecodecamp.org/t/${forumTopicId}` </ins> : `${forumLocation}/search?q=${title}%20in%3Atitle%20order%3Aviews`; }


Question:
The lesson at doesn't work with mongoose 6+ because now it just returns the , which causes the code from , lines through , to fail. Mongoose 6.0.1 ! Mongoose 5.4.13: ! This would fix it:
Now that I think of it, why does the boilerplate need to be backwards compatible with older versions of mongoose? I mean, the student would install the latest version always, right?
Thanks, for brining this up. We have discussed versioning in the lessons. I think we just missed this one. Solution Require Campers to install specific versions of and in the first lesson: Typically, we have gone with allowing only patch versions. So, the sentence should be something along the lines of: Does this sound about right?
I see! That sentence seems right to me and definitely would solve the problem without modifying the boilerplate
An issue with the help wanted or first timers only label is open for contribution. The first comprehensive PR created will be reviewed and merged. We typically do not assign issues to anyone other than long-time contributors. If you would like to contribute, and have not read the contributors docs, please do so here: If you have any issues with contributing, be sure to join us on the , or on the
I'll create the PR
note that you are not a first timer contributor
I would like to create a PR for this as I am a first time contributor and I reported this issue on the FCC forum. It will be a few hours until I can submit. I understand these are not assigned so if it's still open when I'm home, I'll gladly take it as my first contribution.
That's right! I didn't read the first timers only

# --instructions-- <del> Add `mongodb` and `mongoose` to the project’s `package.json`. Then, require mongoose as `mongoose` in `myApp.js`. Create a `.env` file and add a `MONGO_URI` variable to it. Its value should be your MongoDB Atlas database URI. Be sure to surround the URI with single or double quotes, and remember that you can't use spaces around the `=` in environment variables. For example, `MONGO_URI='VALUE'`. When you are done, connect to the database using the following syntax: </del> <ins> Add `mongodb@~3.6.0` and `mongoose@~5.4.0` to the project’s `package.json`. Then, require mongoose as `mongoose` in `myApp.js`. Create a `.env` file and add a `MONGO_URI` variable to it. Its value should be your MongoDB Atlas database URI. Be sure to surround the URI with single or double quotes, and remember that you can't use spaces around the `=` in environment variables. For example, `MONGO_URI='VALUE'`. When you are done, connect to the database using the following syntax: </ins> ```js mongoose.connect(<Your URI>, { useNewUrlParser: true, useUnifiedTopology: true });


Question:
At the top, the challenge says, " Any attempt at changing the object will be rejected without an error." A few lines later it says, "The and obj.newProp assignments will result in errors". This seems to be conflicting information - will there be an error or not? Maybe the 2nd part should say "The and obj.newProp assignments will be rejected". !
Oddly, when I run the tests I can see an error in the log: [TypeError: Cannot assign to read only property 'PI' of object '#<Object'] But when I run the same code in jsFiddle there is no error in the console. Update: When I add "use strict" in jsFiddle I get an error. This challenge should definitely mention that you only get an error in strict mode! One of the previous challenges about "let" and "const" mention strict mode briefly, but it might be good to explain strict mode more. This page was helpful:
I do agree that some clarification here would be beneficial. Possibly changing that first line to `Any attempt at changing the object will be rejected, with an error thrown if the script is running in strict mode. And the second line being Thoughts?
That seems like a good solution Nich, I'll put a help wanted label on it!

As seen in the previous challenge, `const` declaration alone doesn't really protect your data from mutation. To ensure your data doesn't change, JavaScript provides a function `Object.freeze` to prevent data mutation. <del> Once the object is frozen, you can no longer add, update, or delete properties from it. Any attempt at changing the object will be rejected without an error. </del> <ins> Any attempt at changing the object will be rejected, with an error thrown if the script is running in strict mode. </ins> ```js let obj = {

console.log(obj); ``` <del> The `obj.review` and `obj.newProp` assignments will result in errors, and the console will display the value `{ name: "FreeCodeCamp", review: "Awesome" }`. </del> <ins> The `obj.review` and `obj.newProp` assignments will result in errors, because our editor runs in strict mode by default, and the console will display the value `{ name: "FreeCodeCamp", review: "Awesome" }`. </ins> # --instructions--


Question:
! the sentence needs to be fixed removing the second "we" This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Wow
Just submitted a pull request after fixing this typo! This is my first time contributing to open source, so please let me know if there're things that I should've done. Thank you for providing this opportunity for first-time contributors.

## --text-- <del> What Python library has the `.read_html()` method we can we use for parsing HTML documents and extracting tables? </del> <ins> What Python library has the `.read_html()` method we can use for parsing HTML documents and extracting tables? </ins> ## --answers--


Question: The challenge "Testing objects for properties" has an outdated video, it needs to be removed. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.

id: 567af2437cbaa8c51670a16c title: Testing Objects for Properties challengeType: 1 <del> videoUrl: 'https://scrimba.com/c/c6Wz4ySr' </del> forumTopicId: 18324 dashedName: testing-objects-for-properties ---


Question:
! Steps to reproduce the behavior: on night mode challenges until the donate modal shows up has black text on fCC blue background Note that the text is white or light gray when you start typing - it's just the placeholder text that you can't read.
So the place holder text appears when stripe loads in the background. We should keep the form behind a loader and only display it once stripe loads.
That would fix the font color of the placeholder text? Seems like some CSS would work, but you're closer to that area than me. To be clear, I'm talking about the placeholder credit card number and expiration date in the screen shot. It might be hard to see the text, but it's there.
I think we can simply change the placeholder text color using css and it will probably work fine.
! changing the color here would work
That would change the color of the input but not the placeholder. Although there should be an option for that. this is strange since I get the following on production. <img width="389" alt="Screen Shot 2021-10-06 at 11 35 48 AM" src="https://user-"
Just gave it a quick test: Chrome 94.0.4606.61 - works - shows what's in screen shot Firefox 92.0 - doesn't work - shows what's in my screen shot So it seems to be a firefox issue. Can anyone else reproduce this in firefox?
Yup. I'm using Firefox Developer and it looks like this: !


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --The following are a couple of minor corrections to the instructions text for the tutorial titled Learn Bash Scripting by Building Five Programs. This tutorial is listed on . Thank you <!-- Add any other context about the problem here. --There many interpreters --There are many interpreters Lets see the final output --Let's see the final output I think you are done that script for now. --I think you are done with that script for now. There's must be spaces on the inside of the brackets --There must be spaces on the inside of the brackets The above creates a varable (), --The above creates a variable (), In the are of your condition, --In the area of your condition, Run your script and use and the first argument. --Run your script and use as the first argument. Run your script and use and the first argument. --Run your script and use as the first argument. Run your script and use and the first argument again to see the title. --Run your script and use as the first argument again to see the title. Lets play with these again. --Let's play with these again. In the terminal, use the sytax you used before --In the terminal, use the syntax you used before Using the syntax. Check if your variable is equal to . --Using the syntax, check if your variable is equal to . I don't that it asks the same thing if the input isn't what you want. --?? Now, each time the function is called in the loop. It will pass as an argument --Now, each time the function is called in the loop, it will pass as an argument
I will like to take up this issue
This tutorial is using CodeRoad VS Code extension, specific guidelines how to contribute to them can be found on Making PR for this issue will require following parts referring to making changes on the branch. Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
sure, go for it! Note that issues are not assigned. And check my last post for more infos on how to contribute.
Hmmm... I just submitted a PR for it I believe. Would it be possible to have the hacktoberfest-accepted label to the contribution if the PR is merged? Thanks very much.
Can you assign me this issue?
issues are not assigned here, you can work on any issue with the help wanted label
Alright!
I have made a PR Please review it.
looks like pr has this one

{ <del> "node": true </del> <ins> /* * ENVIRONMENTS * ================= */ // Define globals exposed by Node.js. "node": true, /* * ENFORCING OPTIONS * ================= */ // Force all variable names to use either camelCase style or UPPER_CASE // with underscores. "camelcase": true, // Prohibit use of == and != in favor of === and !==. "eqeqeq": true, // Suppress warnings about == null comparisons. "eqnull": true, // Enforce tab width of 2 spaces. "indent": 2, // Prohibit use of a variable before it is defined. "latedef": true, // Require capitalized names for constructor functions. "newcap": true, // Enforce use of single quotation marks for strings. "quotmark": "single", // Prohibit trailing whitespace. "trailing": true, // Prohibit use of explicitly undeclared variables. "undef": true, // Warn when variables are defined but never used. "unused": true, // Enforce line length to 80 characters "maxlen": 80 </ins> }

<ins> { /* * ENVIRONMENTS * ================= */ // Define globals exposed by modern browsers. "browser": true, // Define globals exposed by jQuery. "jquery": true, /* * ENFORCING OPTIONS * ================= */ // Force all variable names to use either camelCase style or UPPER_CASE // with underscores. "camelcase": true, // Prohibit use of == and != in favor of === and !==. "eqeqeq": true, // Suppress warnings about == null comparisons. "eqnull": true, // Enforce tab width of 2 spaces. "indent": 2, // Prohibit use of a variable before it is defined. "latedef": true, // Require capitalized names for constructor functions. "newcap": true, // Enforce use of single quotation marks for strings. "quotmark": "single", // Prohibit trailing whitespace. "trailing": true, // Prohibit use of explicitly undeclared variables. "undef": true, // Warn when variables are defined but never used. "unused": true, // Enforce line length to 80 characters "maxlen": 80, // Enforce placing 'use strict' at the top function scope "strict": true' } </ins>


Question:
I was translating of project-euler and noticed that the NOTE is a little bit weird. I checked the . The description is "Which starting number, under one million, produces the longest chain?" and "NOTE: Once the chain starts the terms are allowed to go above one million." If we change the description to "Which starting number, under the given , produces the longest chain?", should we change the NOTE? change the NOTE from "" to "Note: Once the chain starts the terms are allowed to go above ." !
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.

Which starting number, under the given `limit`, produces the longest chain? <del> **Note:** Once the chain starts the terms are allowed to go above one million. </del> <ins> **Note:** Once the chain starts the terms are allowed to go above `limit`. </ins> # --hints--


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --In the challenge below, the alt text for the diagram is set to "a diagram of non-overlapping concentric circles". But if my understanding is correct, they are not "concentric circles" (circles which share the same center). <!-- Add a link to the coding challenge with the problem. --Coding Interview Prep Project Euler Problem 199: Iterative Circle Packing <!-- Add a clear and concise description of what you expected to happen. --The alt text should be changed to "a diagram of non-overlapping circles" or something. (I'm not a native English speaker, so please fix it if there is a better description.) <!-- If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. --! <!-- Please complete the following information. --- Device: Laptop OS: Windows 10 Browser: chrome Version: 96.0.4664.45 <!-- Add any other context about the problem here. --Originally reported in a comment on Crowdin duing translation.
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
I would like to work on this.
Hey Issues are typically not assigned to a specific person, other than long-time contributors. You can read more about this at Issues labelled with or are open for contributions for all. Please make sure you read . Join us in or if you need help contributing, our moderators will guide you through this.
sorry about that, as this was my first time in freeCodeCamp, I'll make sure to read the contribution guidelines

Three circles of equal radius are placed inside a larger circle such that each pair of circles is tangent to one another and the inner circles do not overlap. There are four uncovered "gaps" which are to be filled iteratively with more tangent circles.       At each iteration, a maximally sized circle is placed in each gap, which creates more gaps for the next iteration. After 3 iterations (pictured), there are 108 gaps and the fraction of the area which is not covered by circles is 0.06790342, rounded to eight decimal places.


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Javascript Code Editor Steps to reproduce the behavior: the following code; ! Device: Laptop OS: Windows 10 Browser: Edge Version: 96.0.1054.34
Same goes for Map. I don't believe we teach Set or Map anywhere so it's maybe not super relevant. But the output should be as close to the browser console as possible I would think.
cc
My best guess is it has to do with the on the log here: But debugging has been a pain because that file does not hot-reload in the client.
Set is used in this under the coding interview prep section. While using is not specifically required for the task, the example code shown does have with an expected output underneath which with this bug will not be displayed in the output. This would be quite misleading for someone who pastes in the example code to the editor.
I dug into this a little bit: the problem is that relies on a fallback when running in the browser. This fallback does not know how to handle sets or maps and just returns . If anyone wants to work on this, the obvious approach is to check if the input is an or and then write some custom code to format them.
I take it we are leaving this open, as tests should probably be ?

'say-hello-to-html-elements', jQuery: '/learn/front-end-development-libraries/jquery/' + <del> 'target-html-elements-with-selectors-using-jquery' </del> <ins> 'target-html-elements-with-selectors-using-jquery', js: '/learn/javascript-algorithms-and-data-structures/basic-javascript/' + 'comment-your-javascript-code' </ins> }; const defaultOutput = `

); }); }); <ins> describe('Custom output for JavaScript objects', function () { beforeEach(() => { cy.visit(locations.js); cy.get(selectors.editor, { timeout: 15000 }) .first() .click() .focused() .type('{ctrl}a') .clear(); }); it('Set object', () => { cy.get(selectors.editor) .first() .click() .focused() .type( 'const set = new Set();{enter}set.add(1);{enter}set.add("set");{enter}set.add(10);{enter}console.log(set);' ); cy.get(selectors.defaultOutput).should('contain', 'Set(3) {1, set, 10}'); }); it('Map object', () => { cy.get(selectors.editor) .first() .click() .focused() .type( 'const map = new Map();{enter}map.set("first", 1);{enter}map.set("second", 2);{enter}map.set("other", "map");{enter}console.log(map);' ); cy.get(selectors.defaultOutput).should( 'contain', 'Map(3) {first => 1, second => 2, other => map})' ); }); }); </ins>


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- <!-- Add a link to the coding challenge with the problem. --<!-- Copy and paste the code from the editor that you used in between the back-ticks below: --Code from the : <!-- Add a clear and concise description of what you expected to happen. --If the while loop is removed from the , the following should fail (if 3 or more items ), but it does not: <!-- Please complete the following information. --- Device: Laptop OS: Windows 10 Browser: Chrome Version: 96 <!-- Add any other context about the problem here. --The is only testing with 2 items to a linked list. The test should fail if a third item is and the while loop is removed from the because the third item would would be to the linked list, but it would orphan the second item. My suggestion for an improved test:
Can I take this one?

var test = new LinkedList(); test.add('cat'); test.add('dog'); <del> return test.head().next.element === 'dog'; </del> <ins> test.add('fish'); return test.head().next.element === 'dog' && test.head().next.next.element === 'fish'; </ins> })() ); ```


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --<!-- Add a link to the coding challenge with the problem. -- The final instructions for this step say: "Then, give the placeholder text describing an example answer." Since the instructions mention "placeholder" I think it is safe to assume that some people will think they should use the attribute on the to fulfill this requirement. But the code check test checks the of the : So using the attribute will result in the following hint: "You should give the placeholder text describing an example answer." Which does not make it clear that the example answer should be embedded in the instead of using the attribute. Based on the current instructions I think most users will assume that the attribute should be used to complete this step and the test should be updated accordingly. <!-- Please complete the following information. --- Device: Desktop OS: Linux/Fedora 34 Browser: Firefox Version: 95.0.2
On
I was going to fix this issue by updating the test in step 38 to check the placeholder attribute on the textarea but then I realized that if we make this change then the HTML in each step after 38 would also need to be updated to use the placeholder attribute as well. So the question is, do we want to use the placeholder attribute and update all of the remaining steps or do we want to reword the instructions in step 38 to make it clear that you should embed the question text in the textarea and not use the placeholder attribute?
That's a good question. The placeholder text matches wording from referring to the attribute. That would make me think, the intention is to use the attribute.
Agreed, this should probably be updated to use the placeholder attribute. Looks like I've got a lot of updates to include in the PR.
Thank you, for opening this. When I wrote this, I vaguely remember reading a resource mentioning using the attribute on was not the recommended approach. However, as I cannot find that, I agree using the attribute in this case seems like the better option. Yes, this will require a rewrite for all subsequent lessons. However, this usually is a simple Find and Replace.
Perfect. I'll submit a PR for this in just a bit.

assert.isNotNaN(Number(cols)); ``` <del> You should give the `textarea` placeholder text describing an example answer. </del> <ins> You should give the `textarea` a `placeholder` attribute with text describing an example answer. </ins> ```js <del> assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.textContent); </del> <ins> assert.notEmpty(document.querySelectorAll('div.answer')?.[1]?.querySelector('textarea')?.getAttribute('placeholder')); </ins> ``` # --seed--

Do you have any questions:

  <textarea rows="5" cols="24"> Who is flexbox... </textarea>   <textarea rows="5" cols="24" placeholder="Who is flexbox..."></textarea>
 --fcc-editable-region--

Do you have any questions:

  <textarea id="css-questions" name="css-questions" rows="5" cols="24"> Who is flexbox... </textarea>   <textarea id="css-questions" name="css-questions" rows="5" cols="24" placeholder="Who is flexbox..."></textarea>

Do you have any questions:

  <textarea id="css-question" name="css-question" rows="5" cols="24"> Who is flexbox... </textarea>   <textarea id="css-question" name="css-question" rows="5" cols="24" placeholder="Who is flexbox..."></textarea>


Question:
Several. One example is The hint for this step seems to indicate that the user must add the element below the (there must be at least one new line separating them). Hint: "Your element should be below the declaration.:" So the expected behavior would be that the user will not pass this step until they add the element below the . <!-- Please complete the following information. --- Device: Desktop OS: Linux/Fedora 34 Browser: Firefox Version: [e.g. 22] This is happening for several courses. The regex used for this test is not enforcing the newline between the elements. If this requirement is important enough to be enforced then we should probably come up with one regex that enforces this requirement and use it for all courses.
One possible regex I am using as a solution for this is:
Affected pages: : js 57 assert((/^s<!DOCTYPEs+htmls[sS]<shtmls/gi)); 58 : js 55 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 56 : js 53 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 54 : js 55 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 56 : js 17 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 18 : js 17 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 18 : js 41 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 42 : js 53 assert((/(?<!<htmls)<!DOCTYPEs+htmls*/gi)); 54
If the regex from is the way we want to go, I'd be happy to start working on it in the pages linked by .
I was eventually going to get around to updating these but please, feel free to step in. My solution above was officially merged into main so I'm assuming that's acceptable to use for these as well.
I'm beginning to wonder if we should even have a requirement that the DOCTYPE be on its own separate line? I can't seem to find any documentation that says this is required and the W3C HTML validator accepts it without being on a new line. Also, we don't seem to be enforcing separate lines for other types of tags. But the DOCTYPE does need to be the first element on the page, which I don't think we are currently testing for, so I propose we test for that instead and get rid of the separate line requirement.
As far as the tests go, I suggest we stick with this: If the HTML spec can parse it, it is valid, and should be accepted, unless the instructions specifically say, for example, "add a semi-colon at the end of the value" So, as I can see in the spec, there is no requirement for the DOCTYPE and the element to be on separate lines:
Would you agree with me then that instead of testing for DOCTYPE being on a separate line we should be testing that the DOCTYPE is the first element on the page? This brings us back to another I found in which there are JS comments in the code string before the HTML begins: Not impossible to work around, just wanted to make whoever ultimately works on this aware of it.
It wouldnt surprise me if that's the why the test was written that way, because if doctype isnt the first element, how else would you check it's current placement? It would be in relation to the html tag, right?
Ideally, yes. As I mentioned below, we do have a solution to the comment thing, but it is a work-in-progress.
I have submitted a that fixes the source of this issue (css comments before the html in the code string) which if approved will allow us to easily test that the DOCTYPE declaration is the first element in the HTML.
should i close my initial pull request since you said in your pull request that you were going to fix the others once yours gets approved and merged? I dont mind helping update the other docs with the new test once it's approved if you want me to. either way, just let me know !
We've had a couple of reports in the support inbox that the negative lookbehind used in some of these tests is failing in Safari, so it's great that either or (pending update) will take care of that as well. At the moment seems more flexible, and allows valid code to pass without forcing a particular style. It'll also be good to move away from regex for this type of test.
If __helpers.removeHtmlComments(code) is preferred, we could modify in that direction or accept alternatively.
Yes, is the final PR to put this issue to rest. I did an initial PR for just one course and it has already been merged. is using the same solution, just updating the remaining courses that need it.

assert(code.match(/</htmls*>/)); ``` <del> Your `html` element should be below the `DOCTYPE` declaration. </del> <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. </ins> ```js <del> assert(code.match(/s*<!DOCTYPEs+htmls*>(r?n)+<s*htmls*>/gi)); </del> <ins> assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); </ins> ``` You should have an opening `head` tag.


Question:
Several. One example is The hint for this step seems to indicate that the user must add the element below the (there must be at least one new line separating them). Hint: "Your element should be below the declaration.:" So the expected behavior would be that the user will not pass this step until they add the element below the . <!-- Please complete the following information. --- Device: Desktop OS: Linux/Fedora 34 Browser: Firefox Version: [e.g. 22] This is happening for several courses. The regex used for this test is not enforcing the newline between the elements. If this requirement is important enough to be enforced then we should probably come up with one regex that enforces this requirement and use it for all courses.
One possible regex I am using as a solution for this is:
Affected pages: : js 57 assert((/^s<!DOCTYPEs+htmls[sS]<shtmls/gi)); 58 : js 55 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 56 : js 53 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 54 : js 55 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 56 : js 17 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 18 : js 17 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 18 : js 41 assert((/(?<!<htmls)<!DOCTYPEs+htmls/gi)); 42 : js 53 assert((/(?<!<htmls)<!DOCTYPEs+htmls*/gi)); 54
If the regex from is the way we want to go, I'd be happy to start working on it in the pages linked by .
I was eventually going to get around to updating these but please, feel free to step in. My solution above was officially merged into main so I'm assuming that's acceptable to use for these as well.
I'm beginning to wonder if we should even have a requirement that the DOCTYPE be on its own separate line? I can't seem to find any documentation that says this is required and the W3C HTML validator accepts it without being on a new line. Also, we don't seem to be enforcing separate lines for other types of tags. But the DOCTYPE does need to be the first element on the page, which I don't think we are currently testing for, so I propose we test for that instead and get rid of the separate line requirement.
As far as the tests go, I suggest we stick with this: If the HTML spec can parse it, it is valid, and should be accepted, unless the instructions specifically say, for example, "add a semi-colon at the end of the value" So, as I can see in the spec, there is no requirement for the DOCTYPE and the element to be on separate lines:
Would you agree with me then that instead of testing for DOCTYPE being on a separate line we should be testing that the DOCTYPE is the first element on the page? This brings us back to another I found in which there are JS comments in the code string before the HTML begins: Not impossible to work around, just wanted to make whoever ultimately works on this aware of it.
It wouldnt surprise me if that's the why the test was written that way, because if doctype isnt the first element, how else would you check it's current placement? It would be in relation to the html tag, right?
Ideally, yes. As I mentioned below, we do have a solution to the comment thing, but it is a work-in-progress.
I have submitted a that fixes the source of this issue (css comments before the html in the code string) which if approved will allow us to easily test that the DOCTYPE declaration is the first element in the HTML.
should i close my initial pull request since you said in your pull request that you were going to fix the others once yours gets approved and merged? I dont mind helping update the other docs with the new test once it's approved if you want me to. either way, just let me know !
We've had a couple of reports in the support inbox that the negative lookbehind used in some of these tests is failing in Safari, so it's great that either or (pending update) will take care of that as well. At the moment seems more flexible, and allows valid code to pass without forcing a particular style. It'll also be good to move away from regex for this type of test.
If __helpers.removeHtmlComments(code) is preferred, we could modify in that direction or accept alternatively.
Yes, is the final PR to put this issue to rest. I did an initial PR for just one course and it has already been merged. is using the same solution, just updating the remaining courses that need it.

assert(code.match(/</htmls*>/gi)); ``` <del> Your `html` element should be below the `DOCTYPE` declaration. </del> <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. </ins> ```js <del> assert(code.match(/(?<!<htmls*>)<!DOCTYPEs+htmls*>/gi)); </del> <ins> assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); </ins> ``` # --seed--

assert(code.match(/htmls*>/gi)); ``` <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. ```js assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); ``` </ins> # --seed-- ## --seed-contents--

# --hints-- <del> Your `html` element should be below the `DOCTYPE` declaration. </del> <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. </ins> ```js <del> assert(code.match(/(?<!<htmls*>)<!DOCTYPEs+htmls*>/gi)); </del> <ins> assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); </ins> ``` Your `html` element should have an opening tag.

assert(code.match(/htmls*>/gi)); ``` <del> Your `html` element should be below the `DOCTYPE` declaration. </del> <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. </ins> ```js <del> assert(code.match(/(?<!<htmls*>)<!DOCTYPEs+htmls*>/gi)); </del> <ins> assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); </ins> ``` Your `html` element should have an opening tag.

assert(code.match(/</htmls*>/)); ``` <del> Your `html` element should be below the `DOCTYPE` declaration. </del> <ins> Your `DOCTYPE` declaration should be at the beginning of your HTML. </ins> ```js <del> assert(code.match(/(?<!<htmls*>)<!DOCTYPEs+htmls*>/gi)); </del> <ins> assert(__helpers.removeHtmlComments(code).match(/^s*<!DOCTYPEs+htmls*>/i)); </ins> ``` You should have an opening `head` tag.


Question: I set the a:visited color to “gray” which changed the link color in the preview pane and even displayed the color picker box in the view with the color gray but when I clicked Check Your Code it didn’t accept my answer. I had to change it to “grey” with an ‘e’, not an ‘a’ to get the Step completed message. Now it does have the word “grey” with an ‘e’ in the directions, but I spell gray with an ‘a’ so that is what I did naturally. Do you want to accept a value of “gray” and “grey” as correct answers or will you only accept “grey”. If you only accept “grey” would it be possible to add a message asking the user to check their spelling? Otherwise, users may get frustrated and confused if they used “gray” and then they don’t understand why the answer is wrong. ! <!-- Please complete the following information. --- Device: [Laptop] OS: [Windows 10] Browser: [brave] Version: [Version 1.33.106 Chromium: 96.0.4664.110 (Official Build) (64-bit)] <!-- Add any other context about the problem here. --

You should set the `color` property to `grey`. ```js <del> const hasColor = new __helpers.CSSHelp(document).getCSSRules().some(x => x.style.color === 'grey'); </del> <ins> const hasColor = new __helpers.CSSHelp(document).getCSSRules().some(x => (x.style.color === 'grey' || x.style.color === 'gray')); </ins> assert(hasColor); ```

```js const aVisitedColor = new __helpers.CSSHelp(document).getStyle('a:visited')?.getPropertyValue('color'); <del> assert(aVisitedColor === 'grey'); </del> <ins> assert(aVisitedColor === 'grey' || aVisitedColor === 'gray'); </ins> ``` # --seed--


Question:
<!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --<!-- If you are reporting an issue with an article on our News publication, please follow this link to send an email to our editorial team --As stated in a by the example of a PR title () is misleading as this is not to be done manually; instead being perormed by automated pipelines. Visit the above page and scroll down to find the text: Remove this example from the documentation. <!-- If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box). --<img width="653" alt="Image of the invalid example of a pr title" src="https://user-"
Hello there If anything is done here, I would not remove it from the examples - I would change it to include something else that is relevant. Reason being, it is nice to have an example showing .
like we could make the last example something like , that is something we keep doing to avoid redirect to the EN docs from the other ones
I'd be in favour of implementing Ilenia's proposed change. Though I'm not sure anything needs to be fixed here. Yes, our translation PRs are automatic, but it's still a good example of a PR title.

- `fix(a11y): improved search bar contrast` - `feat: add more tests to HTML and CSS challenges` - `fix(api,client): prevent CORS errors on form submission` <del> - `docs(i18n): Chinese translation of local setup` </del> <ins> - `docs(i18n): fix links to be relative instead of absolute` </ins> ## Proposing a Pull Request


Question:
You can pass the test by assigning 10 to the variable after decrementing it past that value. It also doesn't seem like the... is not working. Incorrect code that is passing: Forum: Challenge: Tests:
I am happy with this being changed, but, personally, I see no issue here: The lesson teaches the operator, and that has been used. If the lesson were to give an element the text , and you did this, I would not expect you to fail the tests: Aside I might be becoming pessimistic in my teaching pedagogy, but we cannot truly expect to keep changing all these lessons forever, as more and more cases are found - there is a "good enough" point, IMO.
Yes, I believe that if a user uses the solution that stated, they know how works already, which fulfills the objective of the lesson.
I don't think your example is equivalent at all. The end value is supposed to be the result of decrementing, not just assigning a final value. Clearly, they do not if they can not decrement the starting value to the final value that is asked for. I see no reason why anyone that understands what the challenge is asking for would do that assignment. We are not just blindly looking for the operator to be used. We are looking for the value to be decremented to using the operator. An example would be a lesson where you ask someone to use a word in a sentence and they use the word incorrectly. They may have used the word but if it is used incorrectly they do not understand the word. Using it in a sentence means correctly using it, not just blindly shoving it into a sentence. I would think a test with a regex that looks for an assignment to be good enough here.
You're right, my bad. As I understand it, you want to use regex to check if an assignment is present, and if it is, fail the test? I think that would work well.
second test should be updated. Right now you can leave the initial code even though the test says it should be replaced. It should test that is not present in the code. that no assignment is used.
I see, thank you for the clarification!

`myVar = myVar - 1;` should be changed. ```js <del> assert( /lets*myVars*=s*11;s*/*.*s*([-]{2}s*myVar|myVars*[-]{2});/.test(code) ); </del> <ins> assert(!code.match(/myVars*=s*myVars*[-]s*1.*?;?/)); ``` You should not assign `myVar` with `10`. ```js assert(!code.match(/myVars*=s*10.*?;?/)); </ins> ``` You should use the `--` operator on `myVar`.


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --<!-- Add a link to the coding challenge with the problem. -- <!-- Copy and paste the code from the editor that you used in between the back-ticks below: --<!-- Add a clear and concise description of what you expected to happen. --Tests should fail because the text is incorrect (it should not be surrounded by spaces or newlines). You see the hint: Also, it's quite easy to fail this challenge by having spaces or newlines around the "Camper Cafe Menu" string. It might be nice to have an additional test specifically to catch that.
The title element isn't stripped away, so I think we could query the DOM and look at the .

Your `<title>` element should be nested in your `<head>` element. ```js <del> assert(code.match(/<head>s*<title>.*</title>s*</head>/i)); </del> <ins> assert(code.match(/<head>s*<title>.*</title>s*</head>/si)); </ins> ``` Your `<title>` element should have the text `Camper Cafe Menu`. You may need to check your spelling. ```js <del> assert(code.match(/<title>camperscafesmenu</title>/i)); </del> <ins> assert.match(document.querySelector('title')?.innerText, /camper cafe menu/i); </ins> ``` # --seed--


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- This is the starter code: The starter code for this challenge is strange. 1) Why the space between the function name and the ()s for the arguments? 2) I get that the idea is to have the learners change the function signature, but it is a bit strange having a mismatch between the function signatures and the function calls in the starter code.
The linked PR in this issue. For , we could probably move away from having variables in the seed code and instead assert the function returns the expected value

`bookList` should not change and still equal `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. ```js <ins> add(bookList, "Test"); </ins> assert( JSON.stringify(bookList) === JSON.stringify([

); ``` <del> `newBookList` should equal `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. </del> <ins> `add(bookList, "A Brief History of Time")` should return `["The Hound of the Baskervilles", "On The Electrodynamics of Moving Bodies", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. </ins> ```js assert( <del> JSON.stringify(newBookList) === </del> <ins> JSON.stringify(add(bookList, "A Brief History of Time")) === </ins> JSON.stringify([ 'The Hound of the Baskervilles', 'On The Electrodynamics of Moving Bodies',

); ``` <del> `newerBookList` should equal `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. </del> <ins> `remove(bookList, "On The Electrodynamics of Moving Bodies")` should return `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae"]`. </ins> ```js assert( <del> JSON.stringify(newerBookList) === </del> <ins> JSON.stringify(remove(bookList, 'On The Electrodynamics of Moving Bodies')) === </ins> JSON.stringify([ 'The Hound of the Baskervilles', 'Philosophiæ Naturalis Principia Mathematica',

); ``` <del> `newestBookList` should equal `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. </del> <ins> `remove(add(bookList, "A Brief History of Time"), "On The Electrodynamics of Moving Bodies");` should equal `["The Hound of the Baskervilles", "Philosophiæ Naturalis Principia Mathematica", "Disquisitiones Arithmeticae", "A Brief History of Time"]`. </ins> ```js assert( <del> JSON.stringify(newestBookList) === </del> <ins> JSON.stringify(remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies')) === </ins> JSON.stringify([ 'The Hound of the Baskervilles', 'Philosophiæ Naturalis Principia Mathematica',

// Change code above this line } } <del> const newBookList = add(bookList, 'A Brief History of Time'); const newerBookList = remove(bookList, 'On The Electrodynamics of Moving Bodies'); const newestBookList = remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies'); console.log(bookList); </del> ``` # --solutions--

} return bookListCopy; } <del> const newBookList = add(bookList, 'A Brief History of Time'); const newerBookList = remove(bookList, 'On The Electrodynamics of Moving Bodies'); const newestBookList = remove(add(bookList, 'A Brief History of Time'), 'On The Electrodynamics of Moving Bodies'); </del> ```


Question:
!
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Here are the files that you should be looking at to work on a fix: List of files: Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing.
Thank you so much! Will do

It's better practice to choose one color as the dominant color, and use its complementary color as an accent to bring attention to certain content on the page. <del> First, in the `h1` rule, use the `rbg` function to set its background color to cyan. </del> <ins> First, in the `h1` rule, use the `rgb` function to set its background color to cyan. </ins> # --hints--


Question:
In lesson 10 of Learn Bash Scripting by Building Five Programs, the directions tell you to use this command: . But the command has an extra in questionnaire. The correct command should be !
I'm going to mark this issue for first-time contributors. Here is the file you should be looking at to work on a fix: Please make sure you have read . Join us in or if you need help contributing, our moderators will guide you through this. Sometimes we may get more than one pull requests. We typically accept the most quality contribution followed by the one that is made first. Happy contributing!
Hello, I have worked on that issue and solved it. Also made the PR , please refer it.
please link this issue in the PR, otherwise they are not linked
Hello, I am following guidelines created a new branch installed coderoad v0.9.3 committed changes on file now running command and getting error Please can anyone give any suggestions
The latest version branch from the repository needs to exist locally:
Mentioned PR.
I see this has been solved multiple times but I'm going to add to that as I complete my first contribution. Great documentation by the way! Super easy to setup my local environment!

extends ../layout block content <del> .jumbotron .col-sm-8.col-sm-offset-2 form(method='POST') </del> <ins> .col-sm-8.col-sm-offset-2.jumbotron form(method='POST', action="/forgot") </ins> h1 Forgot Password input(type='hidden', name='_csrf', value=_csrf) .form-group

button.btn.btn-primary(type='submit') i.fa.fa-key | Reset Password


Question:
In RWB, the placement of the instructions interrupts the code and makes indentation unclear, especially for a beginner that may not know what to look for yet. I noticed several instances where putting longer, uninterrupted part of the code in the highlighted editor might help with clarity. <h2Examples</h2<a href=""Step 21</a: change the error message or expand the highlighted code. (Error message when h3 is in the wrong location: "There should be an h3 element right above the second section element's closing tag.") <a href=""Step 23</a: include in highlighted editor to match the instructions ("A figure caption (figcaption) element is used to add a caption to describe the image contained withing the figure element.") and to show the placement of within . <a href=""Step 50</a: include in highlighted editor to match the instructions ("The legend element acts as a caption for the content in the fieldset element.") and to show the placement of within . <h2Proposed solutions</h2- Expand the code on case-per-case basis. Permanently move the instructions box on top of the code editor. (I think that would make everything clearer and more accessible with well defined sections on the page, but I imagine it would be harder to implement now.)
I don't believe we would go this route, as the instructions UI was specifically designed to allow us to highlight the section of code a camper should be editing. I do agree some of these regions could be tweaked a bit
Thank you for reading through it! I will admit I that secondary suggestion because of a personal issue as well, as I find the page a bit overwhelming and every time I click on the next step, it takes me a while to find and re-focus on the editor. I think there's just a lot going on visually, but I'm not a UI/UX designer so I don't have specific suggestions except for the fixed placement.
I'm fine with changing the three lessons mentioned here, but we could maybe use a discussion on how those regions should be. There's probably going to be many steps where the editable region could be bigger or smaller or different. Maybe we need some hard rules on how to apply them. Something like - for HTML steps, include the parent element in the region. For CSS steps, include the whole selector. There may be instances where rules like that don't work out so well. Like for the first steps of the Cat Photo project, we may want to be more specific about where to add code - and on later steps or projects, more vague. So I don't know.
I did bring this up, but we were on the fence with:
Yeah it seems like something that's more of a case-by-case basis than to have hard and fast rules for. My proposed "general" approach would be to encapsulate anything the instructions mention. So if the instructions say "write a h2 below your h1", the h1 should be within the editable region.
To try and get this issue resolved, I vote for these changes: step 21: change the hint to "There should be an img element right after the closing tag." step 23: use op's suggestion step 50: use op's suggestion
Thank you for reporting this issue. An easy fix would be to scroll the editor so the instructions are always almost at the top of the "page". That way the eyes know where to go on each challenge. (right now it scrolls to the center) I am interested in knowing more about this: " it takes me a while to find and re-focus on the editor." Are you having difficulty locating the instructions? do also look around for the tests and the submit button? More context is appreciated. We ultimately need to usability test this with people who have not seen the curriculum.
Hello, sorry for the late reply. After seeing this notification, I opened the curriculum on a random step to see if I could provide you with more information. I mostly forgot how the page was structured and my eyes just ran across the page in no specific order. "Check your code" was the first text I read, as it draws the most attention, and then "". I believe that would be very helpful! (I think it would also be nice if the navigation breadcrumbs were more subtle, and if the buttons like "", "" and "preview" looked more like toggle buttons – now they remind me of tabs but disconnected from their sections, and they also draw more attention than is perhaps needed?) Thank you for checking in on this!
Thank you for your feedback.

# --hints-- <del> There should be an `img` element right above the second `section` element's closing tag. </del> <ins> There should be an `img` element right after the closing `</ul>` tag. </ins> ```js assert($('section')[1].lastElementChild.nodeName === 'IMG');

laser pointers

lasagna

  --fcc-editable-region--
    --fcc-editable-region--
  --fcc-editable-region--

Cat Form
 <form action="https://freecatphotoapp.com/submit-cat-photo">  <fieldset>  --fcc-editable-region--  <fieldset>  <input id="indoor" type="radio" name="indoor-outdoor" value="indoor"> Indoor <input id="outdoor" type="radio" name="indoor-outdoor" value="outdoor"> Outdoor  --fcc-editable-region--  </fieldset>  --fcc-editable-region--  <input type="text" name="catphotourl" placeholder="cat photo URL" required> <button type="submit">Submit</button> </form>


Question:
Not applicable The editor fills the screen instead of showing the instructions. You have to scroll up o see the instructions, and it’s not obvious if you should scroll up or down. ! Step 55: ! Device: [Laptop] OS: [Windows 10] Browser: [brave] Version: [Version 1.33.106 Chromium: 96.0.4664.110 (Official Build) (64-bit)] What the 3 steps have in common is that the editor has on the 1st line of the CSS file. All other lessons show the previous row number above the instructions (see screenshots). I may have seen this in previous sections but I can’t be sure. If someone can query all the lessons in all the sections to find where the focus is at line 1, then I could check them. Although, that will happen for all the early lessons. You would probably need to do a condition for 10 or more lines of code in the CSS file. That's assuming you need someone to check it rather than seeing the issue and fixing it in the other sections. Also, I need a list of lessons to check because I don't know how to easily scroll through all the steps. I had to CTRL+click every step in the penguin section because I knew I missed one (Step 55).
Hello there, Thank you, for opening this. This bug is (documented here](), but I will leave this open as a specific issue to tackle. If I correctly recall, we did actually already fix this, but the bug appears to have made its way back
I searched to see if it was already reported but I guess I didn't search well enough. It looks like the example shows Step 55 in the Penguin section. BTW, I found 1 Step in the Ferris Wheel section that does the same thing.
Yes - as pointed out, this looks to be an issue with the editor and should probably fix there. If we want a quick or temporary fix, I found that adding an empty line in the seed code will make it so you don't have to scroll up. change css --fcc-editable-region--  A quick search shows that there's around 70 steps where this occurs: ! Not sure if we want to use this as a temporary fix or not. Any thoughts
70 steps for just the English version or all languages? How did you perform the search? What makes the directions appear in the "correct" location for all the other lessons? Would you paste in links of all the steps where this happens? I had to search for Step 65 until I found it in the Quiz section. So far, it seems as if row 1 in the CSS file is the first row in the editor and that there is a full set of styles below it. That is what I noticed in the ones I mentioned above. I also looked at Step 20 Ferris Wheel and it also shows row 1. What is it about the top of that makes the directions move up?
That screen shot is VS Code. I have the repo opened in it. You can search for things. I searched for that pattern at the top (css|html) --fcc-editable-region-- ` Make sure the is checked at the top right there to enable regex searches.
I was not able to duplicate your search with the 2nd line having . I found the Toggle Search Details button and the Open New Search Editor button, but I could not find a way to ENTER onto a new line for the editable region line. Looks like there are 7 languages so that would be 10 Steps/Lessons where this happens. I found the 3 in my original message plus step 20 in Ferris Wheel. Your screenshot has 2 in the quiz section plus the last one in the screenshot step- (not sure of the section) - that's 7 - so there must be 3 more for 10 in each language.
We should definitely not use a temporary fix for this - resolve the issue at the editor
I did a search for and found some json and js files with that phrase in it. What are ? I have to leave but I wanted to look at ana . The first one sets as a , but I'm not sure exactly what these files do - just poking around. Where would you even begin to look for why these lessons are different?
For all the steps I looked at, they all have immediately following md I found 47 files (not 70) and they all have the same format with following the CSS codeblock: Accessibility Quiz: Steps 65, 66. Cafe Menu: Steps 15, 19, 20, 22, 58, 73 Colored Markers: Steps 8, 37, 40 Photo Gallery: Step 7 Grid Magazine: Step 26 Penguin : Steps 2, 3, 4, 5, 54, 55, 82, 88 City Skyline: Steps 5, 6, 25, 27, 39, 50, 59, 68, 95 Registration Form: Steps 7, 8, 9, 37, 49 Balance Sheet: Steps 26, 27 Piano: Steps 9, 10 Rothko: Step 8 Nutrition Label: Steps 6, 11 Ferris Wheel: Steps 3, 4, 5, 20, 21 Steps with an asterisk () appear to display correctly because there are not a lot of lines outputted to the page. The suggested fix seems good: adding a line between the two lines*. However, I would like to know what the root cause is for that behavior. And I didn't realize that RWD Beta is only in English.
We have had this bug before, and we should not do a temporary fix of adding spacing between the ERMs and code blocks. The most likely place this will need fixing is:
I'll take a look at that. What does the extension stand for?
is the TypeScript extension with JSX. That is, the file contains both TypeScript and JSX.
Sorry, I should have searched that myself. I've never worked with TypeScript and only worked with React a few times. There is a constant name for an object that is repeated: . First on line 485, then again on line 516, both with the same properties but the values are different. I thought you can not overwrite a variable that is declared with the keyword. And isn't TypeScript "strict"? on line 484: on line 516: In the first occurrence you have , and on line 784 there is a comment about the function : I found that because I was looking for which only occurs in that object. Any chance declaring the const twice is the problem? Does the 2nd one overwrite the first one?
Yes, but they are in different scopes: I cannot see it declared twice
I said it was declared twice, meaning in the global scope - or at least that is what I thought. I didn't notice that. My mistake, let me keep poking around...
I can't figure that file out. There are so many variables and functions that I don't know where to start looking, plus I do not understand a lot of the code.
No worries. It is one of the largest files in our codebase. So, it takes a lot of time to read / get used to. I will spend some more time looking into it.

// if ( //  isEqual({ ..._editor.getPosition() }, { lineNumber: 1, column: 1 }) // ) { <ins> const [top, bottom] = editableRegionBoundaries; </ins> editor.setPosition({ <del> lineNumber: editableRegionBoundaries[0] + 1, </del> <ins> lineNumber: top + 1, </ins> column: 1 }); <del> editor.revealLinesInCenter( editableRegionBoundaries[0], editableRegionBoundaries[1] ); </del> <ins> // To prevent descriptionWidget from being out of view editor.revealLinesInCenter(top, top === 0 ? 1 : bottom); </ins> // } }


Question:
<!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --<!-- If you are reporting an issue with an article on our News publication, please follow this link to send an email to our editorial team --<!-- Add a link to the page with the problem. --<!-- Describe the problem and how to reproduce it. --<!-- A clear and concise description of how you want to update it. --<!-- If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box). --!
Hi ! Thank you for finding this typo. I have the first timers only label since this is an easy fix. For those interested in fixing this issue, here is the file you need to change. Proposed fix: The border-radius property accepts up to four values to round the top-left, top-right, bottom-right, and bottom-left corners. Please also read through our . When the file is fixed, please make a PR referencing this issue and it will be reviewed. Happy contributing!
I'm going to start looking into this.
Thank you for fixing the issue. It was the first time for me on Github. I'm a total newbie in the webdev coding bootcamp.

# --description-- <del> The `border-radius` property accepts up to four values to round the round the top-left, top-right, bottom-right, and bottom-left corners. </del> <ins> The `border-radius` property accepts up to four values to round the top-left, top-right, bottom-right, and bottom-left corners. </ins> Round the top-left corner of `.three` by 30 pixels, the top-right by 25 pixels, the bottom-right by 60 pixels, and bottom-left by 12 pixels.


Question:
An issue was brought up in the forum where the user could not pass the challenge using firefox. They had the correct code and weren't using browser extensions. On google chrome and safari the test does pass. The test will only pass on Firefox using this code Correct answer not passing in firefox <img width="936" alt="Screen Shot 2022-01-25 at 8 44 56 AM" src="https://user-"Incorrect answer passing in firefox <img width="981" alt="Screen Shot 2022-01-25 at 8 45 31 AM" src="https://user-"- Device: [macbook pro] OS: [macOs Catalina] Browser: [Firefox] Version: [96.0.2]
Step 14 has the same issue. This is the correct code that passes in google chrome <img width="905" alt="Screen Shot 2022-01-25 at 8 57 21 AM" src="https://user-"Here is the same code but it doesn't pass with firefox <img width="915" alt="Screen Shot 2022-01-25 at 9 00 09 AM" src="https://user-"

You should give `.ground` a `background` of `linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255))`. ```js <del> assert.include(['linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(118,201,255),rgb(247,255,222))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('background', true)); </del> <ins> assert.include(['linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))', 'rgba(0,0,0,0)linear-gradient(90deg,rgb(88,175,236),rgb(182,255,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.ground')?.getPropVal('background', true)); </ins> ``` # --seed--

You should give `.left-mountain` a `background` of `linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255))`. ```js <del> assert.include(['linear-gradient(rgb(203,241,228),rgb(80,183,255))', 'rgba(0,0,0,0)linear-gradient(45deg,rgb(118,201,255),rgb(247,255,222))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('background', true)); </del> <ins> assert.include(['linear-gradient(rgb(203,241,228),rgb(80,183,255))', 'rgba(0,0,0,0)linear-gradient(rgb(203,241,228),rgb(80,183,255))repeatscroll0%0%'], new __helpers.CSSHelp(document).getStyle('.left-mountain')?.getPropVal('background', true)); </ins> ``` # --seed--

```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <link rel="stylesheet" type="text/css" href="./styles.css" />


Question: A file was create. A file was created. I have the first timers only label. Carefully read through the and the section on working with . After you have read through the contributing docs and fixed the typo, then you will make a PR in this . After you make the PR, someone from the team will review it. If you need help, then please ask on the or . Sometimes we may get more than one pull request. We typically accept the most quality contribution followed by the one that is made first. Happy contributing!

extends ../layout block content <del> .jumbotron .col-sm-8.col-sm-offset-2 form(method='POST') </del> <ins> .col-sm-8.col-sm-offset-2.jumbotron form(method='POST', action="/forgot") </ins> h1 Forgot Password input(type='hidden', name='_csrf', value=_csrf) .form-group

button.btn.btn-primary(type='submit') i.fa.fa-key | Reset Password


Question:
Should be adequate <!-- Please complete the following information. --- Device: [Laptop] OS: [openSUSE Tumbleweed] Browser: [Vivaldi] Version: 5.0]
Thank you for reporting this issue. This is a standard message notifying you that the problem you mentioned here is present in production, but that it has already been fixed in staging (PR ). This means that the next time we push our staging branch to production, this problem should be fixed. Because of this, we're closing this issue. If you think we're wrong in closing this issue, please request for it to be reopened and add further clarification. Thank you and happy coding.
Wait, sorry, there are more adequates to fix. And it seems is doing it

# --description-- <del> Give each `fieldset` an adaquate `name` attribute. Then, give both unordered lists a `class` of `answers-list`. </del> <ins> Give each `fieldset` an adequate `name` attribute. Then, give both unordered lists a `class` of `answers-list`. </ins> Finally, use the `legend` to caption the content of the `fieldset` by placing a true/false question as the text content. # --hints-- <del> You should give the first `fieldset` an adaquate `name` attribute. _Hint: I would use `html-question-one`_ </del> <ins> You should give the first `fieldset` an adequate `name` attribute. _Hint: I would use `html-question-one`_ </ins> ```js assert.notEmpty(document.querySelectorAll('fieldset')?.[0]?.name);


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. -- <!-- Copy and paste the code from the editor that you used in between the back-ticks below: --The code above shouldn't pass the challenge. In the challenge, it is asked to make the function addTogether return undefined If either argument isn’t a valid number. Please add a test case where the first argument isn’t a valid number, but the second is. Example:
Great catch! Thank you for reporting!

assert.isUndefined(addTogether(2)([3])); ``` <ins> `addTogether("2", 3)` should return `undefined`. ```js assert.isUndefined(addTogether('2', 3)); ``` </ins> # --seed-- ## --seed-contents--


Question: <!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --<!-- If you are reporting an issue with an article on our News publication, please follow this link to send an email to our editorial team -- <!-- Add a link to the page with the problem. --View the string in Crowdin where the is being parsed as a separate sentence. This is grammatically incorrect anyway and should be updated. <!-- Describe the problem and how to reproduce it. --Update the sentence to: <!-- A clear and concise description of how you want to update it. --<!-- If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box). --

## Feedback on pull requests <del> > Congratulations! :tada: on making a PR and thanks a lot for taking the time to contribute. </del> <ins> > :tada: Congratulations on making a PR and thanks a lot for taking the time to contribute. </ins> Our moderators will now take a look and leave you feedback. Please be patient with the fellow moderators and respect their time. All pull requests are reviewed in due course.


Question:
The student has to go all the way down up to the explanation "In order, these expressions would evaluate to true, false, true, and true." to realize what the result of the operations is. My suggestion is that the second section of the code should look like this: 1 == 1 // true 1 == 2 // false 1 == '1' // true "3" == 3 // true instead of the screenshot attached. <!-- Add a link to the coding challenge with the problem. -- <!-- If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. --!
I would be fine with this change. Any interest in making a PR for it
, Can I? I don't know how to do it and I have never done it in my life, but besides that, I would like to do it by myself using some guide you could give me. I have never used GitHub in the past. And this will help me to contribute even more to this awesome project.
We have some . It may look a little intimidating, but if you follow the instructions it's not bad. The file where this needs to be fixed is Technically, you can edit the file on github and make a PR from there - which can work for some simple fixes, but you can't see and test your changes. I think we would accept those if you want to do that, but I would recommend setting the project up locally at some point if you want to contribute regularly. To be clear, we usually like to get second opinion before making changes like this - since we don't have that, I can't guarantee a PR would be merged - but I think others would be fine with the change so if you want to make a PR, go ahead.
This change seems good. For context, we got rid of a lot of comments since we'd need to translate them. However, these are keywords and don't need translation.
shall I take this up?
Could you clarify if this is actually what we wanted, because this is exactly what we removed 12 months ago in:
Yes, this is okay because these instances specifically are only keywords that don't get translated anyway.

If `myVal` is equal to `10`, the equality operator returns `true`, so the code in the curly braces will execute, and the function will return `Equal`. Otherwise, the function will return `Not Equal`. In order for JavaScript to compare two different <dfn>data types</dfn> (for example, `numbers` and `strings`), it must convert one type to another. This is known as Type Coercion. Once it does, however, it can compare terms as follows: ```js <del> 1   ==  1 1   ==  2 1   == '1' "3" ==  3 </del> <ins> 1   ==  1  // true 1   ==  2  // false 1   == '1' // true "3" ==  3  // true </ins> ``` <del> In order, these expressions would evaluate to `true`, `false`, `true`, and `true`. </del> # --instructions-- Add the equality operator to the indicated line so that the function will return the string `Equal` when `val` is equivalent to `12`.

**Examples** ```js <del> 5   >  3 7   > '3' 2   >  3 '1' >  9 </del> <ins> 5   >  3  // true 7   > '3' // true 2   >  3  // false '1' >  9  // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `true`, `false`, and `false`. </del> # --instructions-- Add the greater than operator to the indicated lines so that the return statements make sense.

**Examples** ```js <del> 6   >=  6 7   >= '3' 2   >=  3 '7' >=  9 </del> <ins> 6   >=  6  // true 7   >= '3' // true 2   >=  3  // false '7' >=  9  // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `true`, `false`, and `false`. </del> # --instructions-- Add the greater than or equal to operator to the indicated lines so that the return statements make sense.

**Examples** ```js <del> 1 !=  2 1 != "1" 1 != '1' 1 != true 0 != false </del> <ins> 1 !=  2    // true 1 != "1"   // false 1 != '1'   // false 1 != true  // false 0 != false // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `false`, `false`, `false`, and `false`. </del> # --instructions-- Add the inequality operator `!=` in the `if` statement so that the function will return the string `Not Equal` when `val` is not equivalent to `99`.

**Examples** ```js <del> 2   < 5 '3' < 7 5   < 5 3   < 2 '8' < 4 </del> <ins> 2   < 5 // true '3' < 7 // true 5   < 5 // false 3   < 2 // false '8' < 4 // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `true`, `false`, `false`, and `false`. </del> # --instructions-- Add the less than operator to the indicated lines so that the return statements make sense.

**Examples** ```js <del> 4   <= 5 '7' <= 7 5   <= 5 3   <= 2 '8' <= 4 </del> <ins> 4   <= 5 // true '7' <= 7 // true 5   <= 5 // true 3   <= 2 // false '8' <= 4 // false </ins> ``` <del> In order, these expressions would evaluate to `true`, `true`, `true`, `false`, and `false`. </del> # --instructions-- Add the less than or equal to operator to the indicated lines so that the return statements make sense.

**Examples** ```js <del> 3 ===  3 3 === '3' </del> <ins> 3 ===  3  // true 3 === '3' // false </ins> ``` <del> These conditions would return `true` and `false` respectively. </del> In the second example, `3` is a `Number` type and `'3'` is a `String` type. # --instructions--

**Examples** ```js <del> 3 !==  3 3 !== '3' 4 !==  3 </del> <ins> 3 !==  3  // false 3 !== '3' // true 4 !==  3  // true </ins> ``` <del> In order, these expressions would evaluate to `false`, `true`, and `true`. </del> # --instructions-- Add the strict inequality operator to the `if` statement so the function will return the string `Not Equal` when `val` is not strictly equal to `17`