Question:
The following challenges have an example function call in the seed code. These function calls should be removed and the related tests should be clarified to reflect the call instead. This sorting challenge is correct and could be used for reference.
Hi, nhcarrigan. I'd like to try to help and solve it. I'm still learning about the project so I would like to ask a question so I can understand the issue better. There is a function call in the file.. bubleSort([1,2,3....]) (example: implement-bubble-) ! And it should be removed from the seed section and transferred to here, similarly to implement-quick-sort: ! ! Is it correct or are there other files that I should be concerned about?
That is correct, yes - this same change should be completed on the four files I've linked. I would, however, recommend holding off on working on this until we receive additional consensus that this is the best way to proceed. If you run in to any questions, feel free to review our or ask in our or the .
Sounds great!! Thanks for the fast response. I will wait until further notice.
Hi MuriloMarquesSantos, are you still interested in fixing this issue?

); ``` <del> `bubbleSort` should return an array that is unchanged except for order. </del> <ins> `bubbleSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])` should return an array that is unchanged except for order. </ins> ```js assert.sameMembers(

); ``` <del> `insertionSort` should return an array that is unchanged except for order. </del> <ins> `insertionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])` should return an array that is unchanged except for order. </ins> ```js assert.sameMembers(

); ``` <del> `mergeSort` should return an array that is unchanged except for order. </del> <ins> `mergeSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])` should return an array that is unchanged except for order. </ins> ```js assert.sameMembers(

); ``` <del> `selectionSort` should return an array that is unchanged except for order. </del> <ins> `selectionSort([1,4,2,8,345,123,43,32,5643,63,123,43,2,55,1,234,92])` should return an array that is unchanged except for order. </ins> ```js assert.sameMembers(


Question: There are a couple of wording changes needed on the lesson. In the description section, should be changed to In the instructions section, needs backticks around "input"

# --description-- <del> You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an action on your `form` element. </del> <ins> You can build web forms that actually submit data to a server using nothing more than pure HTML. You can do this by specifying an `action` attribute on your `form` element. </ins> For example:

# --instructions-- <del> Nest the existing input element inside a `form` element and assign `"https://freecatphotoapp.com/submit-cat-photo"` to the `action` attribute of the `form` element. </del> <ins> Nest the existing `input` element inside a `form` element and assign `"https://freecatphotoapp.com/submit-cat-photo"` to the `action` attribute of the `form` element. </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. --Describe your problem and how to reproduce it: Below mentioned challenge can be passed using simple .sort() function instead of using .sort((a,b) =a-b) Link to the page with the problem: Possible solutions the existing array from [5, 6, 3, 2, 9] to something like [1, 30, 4, 21, ] another test case with array [1, 30, 4, 21, ] So that the challenge cannot be passed without using .sort((a,b) =a-b) function
https://user- Here is my simple solution to this problem. I just use ES6 syntax using spread. return [].sort(); and that is it!
I think this is a change that may be necessary, there often cases where users are stumped in following lessons because they use without an argument and can't understand why the numbers are not ordered from lowest to highest but I will wait for others to comment
The risks of using without a callback function are pretty well covered in the previous challenge : I think changing the test case could be a good way to help campers remember this. And/or adding some sort of warning in the challenge description : "Caution : remember that in order to work as expected, should be used with a callback function"
In order to ensure that the callback function is provided, a test case with the array [, 104, 99] can also be

assert(nonMutatingSort(globalArray) !== globalArray); ``` <ins> `nonMutatingSort([1, 30, 4, 21, 100000])` should return `[1, 4, 21, 30, 100000]`. ```js assert(JSON.stringify(nonMutatingSort([1, 30, 4, 21, 100000])) === JSON.stringify([1, 4, 21, 30, 100000])) ``` `nonMutatingSort([140000, 104, 99])` should return `[99, 104, 140000]`. ```js assert(JSON.stringify(nonMutatingSort([140000, 104, 99])) === JSON.stringify([99, 104, 140000])) ``` </ins> # --seed-- ## --seed-contents--


Question:
Looking forward for reporting a security issue: Please report security issues by sending an email to instead of raising a GitHub issue. Describe the bug The heights of the SVG files on the landing page vary, which causes the certification chart to look inconsistent. To Reproduce <img width="946" alt="zoomfloatingvideowindowandLearntoCode—ForFree—CodingCoursesforBusyPeople" src="https://user-"Desktop (please complete the following information): OS: Mac Browser: Chrome Version: Version 88.0.4324.96 (Official Build) (x86_64)
Hi Quincy, I let know about this already.
in min height, so should take care of it.

<Button block={true} bsStyle='primary' <del> className='btn-cta' </del> id='confirm-donation-btn' type='submit' >

border-radius: 5px; background-color: var(--yellow-light); border-color: var(--yellow-light); <ins> color: black; font-weight: bold; </ins> } button#confirm-donation-btn:active, button#confirm-donation-btn:active:focus, button#confirm-donation-btn:hover { <del> color: var(--secondary-color); </del> <ins> color: black; </ins> background-color: #f2ba38; border-color: #f2ba38; }

font-family: 'Lato', sans-serif; font-size: 1.1rem; margin: 0; <del> color: var(--gray-75); </del> <ins> color: var(--quaternary-color); </ins> } .testimonial-meta p:last-child { margin-top: 15px;

height: 100%; padding-bottom: 100%; position: relative; <ins> background-color: var(--primary-background); </ins> } .testimonial-image {

padding: 25px; text-align: justify; justify-content: center; <ins> background-color: var(--primary-background); </ins> } .landing-top, .as-seen-in,

padding: 4vw 0; } <ins> .map-ui .btn { min-height: 80px; } </ins> @media (min-width: 500px) { .landing-top p { font-size: 1.25rem;

color: var(--secondary-background); } <ins> .link-btn.btn-lg svg, </ins> .map-icon, .cert-header-icon { flex-shrink: 0;

</DefaultLayout> ); } <del> if (/^/donation(/.*)*|^/$|^/donate(/.*)*/.test(pathname)) { return ( <DefaultLayout pathname={pathname} useTheme={false}> {element} </DefaultLayout> ); } </del> return <DefaultLayout pathname={pathname}>{element}</DefaultLayout>; }


Question:
If I try to select text with my mouse so I can copy/paste it or something - the selected text has the same background as the rest of the page. Making it difficult to see what is selected, and frustrating to try and select, well anything. ! This seems to occur across the entire site. Perhaps it was intentional or something, but I don't think it's a good ux. Note: the text does actually get selected, so you can still copy/paste it. Tested on Chrome and Firefox
Good catch. It'll be this PR: which didn't scope the change to challenge descriptions. I'll put together a quick fix. Edit: nevermind, it's just that has to be passed four values, not two. I don't quite understand how this ever worked.

} ::selection { <del> background-color: rgba(var(--highlight-color), 0.3); </del> <ins> background-color: var(--selection-color); </ins> } @media (max-width: 500px) {

.has-success.checkbox label, .has-success.radio-inline label, .has-success.checkbox-inline label { <del> color: rgb(var(--highlight-color)); </del> <ins> color: var(--highlight-color); </ins> } .has-error .help-block,

--yellow-light: #ffc300; --yellow-dark: #4d3800; --blue-light: rgb(153, 201, 255); <ins> --blue-light-translucent: rgb(153, 201, 255, 0.3); </ins> --blue-dark: rgb(0, 46, 173); <ins> --blue-dark-translucent: rgb(0, 46, 173, 0.3); </ins> --green-light: #acd157; --blue-mid: #198eee; --purple-mid: darkviolet;

--primary-background: var(--gray-90); --highlight-color: var(--blue-light); --highlight-background: var(--blue-dark); <ins> --selection-color: var(--blue-light-translucent); </ins> --success-color: var(--green-light); --success-background: var(--green-dark); --danger-color: var(--red-light);

--primary-background: var(--gray-00); --highlight-color: var(--blue-dark); --highlight-background: var(--blue-light); <ins> --selection-color: var(--blue-dark-translucent); </ins> --success-color: var(--green-dark); --success-background: var(--green-light); --danger-color: var(--red-dark);

} .monaco-menu .action-label { <del> color: rgb(var(--highlight-color)); </del> <ins> color: var(--highlight-color); </ins> letter-spacing: 0.02em; }

#instructions ol { font-family: 'Lato', sans-serif; } <del> #description ::selection { background-color: rgba(var(--highlight-color), 0.3); } </del>


Question: The certification files () have been uploaded to Crowdin for translation. However, the React Component itself does not use the translation helper for the text within the certification (such as ). The component and files should be updated to allow this.

"invalid-protocol": "URL 必须以 http 或 https 开头", "url-not-image": "URL 必须直接链接到图片文件", "use-valid-url": "请使用有效的 URL" <ins> }, "certification": { "certifies": "Chinese: This certifies that", "completed": "Chinese: has successfully completed the freeCodeCamp.org", "developer": "Chinese: Developer Certification, representing approximately", "executive": "Chinese: Executive Director, freeCodeCamp.org", "verify": "Chinese: Verify this certification at {{certURL}}", "issued": "Chinese: Issued" </ins> } }

"invalid-protocol": "URL must start with http or https", "url-not-image": "URL must link directly to an image file", "use-valid-url": "Please use a valid URL" <ins> }, "certification": { "certifies": "This certifies that", "completed": "has successfully completed the freeCodeCamp.org", "developer": "Developer Certification, representing approximately", "executive": "Executive Director, freeCodeCamp.org", "verify": "Verify this certification at {{certURL}}", "issued": "Issued" </ins> } }

"invalid-protocol": "La URL debe comenzar con http o https", "url-not-image": "URL debes enlazar directamente a un archivo de imagen", "use-valid-url": "Utiliza un URL válido" <ins> }, "certification": { "certifies": "Spanish: This certifies that", "completed": "Spanish: has successfully completed the freeCodeCamp.org", "developer": "Spanish: Developer Certification, representing approximately", "executive": "Spanish: Executive Director, freeCodeCamp.org", "verify": "Spanish: Verify this certification at {{certURL}}", "issued": "Spanish: Issued" </ins> } }

'invalid-protocol': 'URL must start with http or https', 'url-not-image': 'URL must link directly to an image file', 'use-valid-url': 'Please use a valid URL' <ins> }, certification: { certifies: 'This certifies that', completed: 'has successfully completed the freeCodeCamp.org', developer: 'Developer Certification, representing approximately', executive: 'Executive Director, freeCodeCamp.org', verify: 'Verify this certification at {{certURL}}', issued: 'Issued' </ins> } };

</Col> <Col md={7} sm={12}>
  Issued    {t('certification.issued')}   {format(certDate, 'MMMM d, y')}
 </Col>

This certifies that

{t('certification.certifies')}

 {displayName}

has successfully completed the freeCodeCamp.org

{t('certification.completed')}

 {certTitle}

  Developer Certification, representing approximately{' '} {completionTime} hours of coursework   {t('certification.developer')} {completionTime} hours of coursework

 Quincy Larson

Executive Director, freeCodeCamp.org

{t('certification.executive')}

 <Row>
Verify this certification at {certURL}

 {t('certification.verify', { certURL: certURL })}
  </Row>  </Row>


Question:
<!-- NOTE: If you want to become an author on freeCodeCamp, you can find everything here: --Describe your problem and how to reproduce it: The problem is when click on this in directory to open link is not valid and go to page. Add a Link to the page with the problem: Recommended fix, suggestions (how would you update it?): I recommend to replace this link by because the basic going to contributors channel. If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! If i can fix it, It will be great for me. Thanks
Thank you for catching this - I'm opening this up to first timers to replace the link in the file.
Thanks, Can i fix it?
Go for it! If you have not done so already, we recommend reviewing our .
Okay, Thanks a lot, I will do that.

# Contribute <del> Tools to help maintain [freeCodeCamp.org](https://www.freecodecamp.org)'s Open Source Codebase on GitHub. We are currently working on creating a tools dashboard for helping you review PRs and translations. Hangout with us in the [contributor's chat room](https://chat.freecodecamp.org/contributors) to learn more. </del> <ins> Tools to help maintain [freeCodeCamp.org](https://www.freecodecamp.org)'s Open Source Codebase on GitHub. We are currently working on creating a tools dashboard for helping you review PRs and translations. Hangout with us in the [contributor's chat room](https://chat.freecodecamp.org/channel/contributors) to learn more. </ins>


Question:
Reference URL: on espanol ! Night mode active: !
To expand: Donation component also breaks on night mode: !
<img width="1440" alt="Screen Shot 2021-02-08 at 11 02 37 PM" src="https://user-"

if (element.type === FourOhFourPage) { return <DefaultLayout pathname={pathname}>{element}</DefaultLayout>; } <del> if (/^/certification(/.*)*/.test(pathname)) { </del> <ins> if (//certification//.test(pathname)) { </ins> return ( <CertificationLayout pathname={pathname}>{element}</CertificationLayout> ); } <del> if (/^/guide(/.*)*/.test(pathname)) { </del> <ins> if (//guide//.test(pathname)) { </ins> console.log('Hitting guide for some reason. Need a redirect.'); } const splitPath = pathname.split('/'); <del> const splitPathThree = splitPath.length > 2 ? splitPath[3] : ''; </del> <ins> const isSuperBlock = (splitPath.length === 3 && splitPath[1]) || (splitPath.length === 4 && splitPath[2]); </ins> <del> const isNotSuperBlockIntro = splitPath.length > 3 && splitPathThree.length > 1; if (/^/learn(/.*)*/.test(pathname) && isNotSuperBlockIntro) { </del> <ins> if (//learn//.test(pathname) && !isSuperBlock) { </ins> return ( <DefaultLayout pathname={pathname} showFooter={false}> {element}


Question:
As we are now rolling out the curriculum in Chinese and Spanish, we need to think about how to get the button to work for the two languages. Currently, when the button is clicked, the user is taken to the English forum () where a pre-populated topic message (in English) is displayed for the user to fill in with relevant information. These topics are dynamically generated before the post is created on the forum, so we will just need to make use of the file for the content of the topics. Also, we will need to route to the correct forum url for Chinese and target the correct subforum for Spanish.
So the Chinese links work correctly, because the Chinese forum is hosted at a different domain (which is passed in to the environment variable). For Espanol, as it currently stands the category comes from the value returned by the .

"nav": { "forum": "https://chinese.freecodecamp.org/forum/", "news": "https://chinese.freecodecamp.org/news/" <ins> }, "help": { "HTML-CSS": "front-end", "JavaScript": "front-end", "Python": "curriculum", "Relational Databases": "curriculum" </ins> } }

"nav": { "forum": "https://forum.freecodecamp.org/", "news": "https://freecodecamp.org/news/" <ins> }, "help": { "HTML-CSS": "HTML-CSS", "JavaScript": "JavaScript", "Python": "Python", "Relational Databases": "Relational Databases" </ins> } }

"nav": { "forum": "https://forum.freecodecamp.org/c/espanol/", "news": "https://freecodecamp.org/espanol/news/" <ins> }, "help": { "HTML-CSS": "Espanol/HTML-CSS", "JavaScript": "Espanol/JavaScript", "Python": "Espanol/Python", "Relational Databases": "Espanol/Relational Databases" </ins> } }

"nav": { "forum": "https://forum.freecodecamp.org/c/italiano/", "news": "https://freecodecamp.org/italian/news/" <ins> }, "help": { "HTML-CSS": "Italiano/HTML-CSS", "JavaScript": "Italiano/JavaScript", "Python": "Italiano/Python", "Relational Databases": "Italiano/Relational Databases" </ins> } }

"nav": { "forum": "https://forum.freecodecamp.org/c/portugues/", "news": "https://freecodecamp.org/portuguese/news/" <ins> }, "help": { "HTML-CSS": "Portugues/HTML-CSS", "JavaScript": "Portugues/JavaScript", "Python": "Portugues/Python", "Relational Databases": "Portugues/Relational Databases" </ins> } }

)}n${i18next.t('forum-help.add-code-three')}nn```n${endingText}` ); <del> const category = window.encodeURIComponent(helpCategory || 'Help'); </del> <ins> const category = window.encodeURIComponent( i18next.t('links:help.' + helpCategory || 'Help') ); </ins> const studentCode = window.encodeURIComponent(textMessage); const altStudentCode = window.encodeURIComponent(altTextMessage);


Question: 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.

"cert-map-estimates": { "certs": "认证（300 小时）", "coding-prep": "（数千小时的挑战）" <ins> }, "editor-tabs": { "info": "信息", "code": "码", "tests": "测验", "preview": "预习" </ins> } }, "donate": {

"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": {

"cert-map-estimates": { "certs": "Certificación (300 horas)", "coding-prep": "(Miles de horas de desafíos)" <ins> }, "editor-tabs": { "info": "Información", "code": "Código", "tests": "Pruebas", "preview": "Avance" </ins> } }, "donate": {

'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: {

import { bindActionCreators } from 'redux'; import EditorTabs from './EditorTabs'; import { showUpcomingChanges } from '../../../../../config/env.json'; <ins> import i18next from 'i18next'; </ins> const mapStateToProps = createStructuredSelector({ currentTab: currentTabSelector

id='challenge-page-tabs' onSelect={moveToTab} > <del> <TabPane eventKey={1} title='Info'> </del> <ins> <TabPane eventKey={1} title={i18next.t('learn.editor-tabs.info')}> </ins> {instructions} </TabPane> <del> <TabPane eventKey={2} title='Code' {...editorTabPaneProps}> </del> <ins> <TabPane eventKey={2} title={i18next.t('learn.editor-tabs.code')} {...editorTabPaneProps} > </ins> {showUpcomingChanges && <EditorTabs />} {editor} </TabPane> <del> <TabPane eventKey={3} title='Tests' {...editorTabPaneProps}> </del> <ins> <TabPane eventKey={3} title={i18next.t('learn.editor-tabs.tests')} {...editorTabPaneProps} > </ins> {testOutput} </TabPane> {hasPreview && ( <del> <TabPane eventKey={4} title='Preview'> </del> <ins> <TabPane eventKey={4} title={i18next.t('learn.editor-tabs.preview')} > </ins> {preview} </TabPane> )}


Question:
In email signup page text is not structured refer to that attached images If we add "div class="intro-description" style=" padding:0 15px; "" it would look much good Before & after images ! !
can i work on this ? i'm a first time contributor
I didn't see the comment and pr you generated . so also made the pr as both of them are based on what I wrote earlier while raising issue this got du[licated
It is great that you are eager to contribute to the code base, but this issue/feature has not been triaged yet. So, no decision has been made as to the appropriate course of action - whether anything needs to be changed and how. This means PRs might not be needed, or changes are likely needing to be made to them. 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. 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
Thanks a lot for your guidance
I am fine with fixing this up in some way. I left a review on the PR with some thoughts.
People that want to work on this can follow this PR- / comment

<title>{t('misc.email-signup')} | freeCodeCamp.org</title> </Helmet> <Grid className='default-page-wrapper email-sign-up'>  <Spacer />  <SectionHeader>{t('misc.email-signup')}</SectionHeader> <Row>  <IntroDescription />  <Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}>  <IntroDescription />  {t('misc.quincy')} <Spacer />
{t('misc.email-blast')}


Question:
From with feedback as Awesome work with the new radio! It's got much better performance than YouTube. Thought this feature was missing so I a simple version :) One known issue is that the song history won't update immediately after a song completes, but regularly every 20 seconds. This cause a slight delay when songs are changing. Perhaps song history updates could happen once some event inside the embedded coderadio player happens? I don't know what event to listen to, but that would be a significant improvement. !
I can work on creating a Song History component! :) Edit: Here what it looks with what I have: !
Hi everyone, I'm wondering if I can get repo right to push my branch so I can raise a PR for this feature. :)
Hey Brandon! Awesome you worked on this feature! You can fork the repo to your own GitHub account and then push your branch there. Then you can submit the PR even without write access directly to this repo. Have a nice day!

if (err) { next(err); } <ins> var dashedNameFull = bonfire[bonfireNumber].name.toLowerCase().replace(/s/g, '-'); if (dashedNameFull != dashedName) { return res.redirect('/bonfires/' + dashedNameFull); } </ins> if (bonfire.length < 1) { req.flash('errors', { msg: "404: We couldn't find a bonfire with that name. Please double check the name."


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: the challenge contains Refer to the example code in the text editor if you get stuck. There is no example code in the editor Add a Link to the page with the problem: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
Let's just remove the .
I have opened this issue up for first timers to contribute.
First timers contributing to this repository or first timers in general?
! This is weird the sample code does exist on my view. Which broswer are you using?
First timers to this repository. 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
To this repo.
That is an example in the challenge description - but the refers to a non-existent sample in the editor and should thus be removed.
Well, then I would like to work on it
issues are not assigned, the first comprehensive PR is reviewed

Modify the new array `myArray` so that it contains both a `string` and a `number` (in that order). <del> **Hint** Refer to the example code in the text editor if you get stuck. </del> # --hints-- `myArray` should be an `array`.


Question:
In , if a user has submitted a project link, it will display the project's working view instead of the source code. I am not so sure adding the solution links as is currently functioning is helping much. See . Instead of showing the final project link, it would be more useful to show the source code link. In the linked forum post, going to the project results in the "Hmmm.... We Couldn't Reach Your Repl" page. For at least , we should restructure the link (if needed) to show the editable version of the project. For example, if the user submits , then we show . For Codepen projects, this is not an issue, but for Backend projects where the source code is not readily available, we either need to make my above suggested changes or remove this feature for backend challenges/projects. If a user is hosting their own project, then the same issue arises. Unless they submit a GitHub link to their project source code, a final project view does not help us identify problems for the user.
I was recently thinking about this, and just wondered how stable it would be to transform the Camper's URL into the project code URL. If you think this is a decent feature to have, and worth it, then I am willing to throw something together. I will put out a POC, now. Side Note: I have been looking into the fiasco, as some lessons still cause the dents.

projectFormValuesSelector } from '../redux'; import { tap, mapTo } from 'rxjs/operators'; <ins> import { transformEditorLink } from '../utils'; </ins> import envData from '../../../../../config/env.json'; const { forumLocation } = envData;

} ${ projectFormValues <del> ?.map(([key, val]) => `${key}: ${val}n`) </del> <ins> ?.map(([key, val]) => `${key}: ${transformEditorLink(val)}n`) </ins> ?.join('') || filesToMarkdown(files) }

<ins> /* global expect */ import { transformEditorLink } from '../utils'; describe('create-question-epic', () => { describe('transformEditorLink', () => { const links = [ { input: 'https://some-project.camperbot.repl.co', expected: 'https://replit.com/@camperbot/some-project' }, { input: 'https://some-project.glitch.me/', expected: 'https://glitch.com/edit/#!/some-project' }, { input: 'https://github.com/user/repo-name', expected: 'https://github.com/user/repo-name' } ]; it('should correctly transform app links to editor links', () => { links.forEach(link => { expect(transformEditorLink(link.input)).toStrictEqual(link.expected); }); }); it('should not transform editor links in GitHub submission', () => { links.forEach(link => { expect(transformEditorLink(link.expected)).toStrictEqual(link.expected); }); }); }); }); </ins>

const statusInt = parseInt(status, 10); return (statusInt >= 200 && statusInt < 400) || statusInt === 402; } <ins> export function transformEditorLink(url) { return url .replace( /(?<=//)(?<projectname>[^.]+).(?<username>[^.]+).repl.co/?/, 'replit.com/@$<username>/$<projectname>' ) .replace( /(?<=//)(?<projectname>[^.]+).glitch.me/?/, 'glitch.com/edit/#!/$<projectname>' ); } </ins>


Question:
! Our local images currently do not render in the translated documentation views. This is due to the use of a relative link, which breaks with the new path generated for i18n pages. A couple of potential fixes: Use an absolute link (<filename). This, IMHO, is the most effective. Have translators fix the link in the translation flow. Host the images through our CDN and fetch them.
We should use the absolute path.
Sounds good. I'll get a PR up shortly.

Open a new browser tab or window and navigate to [http://localhost:8025](http://localhost:8025) to open your MailHog inbox when the MailHog installation has completed and MailHog is running. The inbox will appear similar to the screenshot below. <del> ![MailHog Screenshot 1](images/mailhog/1.jpg) </del> <ins> ![MailHog Screenshot 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg) </ins> Emails sent by your freeCodeCamp installation will appear as below <del> ![MailHog Screenshot 2](images/mailhog/2.jpg) </del> <ins> ![MailHog Screenshot 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg) </ins> Two tabs that allow you to view either plain text or source content will be available when you open a given email. Ensure that the plain text tab is selected as below. <del> ![MailHog Screenshot 3](images/mailhog/3.jpg) </del> <ins> ![MailHog Screenshot 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg) </ins> All links in the email should be clickable and resolve to their URL.

1. Once the edits have been committed, you will be prompted to create a pull request on your fork's GitHub Page. <del> ![Image - Compare pull request prompt on GitHub](./images/github/compare-pull-request-prompt.png) </del> <ins> ![Image - Compare pull request prompt on GitHub](https://contribute.freecodecamp.org/images/github/compare-pull-request-prompt.png) </ins> 2. By default, all pull requests should be against the freeCodeCamp main repo, `main` branch. Make sure that your Base Fork is set to freeCodeCamp/freeCodeCamp when raising a Pull Request. <del> ![Image - Comparing forks when making a pull request](./images/github/comparing-forks-for-pull-request.png) </del> <ins> ![Image - Comparing forks when making a pull request](https://contribute.freecodecamp.org/images/github/comparing-forks-for-pull-request.png) </ins> 3. Submit the pull request from your branch to freeCodeCamp's `main` branch.

You should see the list of projects you have been granted access to. Select the project that you would like to proofread, then select the language. <del> ![Image - Proofreading File Tree](./images/crowdin/proof-file-tree.png) </del> <ins> ![Image - Proofreading File Tree](https://contribute.freecodecamp.org/images/crowdin/proof-file-tree.png) </ins> You should now see the list of available files. Choose your file by selecting the `Proofread` button on the right of that file, then choosing `Proofreading` from the drop-down menu that appears.

## Proofread Translations <del> ![Image - Proofreading View](./images/crowdin/proofread.png) </del> <ins> ![Image - Proofreading View](https://contribute.freecodecamp.org/images/crowdin/proofread.png) </ins> <!--Add proofread/crowdsource button to the image-->

Select which project you want to contribute to, and you will see a list of available languages for translation. <del> ![Image - List of available languages](./images/crowdin/languages.png) </del> <ins> ![Image - List of available languages](https://contribute.freecodecamp.org/images/crowdin/languages.png) </ins> Select the language you want to work on, and you will see the complete file tree. <del> ![Image - List of available files](./images/crowdin/file-tree.png) </del> <ins> ![Image - List of available files](https://contribute.freecodecamp.org/images/crowdin/file-tree.png) </ins> Each file and folder will show a progress bar. The **blue** portion of the progress bar indicates what percentage of the file has been translated, while the **green** portion of the progress bar indicates what percentage of the file has been approved by the proofreading team.

## Translate the File <del> ![Image - Editor View](./images/crowdin/editor.png) </del> <ins> ![Image - Editor View](https://contribute.freecodecamp.org/images/crowdin/editor.png) </ins> Crowdin separates a document into translatable "strings", usually sentences. Each string is translated individually. Referring to the image above:

When you attempt to save a translation, you may see a warning message appear with a notification regarding your proposed translation. <del> ![Image - QA Warning Message](./images/crowdin/qa-message.png) </del> <ins> ![Image - QA Warning Message](https://contribute.freecodecamp.org/images/crowdin/qa-message.png) </ins> This message appears when Crowdin's QA system has identified a potential error in the proposed translation. In this example, we have modified the text of a `<code>` tag and Crowdin has caught that.


Question: Describe your problem and how to reproduce it: In the challenges/projects that don't use editor, link text at the top in the contain some additional text, for example Challenges that have editor on page don't seem to have this problem. Add a Link to the page with the problem: If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !

description, instructions, translationPending, <del> superBlock </del> <ins> superBlock, block </ins> } }, isChallengeCompleted,

title, description, superBlock, <ins> block, </ins> translationPending } },

<Col md={8} mdOffset={2} sm={10} smOffset={1} xs={12}> <Spacer /> <ChallengeTitle <del> block={blockName} </del> <ins> block={block} </ins> isCompleted={isChallengeCompleted} superBlock={superBlock} translationPending={translationPending}

challengeType helpCategory superBlock <ins> block </ins> translationPending fields { blockName


Question:
An empty solution seed with the following format does not parse correctly in Crowdin: ! Adding an empty new-line between the backtick lines will parse correctly in Crowdin: ! The following files have empty seeds with the first format and need a blank line : JavaScript / Basic JavaScript comment your javascript code declare javascript variables declare string variables initializing variables with the assignment operator passing values to functions with arguments return a value from a function with return write reusable javascript with functions JavaScript / ES6 create a javascript promise JavaScript / Object Oriented Programming define a constructor function Front End Libraries / Bootstrap Create a bootstrap headline Front End Libraries / React Create a complex jsx element Quality Assurance Projects metric imperial converter Coding Interview Prep / Data Structures Create an ES6 Javascript Map
Hi, I'll add those blank lines. It'll be my first time contributing to an open-source project, though.
Please visit to find all the info you will need to get started with contributing a fix for this issue.
Alright. I'll go through the documentation.
Hi. First time contributor here. I have forked the free code camp files to my github page. I have cloned them locally, opened the appropriate folders into my VSCode editor and made the changes (though I was not able to find a # --seed-- in Quality Assurance Projects: metric imperial conversion) but now I have no idea of how to get the code back here. Is there some documentation with instructions on how to do that? Thanks in advance.

## --seed-contents-- ```html ``` # --solutions--

## --seed-contents-- ```jsx ``` # --solutions--

You can `GET` `/api/convert` with a single parameter containing an accepted number and unit and have it converted. (Hint: Split the input by looking for the index of the first character which will mark the start of the unit) ```js ``` You can convert `'gal'` to `'L'` and vice versa. (1 gal to 3.78541 L)

## --seed-contents-- ```js ``` # --solutions--


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: The requirement "You should set the content security policies to only allow loading of scripts and CSS from your server." breaks the front end page, if it is implemented properly. The helmet security middleware should be at the top of the chain in order to provide maximum benefit to the application. However, if you do this, then the front end page is broken because it relies on jquery to be downloaded from This can be worked around and pass the requirement with a couple of methods, the first is to use the helmet middleware after the route for '/' and before any other routes are defined. The second method is to download a copy of jquery, place it in the project and change to reference the copy. Of the two methods, the second one is more secure as all of your routes have the content security policy and you are controlling the script that is being loaded. This does come at the cost of more disk space and if this was a real world application building a process to watch for updates and/or security fixes to jquery and getting those fixes pushed to the application. Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Mozilla Firefox Browser Version: 86.0 Operating System: Windows 10 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): This screenshot shows the network activity without a CSP. Both the favicon from freeCodeCamp and jquery are loaded. The get request is initiated by jquery. ! This screen shot shows the activity when the CSP policy for scripts is set to self. Neither the favicon or jquery are loaded and submitting the form just causes the page to refresh without a call to /api/stock-prices. !
If that's not a part of the task (I'm not sure if it is), then the most convenient might be changing it to not require jquery at all.
Now that I've completed the project and submitted it, I went and looked at the code in demo-projects. The example app, removed the dependency on jquery and hosted its own file with the jquery functionality required rewritten in plain Javascript. Since the front end piece is not part of the project requirements, I would just update the boilerplate project to use and from the demo-project app.
I made a to the repository to fix this issue. I removed the dependency on jquery and the file from the demo-projects.

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:
Within the the text which reads: is incorrectly formatted - "anchor text" is within backticks and is thus untranslatable on Crowdin. The text in the English file should be updated to use tags instead: This issue is open to first time contributors for this repository. If you are interested in contributing, we recommend you start by reading our . And if you run in to any issues or have any questions, you can reach us in our .
Hi . I would like to work on this.
Hey there Thank you for your interest in contributing. Note that we do not typically assign issues except to long-term contributors. Instead, we generally review and merge the first pull request which comprehensively resolves the issue. Feel free to let us know if you have any questions.

`<a href="http://freecodecamp.org"> ... </a>` <del> The text, `link to freecodecamp.org`, within the `a` element is called `anchor text`, and will display the link to click: </del> <ins> The text, `link to freecodecamp.org`, within the `a` element is called <dfn>anchor text</dfn>, and will display the link to click: </ins> `<a href=" ... ">link to freecodecamp.org</a>`


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --Describe your problem and how to reproduce it: Commas are missing in the paragraph, making it hard to read and understand the meaning behind the problem. It should be something like this: "In the game of golf, each hole has a par, meaning, the average number of strokes a golfer is expected to make in order to sink the ball in the hole to complete the play. Depending on how far above or below par your strokes are, there is a different nickname." Add a Link to the page with the problem: Tell us about your browser and operating system: Browser Name: Google Chrome Browser Version: Version 89.0.4389.90 Operating System: macOS Big Sur Version 11.2.3 If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): <img width="712" alt="Screen Shot 2021-03-19 at 10 20 21 AM" src="https://user-"
Thanks for opening this issue. This looks something that can be fixed by "first time" code contributors to this repository. Along improving that part of text, it also should be considered, per , if external link to Wikipedia page about golf is necessary for completing challenge. 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 our chat room or the forum 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.

# --description-- <del> In the game of [golf](https://en.wikipedia.org/wiki/Golf) each hole has a `par` meaning the average number of `strokes` a golfer is expected to make in order to sink the ball in a hole to complete the play. Depending on how far above or below `par` your `strokes` are, there is a different nickname. </del> <ins> In the game of [golf](https://en.wikipedia.org/wiki/Golf), each hole has a `par`, meaning, the average number of `strokes` a golfer is expected to make in order to sink the ball in the hole to complete the play. Depending on how far above or below `par` your `strokes` are, there is a different nickname. </ins> Your function will be passed `par` and `strokes` arguments. Return the correct string according to this table which lists the strokes in order of priority; top (highest) to bottom (lowest):


Question:
JavaScript Algorithms and Data Structures Functional Programming Use the filter Method to Extract Data from an Array The variable watchList[0]["Actors"] contains the name of a former actress who is now an actor, having transitioned gender and changed his name to Elliot Page. Many people describe it as mortally offensive or even endangering to use the former names of trans people in this way, so this should probably be changed. (It appears to be standard entertainment industry practice now to retroactively change credits in this circumstance, so that is what I would suggest.)
The current site has updated the actors' names section. Since this is the source of the data for 3 challenges, I think it is reasonable to make the same change on our site. The name appears twice in each of the following challenge files: - I am opening this issue up to "first timers only" as this is an easy change. To resolve this issue, you will need to replace the name with in all relevant places in the above challenges.
I know it is more work, but would we not be better off changing all names/(personal info) to random/unrelated names/words?
Yes, I agree with this as then we wouldn't have to worry about backlash or criticism if a mistake/error is made.
Just changed the name where necessary. I wasn't too sure what you meant by changing all the names/(personal info) to random/unrelated names/words in the context of movie information. Hope I helped :)
The list of real movies gives the 3 challenges a more "real-life" purpose. Changing the actor names to be random names would make the data not as interesting, not to mention inaccurate. My proposal for changing the name will not happen often, so I do not think it is going to become a high maintenance issue. If it were to ever become a high maintenance issue, we could adjust the challenges accordingly to be more generic in nature. Your PR only contains changes to one challenges. To close this issue, you need to make the change across all 3 challenges referenced in the issue body. Also, you should read through our as related to creating PR titles.
But we would also remove the need to check if facts change (like in this issue) or some moral stuff like if these folks become criminals or do other shady stuff. (Weinstein, Polanksi, Depp etc.). I thought about using just animated movies, e.g. Toy Story, Finding Nemo, but then the whole lesson would need some changes.
What if the name of the voice actor changes? It is the same situation.
What if the name of the voice actor changes? I think meant use the character names, instead.
We can do whatever, I still think the easiest solution for now is to just change the name in the 3 challenges.
Is this still open? I am a newbie would like to start with something simple
Yes, this is still open. Feel free to create a PR. 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
Just to confirm, we are to replace all the instances of Ellen Page to Elliot Page?

"Genre": "Action, Adventure, Crime", "Director": "Christopher Nolan", "Writer": "Christopher Nolan", <del> "Actors": "Leonardo DiCaprio, Joseph Gordon-Levitt, Ellen Page, Tom Hardy", </del> <ins> "Actors": "Leonardo DiCaprio, Joseph Gordon-Levitt, Elliot Page, Tom Hardy", </ins> "Plot": "A thief, who steals corporate secrets through use of dream-sharing technology, is given the inverse task of planting an idea into the mind of a CEO.", "Language": "English, Japanese, French", "Country": "USA, UK",


Question:
Potentially, upgrading to MongoDB 4 has broken the GitPod Development. I am looking into it, but here are the errors: Shortened Error (me trying to restart Mongodb, after an initial crash): <details<summarymongod --version</summary</details<details<summaryFull Error</summary</details<details<summaryPotentially relevant client error</summary</details
To the best of my knowledge no code changes were made to upgrade MongoDB on GitPod. The base image using MongoDB 4 needs to be looked at. In other words, the move to MongoDB 4.0.x (not same as 4.x) breaking GitPod is coincidental?
To be honest, I have no idea. The base image: Source: Docs: From what I can see, the docker hub provides no information about the image, but the GitHub repo suggests the image has not been updated in 4 months. To me, this suggests an issue definitely on our side.
That is pretty easy to confirm. On GitPod you should be able to checkout a commit (any commit) that was best known to working from a few days ago. A diff should bring you closer to the root cause, say for example a dependency update somewhere. But to prevent beating around the bush, I think we instead provide our own base image with requirements set in the local setup file. Let me know if you need help with this & thanks for looking into it.
Update: There is a high likelyhood I have been looking into the wrong section for where the problem is. Here is the original error which lead me to look into the database stuff: <details<summaryClient Error</summary</detailsSteps to reproduce: 1) Open any instance off fCC GitPod 2) Wait for client to finish developing 3) Open browser preview of app 4) See client crash with above error I tried killing the database, restarting it, and restarting the client, but the app crashes, everytime the browser tries to load.
I can't reproduce this, sorry! If I go to it just works. I know we've talked about this before, but do you have any special settings for GitPod besides Enable feature preview? Environment variables are the only thing I can see that might cause an issue.
Other than the Feature Preview, everything is bog-standard. I will try to disable FP.
Disabled Feature Preview Rebased fork against upstream <details<summaryNew Client Error (similar, but different)</summary</details
If you have a lot of work in progress branches, I would suggest pushing them up to your fork and starting with a clean workspace, then on you should delete everything that is old/stale. As a best-practice I would start with a new workspace (provided the work is saved elsewhere like pushing up to th remote fork) and getting rid of older workspaces.
Fork? That could be relevant. Could you drop the Gitpod link that you're using here.
I might be using the wrong word... all I meant is: Here is the link I sometimes use - depends on whether I am testing with changes or not:
All of my testing (outside of the open PR branch) has been with a new workspace. I regularly clean the workspaces. Positive this is not part of the issue on my end.
Quick question: Are you using the preview browser within the GitPod environment? What happens if you ignore the crash on the preview browser and just use the "open in a new tab" button: ! If you reload there, is it the same behavior?
I never use the preview browser - always the new tab view (full). Had not thought to try it there, but, if I am relegated to using the preview, I still would not use it...
Hmm, I was able to reproduce with a link from your fork in your previous comment. But the link from this main repo works A-OK. Is it the same case for you? Or is it broken no matter what you do? I know you rely on GitPod quite a bit, we are totally cool with you pushing branches directly up to the main repository as an exception considering the massive amounts of work you put into contributions. If there is anything we can do to unblock you we would be happy to assist. Sorry about not being able to troubleshoot. :(
I've one idea left to try, that's updating my own fork and seeing if I can repro. I'll have a go tomorrow.
This is the same for me. A workspace from appears to work as expected. So, it is just my fork (unless proved otherwise by Oliver)... I will report this to the GitPod GitHub. Thank you, both, for your time in this. If there is anything in particular I need to work on, then I will take you up on this. Thanks
Just to confirm: it seems like it's some weird problem with Shaun's fork. It's worth trying my fork , but I suspect it'll just work when you use my link.
Worst case you would need to delete and recreate your fork and PRs, which is going to be a pain.
Strangely, his fork doesn't work locally also.
After all of that, pointed out the issue - Gatsby had enrolled me into their super secret testing club, and the development server-side rendering broke the build. Is it worth it me opening a PR with the change to prevent this? Or, am I really just that lucky?
Well, congrats on being the secret list that you never subscribed to (I hope?)!! Please make a PR to make sure no else gets on the exclusive club list and is surprised. We wasted so much time for no reason. Lolz.
Sorry this has been breaking you. This error line: comes from This generally works as most people run from the root of their site so equals the root of their site. I'm not sure what your setup is but I'm guessing you're starting the dev server differently? This isn't what we normally do — we have a more robust way to get the public directory that's not being used here that I'll switch this too which should unstick you.
Hey Thanks for getting back to us. You are correct we do have a non-common setup. We essentially use in parallel mode for spinning our API and the client (Gatsby) apps. Even within the client, we need to do a pre-Gatsby develop step. We package a few things (with Webpack) to for one of our client-side runtimes before bringing up Gatsby to start the dev server the normal way. Anyways while we do not understand the internals of Gatsby for this particular feature yet owing to time (BTW, Gatsby 3.x is fast, congrats to the team on shipping it! ), we understand that turning off the flag did resolve the issue. We will be happy to troubleshoot if you point us to some documentation about the "discovery" process for the public directory in your comment. Thanks again.
Thanks for confirming the issue! No need for you to do anymore work — I'll fix this upstream so once DEV_SSR is enabled for everyone, it won't cause you (and others with similar setups) to have any trouble.

man -f shutdown ``` <ins> #### Display the man page of ASCII table: ```bash man ascii ``` </ins> ### More information: * [Wikipedia](https://en.wikipedia.org/wiki/Man_page)


Question:
Potentially, upgrading to MongoDB 4 has broken the GitPod Development. I am looking into it, but here are the errors: Shortened Error (me trying to restart Mongodb, after an initial crash): <details<summarymongod --version</summary</details<details<summaryFull Error</summary</details<details<summaryPotentially relevant client error</summary</details
To the best of my knowledge no code changes were made to upgrade MongoDB on GitPod. The base image using MongoDB 4 needs to be looked at. In other words, the move to MongoDB 4.0.x (not same as 4.x) breaking GitPod is coincidental?
To be honest, I have no idea. The base image: Source: Docs: From what I can see, the docker hub provides no information about the image, but the GitHub repo suggests the image has not been updated in 4 months. To me, this suggests an issue definitely on our side.
That is pretty easy to confirm. On GitPod you should be able to checkout a commit (any commit) that was best known to working from a few days ago. A diff should bring you closer to the root cause, say for example a dependency update somewhere. But to prevent beating around the bush, I think we instead provide our own base image with requirements set in the local setup file. Let me know if you need help with this & thanks for looking into it.
Update: There is a high likelyhood I have been looking into the wrong section for where the problem is. Here is the original error which lead me to look into the database stuff: <details<summaryClient Error</summary</detailsSteps to reproduce: 1) Open any instance off fCC GitPod 2) Wait for client to finish developing 3) Open browser preview of app 4) See client crash with above error I tried killing the database, restarting it, and restarting the client, but the app crashes, everytime the browser tries to load.
I can't reproduce this, sorry! If I go to it just works. I know we've talked about this before, but do you have any special settings for GitPod besides Enable feature preview? Environment variables are the only thing I can see that might cause an issue.
Other than the Feature Preview, everything is bog-standard. I will try to disable FP.
Disabled Feature Preview Rebased fork against upstream <details<summaryNew Client Error (similar, but different)</summary</details
If you have a lot of work in progress branches, I would suggest pushing them up to your fork and starting with a clean workspace, then on you should delete everything that is old/stale. As a best-practice I would start with a new workspace (provided the work is saved elsewhere like pushing up to th remote fork) and getting rid of older workspaces.
Fork? That could be relevant. Could you drop the Gitpod link that you're using here.
I might be using the wrong word... all I meant is: Here is the link I sometimes use - depends on whether I am testing with changes or not:
All of my testing (outside of the open PR branch) has been with a new workspace. I regularly clean the workspaces. Positive this is not part of the issue on my end.
Quick question: Are you using the preview browser within the GitPod environment? What happens if you ignore the crash on the preview browser and just use the "open in a new tab" button: ! If you reload there, is it the same behavior?
I never use the preview browser - always the new tab view (full). Had not thought to try it there, but, if I am relegated to using the preview, I still would not use it...
Hmm, I was able to reproduce with a link from your fork in your previous comment. But the link from this main repo works A-OK. Is it the same case for you? Or is it broken no matter what you do? I know you rely on GitPod quite a bit, we are totally cool with you pushing branches directly up to the main repository as an exception considering the massive amounts of work you put into contributions. If there is anything we can do to unblock you we would be happy to assist. Sorry about not being able to troubleshoot. :(
I've one idea left to try, that's updating my own fork and seeing if I can repro. I'll have a go tomorrow.
This is the same for me. A workspace from appears to work as expected. So, it is just my fork (unless proved otherwise by Oliver)... I will report this to the GitPod GitHub. Thank you, both, for your time in this. If there is anything in particular I need to work on, then I will take you up on this. Thanks
Just to confirm: it seems like it's some weird problem with Shaun's fork. It's worth trying my fork , but I suspect it'll just work when you use my link.
Worst case you would need to delete and recreate your fork and PRs, which is going to be a pain.
Strangely, his fork doesn't work locally also.
After all of that, pointed out the issue - Gatsby had enrolled me into their super secret testing club, and the development server-side rendering broke the build. Is it worth it me opening a PR with the change to prevent this? Or, am I really just that lucky?
Well, congrats on being the secret list that you never subscribed to (I hope?)!! Please make a PR to make sure no else gets on the exclusive club list and is surprised. We wasted so much time for no reason. Lolz.
Sorry this has been breaking you. This error line: comes from This generally works as most people run from the root of their site so equals the root of their site. I'm not sure what your setup is but I'm guessing you're starting the dev server differently? This isn't what we normally do — we have a more robust way to get the public directory that's not being used here that I'll switch this too which should unstick you.
Hey Thanks for getting back to us. You are correct we do have a non-common setup. We essentially use in parallel mode for spinning our API and the client (Gatsby) apps. Even within the client, we need to do a pre-Gatsby develop step. We package a few things (with Webpack) to for one of our client-side runtimes before bringing up Gatsby to start the dev server the normal way. Anyways while we do not understand the internals of Gatsby for this particular feature yet owing to time (BTW, Gatsby 3.x is fast, congrats to the team on shipping it! ), we understand that turning off the flag did resolve the issue. We will be happy to troubleshoot if you point us to some documentation about the "discovery" process for the public directory in your comment. Thanks again.
Thanks for confirming the issue! No need for you to do anymore work — I'll fix this upstream so once DEV_SSR is enabled for everyone, it won't cause you (and others with similar setups) to have any trouble.

: '/' + clientLocale; module.exports = { <ins> flags: { DEV_SSR: false }, </ins> siteMetadata: { title: 'freeCodeCamp', siteUrl: homeLocation


Question:
Challenge Page: File: Code which passes: Code which fails: The test should not rely on the variable name. Suggestion for 3rd test: 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 would love to work on this Please assign this to me
Hey Usually if there is a 'Help Wanted' label, anyone can start working on it. I think meant to do this, but You can definitely start working on this! Thank you for helping us improve freeCodeCamp!
No problem I will wait for some time for Shaun to do it. ELse I will start working on it
Hey there, This is open for contribution. Please read the last paragraph of the original post.
Since there's a 'first timers only' label, you're very welcome to contribute

Your code should use `then` to handle the data converted to JSON by the other `then`. ```js <del> assert(code.match(/.thens*(s*(data|(s*datas*))s*=>s*{[^}]*}s*)/g)); </del> <ins> assert(__helpers.removeWhiteSpace(code).match(/.then((?w+)?=>{[^}]*})/g)); </ins> ``` Your code should get the element with id `message` and change its inner HTML to the string of JSON data. ```js assert( <del> code.match( /documents*.getElementByIds*(s*('|")message1s*)s*.innerHTMLs*=s*JSONs*.s*stringifys*(s*datas*)/g </del> <ins> __helpers.removeWhiteSpace(code).match( /document.getElementById(('|")message1).innerHTML=JSON.stringify(?w+)/g </ins> ) ); ```


Question:
Describe the bug A clear and concise description of what the bug is. When navigating to the home page, the Menu and Sign In buttons in the top right corner are missing. Can not sign in to profile. To Reproduce Steps to reproduce the behavior: to '' to locate Menu & Sign In error: Missing Menu and Sign In buttons on top navbar. Expected behavior A clear and concise description of what you expected to happen. Expected to be able to sign in and continue coursework or see profile. Screenshots If applicable, add screenshots to help explain your problem. ! Desktop (please complete the following information): OS: macOS Big Sur v =11.2.3 Browser:Safari v14.0.3 Additional context I haven't actually helped on any open source project yet. I'm pretty new, but in my senior year of CS degree. I would love to work on this issue.
could you check this out on Safari? First off, thanks for letting us know about the problem! And, yes, you're very welcome to work on this issue. If you haven't already taken a look, it's worth reading our to contributing to freeCodeCamp.
I get a loader on /learn's navigation and the page itself. it seems like near 8% of users are affected. How long have you been experiencing this issue? should we have a script that detect the browser and shows a flash accordingly? "For a better experience ... <img width="1438" alt="Screen Shot 2021-04-22 at 11 03 40 AM" src="https://user-"
Sure, what did you have in mind?
Adding in a small detail, the same issue(menu button missing and learn infinite loading) is on iOS devices also and in any browser on the phone.
Hey all, this is likely my fault with: I used a lookbehind in the regex, which I believe Safari does not support: !
You can open a PR and see if it fixes it.

export function transformEditorLink(url) { return url .replace( <del> /(?<=//)(?<projectname>[^.]+).(?<username>[^.]+).repl.co/?/, 'replit.com/@$<username>/$<projectname>' </del> <ins> /(//)(?<projectname>[^.]+).(?<username>[^.]+).repl.co/?/, '//replit.com/@$<username>/$<projectname>' </ins> ) .replace( <del> /(?<=//)(?<projectname>[^.]+).glitch.me/?/, 'glitch.com/edit/#!/$<projectname>' </del> <ins> /(//)(?<projectname>[^.]+).glitch.me/?/, '//glitch.com/edit/#!/$<projectname>' </ins> ); }


Question:
Affected page Your code Expected behavior Should pass all test cases 100%, but instead fails on the third test case "You should only use an h2 element selector to change the font". System (please complete the following information): Device: Laptop OS: Windows 8.1 Pro Latest Update Browser: Firefox, Chrome, Opera Version: Latest All Additional context The bug exists at the rule declaration colon where adding a space breaks the test fixtures. The following piece of CSS doesn't pass the tests, despite being valid and correct: While the following passes: Per the W3C Syntax and basic data types documentation, the regex is used to verify CSS rule declarations. I'd like to work on a fix for this if this will be fixed.
The . The regex doesn't allow spaces there. should work
Okay so, there's more than just that. I mentor a student based on the freeCodeCamp curriculum and a few of this bug have turned up so far. What is the Regex flavor? I tried running the Regex you provided in the fix using JavaScript and it fails. Edit: just tried again, worked like a charm.
Should I open another issue that's more general and mention this or continue in this one?
Is there still an issue of concern here
There's a number of other lessons that suffer the same Regex bug, yes.
Hey , I suggest you open a new issue with a list of the affected challenges if you are up to the task.
Sure thing.


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 Your code Typical user code: Expected behavior We've had an uptick of people blindly copying the help video from this challenge without reading the instructions: This leads to campers failing the requirement (This is generally a problem with the help videos, unfortunately - copying with zero understanding.) Does this video link need to be updated or removed? Screenshots If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. 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.
let's remove it, it's already that direction with other videos, once there is a discrepancy, the challenge win and the video is removed
Seeing as this is an easy fix (I assume we just remove the URL) I will open this up to first-timers. If anyone disagrees feel free to remove the label.
Thanks for making this a first timers only. The only additional step I would be recommending is using as an example to add clear instructions for first timers. I am going to go ahead and take care of that here. 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: Edit this file and remove the line containing . Please make sure you read , we prioritize contributors following the instructions in our guides. Join us in our chat room or the forum 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.
Thanks for the help. I have the template to a saved reply. Hopefully, I will remember to use it. Also, I have a stupid question. How do you best "quote" the code and line numbers of a .md file? Do you just use the blame view or look at a commit/PR? I don't understand the commit link you have in your quote. It looks to be for something else?
Oh - I just use the code view for a markdown file and then grab the permalink. <details<summaryDetails</summaryOpen file in code-view: It's the icon on the left at the top right of the file. Looks like this: ! Getting the permalink by selecting the line (host shift for more lines): ! </details
Right, but you can only get to the code view from inside a commit, right? I mean I do not see the source view for .md files when just looking at the file. Anyway, I will figure it out sorry to bother you with this I know you are a busy man.
Yes, that is correct. I browse the repo with top commit at the time of making a comment. But again, you do not have to spell out every little detail for the first-timers, it's just a "the more the better" type thing.

id: bad87fee1348bd9aede08817 title: Nest an Anchor Element within a Paragraph challengeType: 0 <del> videoUrl: 'https://scrimba.com/p/pVMPUv/cb6k8Cb' </del> forumTopicId: 18244 dashedName: nest-an-anchor-element-within-a-paragraph ---


Question:
<!-- NOTE: If you're reporting a security issue, don't create a GitHub issue. Instead, email We will look into it immediately. --At the affected page the following code snippet is given: But, according to the documentation of the function, the second argument is supposed to be a message and not the number of elements found. To check that an element exists n number of times, assert.elements() should be used. Affected page System (please complete the following information): Device: Laptop OS: Windows 10 Browser: Firefox Version: 86.0 Additional context Add any other context about the problem here.
Hello there, Thank you, for pointing this out. I can confirm this is incorrect. I am opening this up to first timers, and expect the best change to be: 1) Change the lesson to include () 2) Change the test to look for instead of (test is located in same file as lesson) 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

browser.assert.success(); browser.assert.text('span#name', 'Marco'); browser.assert.text('span#surname', 'Polo'); <del> browser.assert.element('span#dates', 1); </del> <ins> browser.assert.elements('span#dates', 1); </ins> done(); }); }

(getUserInput) => $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=4').then( (data) => { <del> assert.equal(data.assertions[3].method, 'browser.element'); </del> <ins> assert.equal(data.assertions[3].method, 'browser.elements'); </ins> assert.match(data.assertions[3].args[0], /('|")span#dates1/); assert.equal(data.assertions[3].args[1], 1); },


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 Your code Expected behavior The code that passes the test suite (given above) provides different output than the traditional description of the problem. I think the test suite has an 'off by one' error in initializing the starting position. Current output with solution that passes test suite: Expected output per problem description: Relevant portion of problem description: See also discussion here: Proposed Fix Change test suite to Bug reported by jsdisco on the forum.
The issue seems to originate from the original challenge at the Rosetta Code, there's optional allowance for numbering prisoners from in solution, and that's what's happening in the used solution - Sample solution for the challenge also needs small change to use for initial label, instead of . And .
I'm confused in the example given in the description, if the executioner starts at 0 and kills every 2nd prisoner then shouldn't the first prisoner that is killed be "prisoner 2" and hence the killing order becomes . I think the challenge description is the one that has to be changed here. Also if numbering started from then the above killing order is just incremented by 1 which still won't be the solution given as example.
This is how I'm seeing it.
Killing every other would be 'safe', 'kill', 'safe' , 'kill', 'safe',.... But the current solution is 'safe', 'safe', 'kill', 'safe', 'kill', 'safe',... The solution/tests definitely have an off by one
I understood it wrongly . Also yea its the tests which are off by one. Looks like a good first issue.
Hi, I have a working solution for this, although not the most efficient one. It's relatively concise but using the time complexity is quadratic. Can I make a PR?
You can always open a PR. After that, we can give feedback and suggest changes if needed.
I'm not sure why you need to make a brand new solution. You just need to modify one of the existing solutions to reduce the starting value. In my solution, for example, you just set
Hi AFAIK, there is no compelling reason to completely change the original solution. The original solution has a better time complexity. The only benefit to my approach is that the code is less error prone, since we are not implementing a fundamental data structure from scratch, and the basic steps of the algorithm that solve the problem are easier to read, since they are not mixed with the implementation details of the underlying data structure. I have already made a PR, but can fall back to the original solution, if you see necessary.
I agree that the original solution is pretty convoluted.

assert(typeof josephus(30, 3) == 'number'); ``` <del> `josephus(30,3)` should return `29`. </del> <ins> `josephus(30,3)` should return `28`. </ins> ```js <del> assert.equal(josephus(30, 3), 29); </del> <ins> assert.equal(josephus(30, 3), 28); </ins> ``` <del> `josephus(30,5)` should return `3`. </del> <ins> `josephus(30,5)` should return `2`. </ins> ```js <del> assert.equal(josephus(30, 5), 3); </del> <ins> assert.equal(josephus(30, 5), 2); </ins> ``` <del> `josephus(20,2)` should return `9`. </del> <ins> `josephus(20,2)` should return `8`. </ins> ```js <del> assert.equal(josephus(20, 2), 9); </del> <ins> assert.equal(josephus(20, 2), 8); </ins> ``` <del> `josephus(17,6)` should return `2`. </del> <ins> `josephus(17,6)` should return `1`. </ins> ```js <del> assert.equal(josephus(17, 6), 2); </del> <ins> assert.equal(josephus(17, 6), 1); </ins> ``` <del> `josephus(29,4)` should return `2`. </del> <ins> `josephus(29,4)` should return `1`. </ins> ```js <del> assert.equal(josephus(29, 4), 2); </del> <ins> assert.equal(josephus(29, 4), 1); </ins> ``` # --seed--

```js function josephus(init, kill) { <del> var Josephus = { init: function(n) { this.head = {}; var current = this.head; for (var i = 0; i < n - 1; i++) { current.label = i + 1; current.next = { prev: current }; current = current.next; } current.label = n; current.next = this.head; this.head.prev = current; return this; }, kill: function(spacing) { var current = this.head; while (current.next !== current) { for (var i = 0; i < spacing - 1; i++) { current = current.next; } current.prev.next = current.next; current.next.prev = current.prev; current = current.next; } return current.label; } </del> <ins> const arr = Array.from(Array(init).keys()); let curr = -1 while (arr.length > 1) { curr = (curr + kill) % arr.length; arr.splice(curr, 1); curr--; </ins> } <del> return Josephus.init(init).kill(kill) </del> <ins> return arr[0]; </ins> } ```


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 coding challenge with the problem. Your code Copy and paste the code from the editor that you used in between the back-ticks below: Expected behavior Add a clear and concise description of what you expected to happen. The code should pass the fcc tests Screenshots If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. ! System (please complete the following information): Irrelevant Additional context Add any other context about the problem here. The solution at uses ( s missing ) and the tests are using that. It is inconsistent with the previous lesson, and according to the Zombie docs, we could either use ('span#name') or ('span#name', 1)
Hello there, Thank you, for taking the time to open this. It appears this was missed with the previous PR: , and issue. As such, it is a simple fix to correct the test at: So, I am going to open this up to first timers 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

(getUserInput) => $.get(getUserInput('url') + '/_api/get-tests?type=functional&n=5').then( (data) => { <del> assert.equal(data.assertions[3].method, 'browser.element'); </del> <ins> assert.equal(data.assertions[3].method, 'browser.elements'); </ins> assert.match(data.assertions[3].args[0], /('|")span#dates1/); assert.equal(data.assertions[3].args[1], 1); },


Question:
We want to localize the Ask-To-Help template that pre-fills the post on the forum. ! The above button which takes you to the forum should render this template: ! In the localized version instead.
Should be able to tackle this today, I think.
Sure. Not a high priority, so take your time.

"set-certs-public": "Set your certification settings to public", "set-profile-public": "Set your profile settings to public", "set-claim": "Claim and view your certification" <ins> }, "forum-help": { "browser-info": "**Your browser information:**", "user-agent": "User Agent is: <code>{{userAgent}}</code>", "challenge": "**Challenge:** {{challengeTitle}}", "challenge-link": "**Link to the challenge:**", "whats-happening": "**Tell us what's happening:**", "describe": "Describe your issue in detail here.", "camper-project": "**Your project link(s)**", "camper-code": "**Your code so far**", "warning": "WARNING", "too-long-one": "The challenge seed code and/or your solution exceeded the maximum length we can port over from the challenge.", "too-long-two": "You will need to take an additional step here so the code you wrote presents in an easy to read format.", "too-long-three": "Please copy/paste all the editor code showing in the challenge from where you just linked.", "add-code-one": "Replace these two sentences with your copied code.", "add-code-two": "Please leave the ``` line above and the ``` line below,", "add-code-three": "because they allow your code to properly format in the post." </ins> } }

import { tap, mapTo } from 'rxjs/operators'; import { transformEditorLink } from '../utils'; import envData from '../../../../../config/env.json'; <ins> import i18next from 'i18next'; </ins> const { forumLocation } = envData;

projectFormValuesSelector(state) ); const endingText = dedent( <del> `**Your browser information:** User Agent is: <code>${userAgent}</code>. **Challenge:** ${challengeTitle} **Link to the challenge:** ${href}` </del> <ins> `${i18next.t('forum-help.browser-info')}nn${i18next.t( 'forum-help.user-agent', { userAgent } )}nn${i18next.t( 'forum-help.challenge' )} ${challengeTitle}nn${i18next.t( 'forum-help.challenge-link' )}n${href}` </ins> ); <del> let textMessage = dedent( `**Tell us what's happening:** Describe your issue in detail here. </del> <ins> let textMessage = dedent(`${i18next.t( 'forum-help.whats-happening' )}n${i18next.t('forum-help.describe')}nn </ins> ${ projectFormValues.length <del> ? `**Your project link(s)**n` : `**Your code so far**` </del> <ins> ? `${i18next.t('forum-help.camper-project')}n` : i18next.t('forum-help.camper-code') </ins> } ${ projectFormValues ?.map(([key, val]) => `${key}: ${transformEditorLink(val)}n`) ?.join('') || filesToMarkdown(files) <del> } ${endingText}` ); </del> <ins> }nn ${endingText}`); </ins> const altTextMessage = dedent( <del> `**Tell us what's happening:** **Your code so far** WARNING The challenge seed code and/or your solution exceeded the maximum length we can port over from the challenge. You will need to take an additional step here so the code you wrote presents in an easy to read format. Please copy/paste all the editor code showing in the challenge from where you just linked. ``` Replace these two sentences with your copied code. Please leave the ``` line above and the ``` line below, because they allow your code to properly format in the post. ```n${endingText}` </del> <ins> `${i18next.t('forum-help.whats-happening')}nnnn${i18next.t( 'forum-help.camper-code' )}nn${i18next.t('forum-help.warning')}nn${i18next.t( 'forum-help.too-long-one' )}nn${i18next.t('forum-help.too-long-two')}nn${i18next.t( 'forum-help.too-long-three' )}nn```n${i18next.t('forum-help.add-code-one')}n${i18next.t( 'forum-help.add-code-two' )}n${i18next.t('forum-help.add-code-three')}nn```n${endingText}` </ins> ); const category = window.encodeURIComponent(helpCategory || 'Help');


Question:
In this table, the left column represents the same duration as in the right column, but in seconds. The left middle-left cell should be instead of . <img width="293" alt="2021-05-25 -Learn Rosetta Code Convert seconds to compound duration freeCodeCamp org" src="https://user-"
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 our chat room or the forum 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.


Question:
Description: I use IntelliJ Idea on Windows 10 with WSL2 to run the project locally. The specific problem I ran in to was running tests via the IDE instead of the command line. I had to configure IntelliJ to use the version of Node I have installed in WSL2. This is the error I encountered when trying to run the tests via the IDE: CMD.EXE was started with the above path as the current directory. UNC paths are not supported. Defaulting to Windows directory. 'jest' is not recognized as an internal or external command, operable program or batch file. Recommended fix, suggestions: I think it would be worth while to add a small section to the WSL set up doc () for anyone using IntelliJ products.
I really liked how the Windows and WSL set up guides were easy to read and follow! I think adding this would lower barrier of entry for people who are using or evaluating IntelliJ IDEs. If this change is approved I'd be happy to update this docs :)
Sure, go ahead and add a line to this area:

Essentially, you will edit and store your code on Ubuntu-18.04 with VS Code installed on Windows. <ins> If you use [IntelliJ Idea](https://www.jetbrains.com/idea/), you may need to update your Node interpreter and Npm package manager to what is installed on your WSL distro. You can check these settings by going to Settings > Languages & Frameworks > Node.js and NPM. </ins> ## Installing Docker Desktop **Docker Desktop for Windows** allows you to install and run database and services like MongoDB, NGINX, etc. This is useful to avoid common pitfalls with installing MongoDB or other services directly on Windows or WSL2.


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 Your code Expected behavior Importing must be outside the tag not inside it. This code above will pass the test cases even tho the font isn't applied and imported inside the tag. Screenshots As you can see the lobster font is not applied to the tag but it still passes all the tests. ! This is the right implementation of importing a tag ! System (please complete the following information): Device: Laptop OS: Windows 10 Browser: Chrome Version: 90.0.4430.212 (Official Build) (64-bit) Additional context Add any other context about the problem here.
Thanks for the report the regex for this one is a bit too permissive. It should check that the link is not inside the style tags (without using lookbehinds, because we've broken safari often enough recently)

You should import the `Lobster` font. ```js <del> assert(new RegExp('googleapis', 'gi').test(code)); </del> <ins> assert($('link[href*="googleapis" i]').length); </ins> ``` Your `h2` element should use the font `Lobster`.


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 coding challenge with the problem. Your code Copy and paste the code from the editor that you used in between the back-ticks below: Expected behavior Given that this is the Replit starter project and the GET route has no code, I expected test no. 3 to fail. Screenshots If applicable, add screenshots to help explain your problem. you can drag and drop, png, jpg, gif, etc. in this box. System (please complete the following information): Device: [PC] OS: [Windows 10] Browser: [chrome] Version: Version 91.0.4472.77 (Official Build) (64-bit) Additional context Add any other context about the problem here. I am working through this project and found test 3 passes even before I had written any code. I made a new copy of the Replit starter project and ran the tests to see if I could replicate the issue. Test 3 still passes. The github personal- file shows that it supposedly makes several post requests and a get request, but somehow it passes without GET or POST routes.
It seems asserts are not even run, because promises are not fulfilled. Not sure if this is to be expected, but I'm surprised there isn't timeout like in other tests. I guess internally that doesn't make test not finished, so there's nothing to timeout...? Adding before or each post request in , , , would make it timeout as expected.

# --instructions-- <del> 1.  Add your MongoDB connection string to `.env` without quotes as `DB` </del> <ins> 1.  Add your MongoDB connection string to `.env` without quotes as `DB` </ins> Example: `DB=mongodb://admin:pass@1234.mlab.com:1234/fccpersonallib` 2.  In your `.env` file set `NODE_ENV` to `test`, without quotes 3.  You need to create all routes within `routes/api.js`

let a = $.post(url, { title: 'Faux Book A' }); let b = $.post(url, { title: 'Faux Book B' }); let c = $.post(url, { title: 'Faux Book C' }); <del> Promise.all([a, b, c]).then(async () => { </del> <ins> await Promise.all([a, b, c]).then(async () => { </ins> let data = await $.get(url); assert.isArray(data); assert.isAtLeast(data.length, 3);

```js /** <del> Backend challenges don't need solutions, because they would need to be tested against a full working project. </del> <ins> Backend challenges don't need solutions, because they would need to be tested against a full working project. </ins> Please check our contributing guidelines to learn more. */ ```


Question: The challenge instructions says "Use the <code+=</codeoperator similar to how it is shown in the editor.", but the seed code is empty It should mention the example instead of the editor. This needs the change of one word, as such I am opening this issue to first timers. This is the challenge And its related file Issues are not assigned, the first comprehensive PR is reviewed. If you haven't already done so, read the contributing guidelines at If you need any help feel free to reach on the contributors subforum on the forum, or the contributor chatroom at

# --instructions-- <del> Build `myStr` over several lines by concatenating these two strings: `This is the first sentence. ` and `This is the second sentence.` using the `+=` operator. Use the `+=` operator similar to how it is shown in the editor. Start by assigning the first string to `myStr`, then add on the second string. </del> <ins> Build `myStr` over several lines by concatenating these two strings: `This is the first sentence. ` and `This is the second sentence.` using the `+=` operator. Use the `+=` operator similar to how it is shown in the example. Start by assigning the first string to `myStr`, then add on the second string. </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. --Affected page Expected behavior The following two code snippets are both correct and semantically equivalent js, but one passes all tests and the other does not. Either both should pass or both should fail. Passes: Fails: Declaring multiple comma separated const's fails this test: Your code Copy and paste the code from the editor that you used in between the back-ticks below: System (please complete the following information): Browser: Firefox 90.0b6
The test currently checks for two separate declarations. You can view it here - I think the regex can be updated to fix this.
I can grab this, if no one else is working on it.
Hi any issue with the help wanted or first timers only label is open for contribution. So yeah you can start working on it.

```js const noWhiteSpace = __helpers.removeWhiteSpace(code); assert( <del> /constLOGIN=(['"`])LOGIN1/.test(noWhiteSpace) && /constLOGOUT=(['"`])LOGOUT1/.test(noWhiteSpace) </del> <ins> (/constLOGIN=(['"`])LOGIN1/.test(noWhiteSpace) && /constLOGOUT=(['"`])LOGOUT1/.test(noWhiteSpace)) || /const(LOGIN|LOGOUT)=(['"`])12,(?!1)(LOGIN|LOGOUT)=(['"`])34/.test(noWhiteSpace) </ins> ); ```


Question:
Affected page Your code The callback url is redacted. Expected behavior I expected this code to pass the tests. But it did not. System (please complete the following information): Device: [Laptop] OS: [Ubuntu 20.4] Browser: [Opera] Version: [77] Additional context The third test didn't pass. So, I ran FCC on my local computer and checked the tests on the page. The first regex test is as follows: The regex won't pass if is on a new line because matches all characters except for the new line. When I replaced with the tests passed. So I think we should change this test to the following: My reasoning is that the correctness of a solution should not depend on formatting. Especially when the formatting is not something very abnormal.
Hello there, Thank you, for taking the time to open this. In general, we need to find a better way of testing these challenges without using RegEx, as mentioned in As for this issue, a quick-fix could be as you mentioned, but, I might even just make the test to use the flag: 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
Hello, Can I do this? I understand that I just need to change to this , right? I just didn't get this part: "make the test to use the s flag".
Hey . Thank you, for your interest in contributing. The issue with the current test RegEx is the does not match new lines. In JavaScript RegEx, there is an which allows to match new lines. Hope this clarifies
Yes, thank you I've another question, the only way to try these regex tests is by passing the url with the code as if you were someone trying to do the challenge, or does freeCodeCamp makes specific tests for this? Like tests to try the challenge test or something like that.
Unfortunately, we currently have nothing to help test the backend content - you will need to have the project and code, and build freeCodeCamp locally with the changes to test. Do remember, this section of the curriculum links all the code needed to pass the current tests.
OK, I'll see if a can give it a try, then! Thank you :)
Hey so I tried it out and the test actually passed without needing to modify anything! I made a deploy in Heroku: https://aileen- Based on this for the challenge. I just modified some files in the repo to see that the first tests of the challenge pass (i.e. try the previous heroku url ) Then skipped some steps and go ahead to modify the part of code that alirezaghey said that wasn't passing the tests. I tried with both codes: the one provided by the and the one provided by alirezaghey and it worked just fine. The file with the code that is being tested is right , as you would see is the same code provided in this issue. Here's a screenshot of the results. <img width="858" alt="Screen Shot 2021-06-24 at 7 24 31 PM" src="https://user-"Supposing I didn't miss anything, I would say that maybe it was a different problem that causes the regex to fail. I'll see if I can try it on Opera browser. I have this config: Device: [Laptop] OS: [Mac OS 10.14.6] Browser: [Chrome] Version: [91]
Hi Are you sure you haven't a false positive produced by the ? Neither of the regexes can differentiate between commented and uncommented code.
You're totally right, I completely forgot about that, sorry. I deleted the commented code and now the test is not passing. Tomorrow will be trying the fix both of you suggested. Thank you for your response!

(data) => { assert.match( data, <del> /passport.use.*new GitHubStrategy/gi, </del> <ins> /passport.use.*new GitHubStrategy/gis, </ins> 'Passport should use a new GitHubStrategy' ); assert.match(


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 Your code Copy and paste the code from the editor that you used in between the back-ticks below: Expected behavior Text with the example code is not translatable - which is fine. However, the text lower is translatable and this will create confusion for end users on other languages. Screenshots Untrabslatable example: ! vs. Translatable output of the exmple: ! System (please complete the following information): Device: Laptop OS: Windows 10 Browser: chrome Version: 91.0.4472.77 Additional context Add any other context about the problem here.
I think this is expected behaviour. That is because its and example we would not translate it.
Sure... then the description of the output should not be translated either and right now it is.
I think The description should be translated. Which I understand it currently is. This gives the context of the example that follows. The example text line should NOT be translated because it's a literal output of the code. Which I understand it currently is not. It looks like we would want the current behaviour though I would wait for someone else to confirm.
I was just thinking under translation context: people looking at this page in other languages will see on the page: if you write a text like this (in English): ..... that code produces the output (for example in Romania ): Acesta este ul link către la care poți ajunge. I personally would be confused how English is rendered into Romanian by itself
I believe all the other languages are translating the example and instructions, so you are correct both should be translated.
the example in code can't be translated the example can't be translated, so if the result is translated it will never match in English it says Here's a link to for you to follow. where in Spanish it says Aquí hay un enlace a para que lo sigas. where the second line would be how the code above should appear it is translated in Chinese too, and I think we translated it also in Italian But it stands more correct to be kept in English as actual rapresentation of what the result of the code is
Thanks, that is what my initial thought was like I mentioned. I think we should get this change in all languages and have a check to catch changes as a warning. can you guide us here?
Unfortunately our current workflow doesn't have a quick way to mark a specific string as non-translatable. I could probably put something together, but IMHO it might be worth re-wording the challenge instead.
Hmm, did Crowdin not have a way to manually mark it non-translatable? I might be mistaken though.
We can do that, yes - we would need to revert the translations for the languages which have translated it. However, I believe that hidden state is lost every time the file is re-uploaded.
Hmm, I see. Thanks for clarifying all this. I am glad that I double-checked with you. Do you mind sending a quick support request to Crowdin, seeking advice?
Sure thing - will add that to the list today and CC you :)
Okay I slept on this, and decided to see if there was a way to automate this process. PR coming shortly.
now that this has been merged do we need to do anything over on Crowdin or in our codebase to reset the strings?
Thanks for the reminder I have gone through and cleared the existing translations for this string - it should come down in English for all languages going forward.
Awesome, thanks for taking care of it.

CROWDIN_API_URL: 'https://freecodecamp.crowdin.com/api/v2/' CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_CAMPERBOT_SERVICE_TOKEN }} CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID_CURRICULUM }}  - name: Hide Example Link in Nest an Anchor Element challenge uses: ./tools/crowdin/actions/hide-specific-string with: filename: 'basic-html-and-html5/nest-an-anchor-element-within-a-paragraph.md' string-content: Here's a link to www.freecodecamp.org for you to follow. 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> name: 'Hide Specific String' description: "Updates a specific string to be 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 hide' required: true </ins>

<ins> require('dotenv').config({ path: `${__dirname}/../../.env` }); const { getFiles } = require('../../utils/files'); const { getStrings, changeHiddenStatus } = require('../../utils/strings'); // eslint-disable-next-line import/no-unresolved const core = require('@actions/core'); 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, true); console.log('string hidden!'); }; const projectId = process.env.CROWDIN_PROJECT_ID; hideString(projectId, filename, stringContent); </ins>

addTranslation, deleteTranslation, getLanguageTranslations, <del> deleteLanguageTranslations </del> <ins> deleteLanguageTranslations, changeHiddenStatus </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 --Describe your problem and how to reproduce it: Viewing Documentation in mobile view as shown in bellow image the content is narrower. Need to make the content little more wider for easy readability. This is also true in landscape view lot of empty space left both sides. Add a Link to the page with the problem: Recommended fix, suggestions (how would you update it?): If possible, add a screenshot here (you can drag and drop, png, jpg, gif, etc. in this box): ! !
Thanks for the report I agree that margins are too wide. Would you be interested in creating a PR to fix this?
sure will work on this issue

.universal-nav a.translations-link { visibility: hidden; } <ins> body .content { max-width: 100%; } </ins> } /****** Cover Page ******/

color: var(--text-color-tertiary); } <ins> @media screen and (max-width: 768px) { .markdown-section { max-width: 90%; padding: 40px 15px 40px 15px; } } </ins> /****** CODE HIGHLIGHTING ******/ .token.string { color: #42b983;