jiebi/CodeConvo huggingface dataset:
Code change:
if (!codeUri.enabled) { return null; } <del> location.hash = '?solution=' + codeUri.encode(encodeFcc(solution)); </del> <ins> if (history && typeof history.replaceState === 'function') { history.replaceState( history.state, null, '?solution=' + codeUri.encode(encodeFcc(solution)) ); } else { location.hash = '?solution=' + codeUri.encode(encodeFcc(solution)); } </ins> return solution; },

Related discussion:
text: Since the code is included in the URL after every change, once the user has made any code changes the back button will not work as expected as the browser history gets filled up with entries pointing to the same page but with different code in the URL. !
Code change:
padding-bottom: 18px; background: transparent; border: none; <ins> text-align: left; </ins> } button.map-title:hover {

Related discussion:
text: Currently the map looks like this: ! I think it would look a lot better if we made more use of the available space. Something like this: !
I can fix the css in a separate PR, if you like. Unless you're already handling it, of course.
I think it is handled now in the PR already. I moved things into the Grid system
That PR still has the heavy indentation: !
You are correct, if you have something going please go ahead and push to the PR. I am done with the basic consolidation of the views that I was going for.
Code change:
const searchButton = document.getElementById('search-button'); let alertMessage; window.alert = (message) => alertMessage = message; // Override alert and store message <del> const letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' const numbers = '0123456789'; const charactersLength = letters.length; const numbersLength = numbers.length; const firstLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); const secondLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); const thirdLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); const fourthLetter = letters.charAt(Math.floor(Math.random() * charactersLength)); const randomNumber1 = numbers.charAt(Math.floor(Math.random() * numbersLength)); const randomNumber2 = numbers.charAt(Math.floor(Math.random() * numbersLength)); const badName = firstLetter + secondLetter + thirdLetter + fourthLetter + randomNumber1 + randomNumber2; const randomInvalidPokeId = badName; </del> <ins> const randomInvalidPokeId = crypto.randomUUID().substring(0, 6); </ins> searchInput.value = randomInvalidPokeId; searchInput.dispatchEvent(new Event('change')); searchButton.click(); <del> const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId.toString()); // Fetch from proxy to simulate network delay </del> <ins> const res = await fetch('https://pokeapi-proxy.freecodecamp.rocks/api/pokemon/' + randomInvalidPokeId); // Fetch from proxy to simulate network delay </ins> if (!res.ok) { <del> await new Promise(resolve => setTimeout(resolve, 1000)); // Additional delay to allow the alert to trigger </del> <ins> await new Promise(resolve => setTimeout(resolve, 2000)); // Additional delay to allow the alert to trigger </ins> assert.include(['pokémon not found', 'pokemon not found'], alertMessage.trim().replace(/[.,?!]+$/g, '').toLowerCase()); }

Related discussion:
text: There's typo in two hints. Instead of element it mentions . - - This is 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 was making a PR for a different issue and saw this, so I the fix to the PR.
Code change:
"cert-map-estimates": { "certs": "认证（300 小时）", "coding-prep": "（数千小时的挑战）" <ins> }, "editor-tabs": { "info": "信息", "code": "码", "tests": "测验", "preview": "预习" </ins> } }, "donate": {

Related discussion:
text: Describe the bug When you enter a challenge using a mobile device, the tabs below the main header are displayed with untranslated text To Reproduce Steps to reproduce the behavior (mobile device): to untranslated tabs below the main header Expected behavior Tabs text should be translated. Screenshots Spanish site ! Chinese site ! Desktop (please complete the following information): OS: [Windows 10] Browser: [chrome] Version: [88] Additional context Those strings are not available yet on the Crowdin platform.
Code change:
], "tests": [ "assert(typeof timesFive === 'function', 'message: <code>timesFive</code> should be a function');", <del> "assert(code.match(/timesFive(s*d+s*)/g), 'message: function <code>timesFive</code> should be called with a number');", </del> <ins> "assert(code.match(/timesFive(s*d+s*)/g), 'message: function <code>timesFive</code> should be called with a number');", </ins> "assert(timesFive(5) === 25, 'message: <code>timesFive(5)</code> should return <code>25</code>');", "assert(timesFive(2) === 10, 'message: <code>timesFive(2)</code> should return <code>10</code>');", "assert(timesFive(0) === 0, 'message: <code>timesFive(0)</code> should return <code>0</code>');"

Related discussion:
text: According to Google Analytics, the is way too hard, and is taking campers an average of 6 minutes and 35 seconds to finish (if they finish - a lot of them seem to give up). According to this table, campers spend more time on it than they do on the algorithm challenges. ! We need to either reword this or simplify the challenge so it can be completed in closer to 3 minutes. Otherwise, we should move it back to the algorithm section.
This challenge does have a large amount of constant strings which could cause users to take a longer time than a typical challenge. Maybe we could provide an array of the responses in the seed code. Make the seed code: This could help in two ways. The first is the users can save time by not having to type out each response. The second is this approach could minimize errors from typos in the response phrases (i.e. Hole-in-one! vs. Hole in one!). We could remove the number of different responses. Maybe remove Eagle and Double Bogey.
yes - that is a great suggestion. I think leaving all the names is fine but we should pre-populate the array with the names. Since this was your suggestion, would you be interested in tackling this and submitting a PR?
Yes, I would like to tackle this and submit a PR.
The Golf Code challenge did take me longer that the other challenges. I did not initially realize that golfScore() had BOTH strokes and par as parameters. With the other IF ELSE challenges we were only dealing with one argument to pass into the IF ELSE condition. I found myself in that "flow" and completely overlooked that two parameters were available to work with in the IF ELSE condition. I also found myself looking at the Strokes/Par table thinking, "How will IF( <= par-2) work?" After a little head scratching, I realized the values under the Strokes column were what you were supposed to compare Strokes to (i.e. IF (strokes <= par-2)). Hopefully, this feedback is helpful. I think the confusion is coming from the wording of the challenge and suddenly going from using one passed in parameter to two in your IF ELSE condition.
Awesome. has a PR open already. Could you take a look at that first and let me know what you think of his proposed changes?
Code change:
], "tests": [ "assert(typeof timesFive === 'function', 'message: <code>timesFive</code> should be a function');", <del> "assert(code.match(/timesFive(s*d+s*)/g), 'message: function <code>timesFive</code> should be called with a number');", </del> <ins> "assert(code.match(/timesFive(s*d+s*)/g), 'message: function <code>timesFive</code> should be called with a number');", </ins> "assert(timesFive(5) === 25, 'message: <code>timesFive(5)</code> should return <code>25</code>');", "assert(timesFive(2) === 10, 'message: <code>timesFive(2)</code> should return <code>10</code>');", "assert(timesFive(0) === 0, 'message: <code>timesFive(0)</code> should return <code>0</code>');"

Related discussion:
text: I agree with MiloATH's proposed changes. Would definitely reduce the potential for typos when working the problem. As a side note, feel free to let me know if I am breaking any GitHub etiquette at any point. Zero experience providing input on collaborative projects. Looking for to learning and have really enjoyed FreeCodeCamp thus far. You guys and gals are doing awesome work. :)
Sure - we will let you know in a polite way if you break GitHub etiquette. Thanks for being receptive to feedback :)
Code change:
} .map-challenge-title { <ins> display: flex; </ins> margin-bottom: 0.25rem; <del> max-width: calc(100% - 80px); </del> <ins> max-width: calc(100% - 105px); } @media (max-width: 640px) { .map-ui .block ul { padding-inline-start: 6px; font-size: 0.9rem; } button.map-title { width: 100%; } .map-ui ul { padding-inline-start: 15px; } .map-ui > ul { padding-inline-start: 0; } .map-challenge-title { max-width: 100%; } .map-title-completed { flex-shrink: 0; padding-left: 15px; } </ins> } .block a { text-decoration: none; } <ins> /* 14px is the width of the expansion arrow */ .superblock { max-width: calc(100% - 14px); } </ins>

Related discussion:
text: Currently the map looks like this: ! I think it would look a lot better if we made more use of the available space. Something like this: !
I can fix the css in a separate PR, if you like. Unless you're already handling it, of course.
I think it is handled now in the PR already. I moved things into the Grid system
That PR still has the heavy indentation: !
You are correct, if you have something going please go ahead and push to the PR. I am done with the basic consolidation of the views that I was going for.
Code change:
on: workflow_dispatch: schedule: <del> # runs every weekday at 12:30 PM UTC - cron: '30 12 * * 1-5' </del> <ins> # runs Monday and Wednesday at 12:15 PM UTC - cron: '15 12 * * 1,3' </ins> env: GITHUB_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_PAT }}

Related discussion:
text: Uploads: Everyday Downloads: Twice a week This should suffice our deployment targets which are usually Tuesdays? and Thursdays (optional) at around UTC+3 We can shake it up so that PRs can be merged on Mondays and Wednesdays?
So downloads should be triggered on Mondays and Wednesdays?
Yes, or a day before, for all we care. As long as they are: a week only on Mondays and Wednesdays for deployments on Tuesdays and Thursdays
Code change:
} = this.props; return ( <Hotkeys <ins> editorRef={this.editorRef} </ins> executeChallenge={executeChallenge} innerRef={this.containerRef} introPath={introPath}

Related discussion:
text: Is your feature request related to a problem? Please describe. It currently can take a several key presses to navigate to the editor if it does not have focus. Describe the solution you'd like It should be possible to focus on the editor with a hotkey, for example 'e'. The issue where this was mostly discussed will be closed soon, but some thoughts about implementing this appeared there:
Code change:
{ type: 'info', message: dedent` <del> ${username} has chosen to make their profile private. They will need to make their profile public </del> <ins> ${username} has chosen to make their portfolio private. They will need to make their portfolio public </ins> in order for others to be able to view their certification. ` }

Related discussion:
text: <img width="1074" alt="Profile_freeCodeCamp_org" src="https://user-"
can I take this issue?
Thank you and for your interest. This issue might need a little more investigation before arriving at the final solution. I encourage you to find similar issues to tackle in the meantime. should I only audit the copy to replace profile with portfolio or you would rather changing the profile instances in the client and the api-server entirely?
I would like to get it assigned..
this should come as a cosmetic change to the copy only, do not change any endpoints or code (functions, objects, files) etc. It can be done to both API and the client where copy edit is needed.
Code change:
{ type: 'info', message: dedent` <del> ${username} has chosen to make their profile private. They will need to make their profile public </del> <ins> ${username} has chosen to make their portfolio private. They will need to make their portfolio public </ins> in order for others to be able to view their certification. ` }

Related discussion:
text: <img width="927" alt="Settings_freeCodeCamp_org" src="https://user-"
Code change:
.tool-panel-group-mobile .btn-block + .btn-block { margin: 0 2px 0 0; <ins> padding-left: 8px; padding-right: 8px; </ins> }

Related discussion:
text: This wasn't always the case, but right now the formatting for smaller screens isn't great: ! Smaller screens used to have tabs letting you switch between the instructions, editor and so on. You can see them briefly (in the gif) at medium screen sizes, but not for mobile. If we still want to support this, I can look into restoring it.
Looks like they're just hidden behind the search bar.
Thanks for reporting this, we are still figuring out the final state for the nav. Once that is settled, this issue will be resolved automatically.
This wasn't entirely resolved by , as the challenge tabs are still displaying incorrectly: !
Code change:
} 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> ```

Related discussion:
text: <!-- 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
Code change:
"Nest one <code>div</code> element with the class <code>well</code> within each of your <code>col-xs-6</code> <code>div</code> elements." ], "tests": [ <del> "assert($("div").length > 4, 'Add two <code>div</code> elements inside your <code>div class="well"></code> element both with the class <code>col-xs-6</code>')", </del> <ins> "assert($("div").length > 4, 'Add a <code>div</code> element with the class <code>well</code> inside each of your <code>div class="col-xs-6"> elements</code>')", </ins> "assert($("div.col-xs-6").children("div.well").length > 1, 'Nest both of your <code>div class="col-xs-6"</code> elements within your <code>div class="row"</code> element.')", "assert(editor.match(/</div>/g) && editor.match(/<div/g) && editor.match(/</div>/g).length === editor.match(/<div/g).length, 'Make sure all your <code>div</code> elements have closing tags.')" ],

Related discussion:
text: Challenge has an issue. This is backwards and should read: "Add two div elements inside your "col-xs-6" elements both with the class "well" - or something similar. !
Code change:
"Nest one <code>div</code> element with the class <code>well</code> within each of your <code>col-xs-6</code> <code>div</code> elements." ], "tests": [ <del> "assert($("div").length > 4, 'Add two <code>div</code> elements inside your <code>div class="well"></code> element both with the class <code>col-xs-6</code>')", </del> <ins> "assert($("div").length > 4, 'Add a <code>div</code> element with the class <code>well</code> inside each of your <code>div class="col-xs-6"> elements</code>')", </ins> "assert($("div.col-xs-6").children("div.well").length > 1, 'Nest both of your <code>div class="col-xs-6"</code> elements within your <code>div class="row"</code> element.')", "assert(editor.match(/</div>/g) && editor.match(/<div/g) && editor.match(/</div>/g).length === editor.match(/<div/g).length, 'Make sure all your <code>div</code> elements have closing tags.')" ],

Related discussion:
text: Challenge has an issue. Please describe how to reproduce it, and include links to screenshots if possible. There seems to be a conflict between the last paragraph above the "Go to Next Challenge" button, and the first test-item below the "Reset/Help/Bug" buttons (see screenshot, below). It is not clear if the <div class="well"'s should go inside the <div class="col-xs-6"'s, or vice versa. If I were to follow ALL the directions to the letter, I'd have two <div class="col-xs-6"'s nested inside each of two <div class="well"'s, each of which is inside an outer <div class="col-xs-6". I think this is just a text-editing problem, because my code passes when I did what I expected the waypoint to be looking for: an empty <div class="well"inside each of the previously-placed <div class="col-xs-6"'s; this is included in the screenshot, as well. Also, I am fairly the text is missing a "<", where I've sloppily drawn it in on my screenshot. !
I ran into this also. The challenge validates when you follow the instructions in the explanatory text. It does not validate when you only follow the instructions in the checkpoints.
Code change:
# --description-- <del> Turn the words `cat photos` located inside `p` element into a link by replacing the words with the anchor element added previously. The `p` element should show the same text in the browser, but the words `cat photos` should now be a link. There should only be one link showing in the app. </del> <ins> Turn the words `cat photos` located inside `p` element into a link using the same value for the `href` attribute as the link below the `p` element. The `p` element should show the same text in the browser, but the words `cat photos` should now be a link. Make sure to remove the `a` element with the text `cat photos` on the line below the `p` element. </ins> # --hints--

Related discussion:
text: In step 12 of the Learn HTML by Building a Cat Photo App, the following two line numbers 7 & 8 exist at the start of the step: The instructions tell the user to make the text that appears inside the sentence of the element a link. The instructions do not explicitly state to remove the existing anchor element that is below the element. Instead, it just has a last sentence that says . Step 13 starts off only showing the following for line 7: The original link that appeared in step 12 is gone. In my opinion, an easy solution is to just change the last sentence in step 12 to: OR n/a n/a No response Device: [e.g. iPhone 6, Laptop] OS: [e.g. iOS 14, Windows 10, Ubuntu 20.04] Browser: [e.g. Chrome, Safari] Version: [e.g. 22] No response
I think this instruction above is enough to tell what the end result should be
But it doesn't appear to be as this particular step comes up a lot in the forums. I agree with we need to make this a little clearer. If the intent is for the user to remove the existing link below the then I think we should tell them exactly that. Here's my attempt at making the instructions clearer: the words in the element into a link using the same value for the attribute as the link below the element. the link below the element. I thought turning this into two steps might make it a little clearer, but it can easily be two sentences instead. I'm not sure what the purpose of this step is, so my instructions may be unwittingly stepping on the goal here.
I think a better word is than in but that's nitpicking. I do fully agree changing the hint. Edit:
We're also teaching vocabulary here. I would use slightly more consistent language with the previous steps:
Code change:
} function pick(guess) { <del> let numbers = []; </del> <ins> const numbers = []; </ins> while (numbers.length < 10) { numbers.push(Math.floor(Math.random() * 11)); }

Related discussion:
text: No need to use here since the array is not re-assigned in later steps. We used for other arrays in this project that aren't reassigned. No response All No response
Hello, I fixed this by doing the following: 1) went to 2) found the ID of step-162 () 3) went to the repositories code and searched for the markdown file through ID. 4) the markdown file 5) Updated the markdown file to use 'const' instead of 'let' ! After this commit is approved, this should be able to be closed.
All of the seed code for subsequent challenges would also be changed.
I am not sure what you mean by this. Is there anything I can do to learn this? Are you referring to all references of 'let' initialization to be changed to 'const' in future steps?
Not quite - the answer to this step becomes part of the starting code for all future steps. If we change the instructions to use here, then then starting code on all future steps needs to be swapped to reflect that.
Hi, I raised a PR to fix this
Code change:
.find('.map-title') .find('h4') .text() <del> ).toBe('Super Block One Certification (300 hours)'); </del> <ins> ).toBe('Super Block One Certification (300xa0hours)'); </ins> expect(enzymeWrapper.find('ul').length).toBe(0); enzymeWrapper.find('.map-title').simulate('click');

Related discussion:
text: Currently the map looks like this: ! I think it would look a lot better if we made more use of the available space. Something like this: !
I can fix the css in a separate PR, if you like. Unless you're already handling it, of course.
I think it is handled now in the PR already. I moved things into the Grid system
That PR still has the heavy indentation: !
You are correct, if you have something going please go ahead and push to the PR. I am done with the basic consolidation of the views that I was going for.
Code change:
'cert-map-estimates': { certs: 'Certification (300u00A0hours)', 'coding-prep': '(Thousands of hours of challenges)' <ins> }, 'editor-tabs': { info: 'Info', code: 'Code', tests: 'Tests', preview: 'Preview' </ins> } }, donate: {

Related discussion:
text: Describe the bug When you enter a challenge using a mobile device, the tabs below the main header are displayed with untranslated text To Reproduce Steps to reproduce the behavior (mobile device): to untranslated tabs below the main header Expected behavior Tabs text should be translated. Screenshots Spanish site ! Chinese site ! Desktop (please complete the following information): OS: [Windows 10] Browser: [chrome] Version: [88] Additional context Those strings are not available yet on the Crowdin platform.