chore(i18n,docs): processed translations (#43758)

This commit is contained in:
camperbot
2021-10-07 05:37:51 -07:00
committed by GitHub
parent 25783b7929
commit f069173edb
46 changed files with 372 additions and 257 deletions

View File

@ -15,6 +15,7 @@ There are a few terms we use when discussing our curriculum content.
Using those terms, here is how the file structure would be defined: Using those terms, here is how the file structure would be defined:
<!-- prettier-ignore -->
```md ```md
curriculum/ curriculum/
@ -62,7 +63,7 @@ When renaming a certification, you will likely want to rename the associated sup
Also, you will likely want to rename the certificate and the `{superBlock}-projects` block when you rename a superBlock since they all shares a name. To rename only a superBlock you need to: Also, you will likely want to rename the certificate and the `{superBlock}-projects` block when you rename a superBlock since they all shares a name. To rename only a superBlock you need to:
1. Rename the superBlock folder in the `curriculum/challenges/english` directory. 1. Rename the superBlock folder in the `curriculum/challenges/english` directory.
1. Rename the superBlock folder in *all* other `curriculum/challenges/{language}` directories. 1. Rename the superBlock folder in _all_ other `curriculum/challenges/{language}` directories.
1. For each block within that superBlock, update the `superBlock` value in the `meta.json` file to its dashedName. You don't need to rename any folders here. Do that when renaming a block. 1. For each block within that superBlock, update the `superBlock` value in the `meta.json` file to its dashedName. You don't need to rename any folders here. Do that when renaming a block.
1. Rename the superblock folder in `client/src/pages/learn`. 1. Rename the superblock folder in `client/src/pages/learn`.
1. Update the `index.md` file in the above folder, changing the `title` and `superBlock` values to the new name. 1. Update the `index.md` file in the above folder, changing the `title` and `superBlock` values to the new name.
@ -79,7 +80,7 @@ Also, you will likely want to rename the certificate and the `{superBlock}-proje
When renaming a curriculum block, you need to: When renaming a curriculum block, you need to:
1. Change the name of the block folder in the `curriculum/challenges/english/{superBlock}` directory. 1. Change the name of the block folder in the `curriculum/challenges/english/{superBlock}` directory.
1. Change the name of the same block folder in *all* of the other language directories to match. These must all be the same as the English structure or the build will error out. 1. Change the name of the same block folder in _all_ of the other language directories to match. These must all be the same as the English structure or the build will error out.
1. Change the name of the block folder in the `_meta` directory. 1. Change the name of the block folder in the `_meta` directory.
1. Update the `name` and `dashedName` property for that block's `meta.json` file. 1. Update the `name` and `dashedName` property for that block's `meta.json` file.
1. Update the `client/utils/help-category-map.json` to use the new block name as the key. 1. Update the `client/utils/help-category-map.json` to use the new block name as the key.
@ -94,7 +95,7 @@ When renaming a single challenge file, you need to:
1. Change the name of the challenge file in the `curriculum/challenges/english` directory. 1. Change the name of the challenge file in the `curriculum/challenges/english` directory.
1. Change the name of the `title` and `dashedName` within that file. 1. Change the name of the `title` and `dashedName` within that file.
1. Change the name of the file, and the `dashedName` in those files for *all* of the other language directories to match. 1. Change the name of the file, and the `dashedName` in those files for _all_ of the other language directories to match.
1. Update the name of the challenge in the relevant `meta.json` file. The challenge names here are not used in the build, but provide a user-friendly way to identify the challenge order. 1. Update the name of the challenge in the relevant `meta.json` file. The challenge names here are not used in the build, but provide a user-friendly way to identify the challenge order.
1. If the challenge is a certificate project, update the YAML file in `curriculum/english/12-certificates/<superBlock>` to the new name. 1. If the challenge is a certificate project, update the YAML file in `curriculum/english/12-certificates/<superBlock>` to the new name.
1. If the challenge is a certificate project, update the `title` and `link` in `client/src/resources/cert-and-project-map.ts` 1. If the challenge is a certificate project, update the `title` and `link` in `client/src/resources/cert-and-project-map.ts`

View File

@ -29,7 +29,9 @@ docker stop mailhog
to stop it. to stop it.
When the installation completes, you can start [using MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on macOS</summary> <details><summary>Installing MailHog on macOS</summary>
@ -42,7 +44,9 @@ brew services start mailhog
The above commands will start a mailhog service in the background. The above commands will start a mailhog service in the background.
When the installation completes, you can start [using MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on Windows</summary> <details><summary>Installing MailHog on Windows</summary>
@ -52,7 +56,9 @@ When the download completes, click to open the file. A Windows firewall notifica
Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file. Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.
Start [using MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on Linux</summary> <details><summary>Installing MailHog on Linux</summary>
@ -92,7 +98,9 @@ sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
mailhog mailhog
``` ```
Start [using MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
## Using MailHog ## Using MailHog

View File

@ -8,7 +8,6 @@ The video challenge pages are created by members of the freeCodeCamp team. YouTu
You can help by creating multiple-choice questions related to video sections and adding the questions to the markdown files for the video challenges. You can help by creating multiple-choice questions related to video sections and adding the questions to the markdown files for the video challenges.
## Challenge Template ## Challenge Template
Below is a template of what the challenge markdown files look like. Below is a template of what the challenge markdown files look like.
@ -27,9 +26,7 @@ forumTopicId: 12345
Challenge description text, in markdown Challenge description text, in markdown
```html ```html
<div> <div>example code</div>
example code
</div>
```` ````
# --question-- # --question--
@ -55,7 +52,6 @@ More answers
## --video-solution-- ## --video-solution--
The number for the correct answer goes here. The number for the correct answer goes here.
```` ````
## Creating questions for video challenges ## Creating questions for video challenges
@ -76,6 +72,7 @@ Pick a challenge markdown file from the options above.
First, find the videoId. First, find the videoId.
For example, in the following code from the header of a video challenge markdown file, the videoId is "nVAaxZ34khk". On GitHub, the information should be laid out in a table format. For example, in the following code from the header of a video challenge markdown file, the videoId is "nVAaxZ34khk". On GitHub, the information should be laid out in a table format.
```` ````
--- ---
id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11 id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11
@ -84,7 +81,7 @@ videoId: nVAaxZ34khk
``` ```
Next, access the YouTube video with that `videoId`. The URL for the video will be: Next, access the YouTube video with that `videoId`. The URL for the video will be:
https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets) https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets)
In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk
@ -120,12 +117,14 @@ More answers
1 1
``` ```
Add/Update the question text under the part that shows: Add/Update the question text under the part that shows:
``` ```
# --question-- # --question--
## --text-- ## --text--
``` ```
Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. Make sure to update the number under `## --video-solution--` with the correct answer number. You can add more possible answers using the same format. The question and answers can be surrounded with quotation marks. Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. Make sure to update the number under `## --video-solution--` with the correct answer number. You can add more possible answers using the same format. The question and answers can be surrounded with quotation marks.
### Question examples ### Question examples
@ -134,14 +133,16 @@ Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. M
# --question-- # --question--
## --text-- ## --text--
What does this JavaScript code log to the console? What does this JavaScript code log to the console?
```js ```js
console.log('hello world'); console.log('hello world');
```` ````
## --answers-- ## --answers--
hello *world* hello _world_
--- ---
@ -154,11 +155,11 @@ hello world
--- ---
## --video-solution-- ## --video-solution--
3 3
```` ````
````md ````md
# --question-- # --question--
## --text-- ## --text--

View File

@ -132,37 +132,37 @@ When you are working on features for our upcoming curriculum `next-*` branches,
a. Either delete your local branch after taking a backup (if you still have it locally): a. Either delete your local branch after taking a backup (if you still have it locally):
```console ```console
git checkout <pr-branch-name> git checkout <pr-branch-name>
# example: # example:
# git checkout feat/add-numpy-video-question # git checkout feat/add-numpy-video-question
git checkout -b <backup-branch-name> git checkout -b <backup-branch-name>
# example: # example:
# git checkout -b backup-feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question
git branch -D <pr-branch-name> git branch -D <pr-branch-name>
``` ```
b. Or just a backup of your pr branch (if you do not have it locally): b. Or just a backup of your pr branch (if you do not have it locally):
```console ```console
git checkout -b <backup-branch-name> origin/<pr-branch-name> git checkout -b <backup-branch-name> origin/<pr-branch-name>
# example: # example:
# git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question
``` ```
4. Start off with a clean slate: 3. Start off with a clean slate:
```console ```console
git checkout -b <pr-branch-name> next-python-projects git checkout -b <pr-branch-name> next-python-projects
git cherry-pick <commit-hash> git cherry-pick <commit-hash>
``` ```
5. Resolve any conflicts, and cleanup, install run tests 4. Resolve any conflicts, and cleanup, install run tests
```console ```console
npm run clean npm run clean
@ -176,7 +176,7 @@ When you are working on features for our upcoming curriculum `next-*` branches,
``` ```
6. If everything looks good push back to the PR 5. If everything looks good push back to the PR
```console ```console
git push --force origin <pr-branch-name> git push --force origin <pr-branch-name>

View File

@ -143,7 +143,7 @@ For the video challenges, you need to change a few things. First add the new loc
... ...
``` ```
Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this: Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml ```yml
videoLocaleIds: videoLocaleIds:

View File

@ -287,7 +287,7 @@ Challenges should have the minimum number of tests necessary to verify that a ca
Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point. Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point.
Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_. Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_.
## Formatting seed code ## Formatting seed code

View File

@ -84,6 +84,7 @@ One really neat trick is that you can also create custom one-off templates just
```sh ```sh
npm run zip npm run zip
``` ```
## Other Reference and resources ## Other Reference and resources
### PostCSS Features Used ### PostCSS Features Used

View File

@ -1,6 +1,7 @@
This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension. This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension.
## How the tutorials work ## How the tutorials work
The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`. The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`.
Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`. Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`.
@ -20,11 +21,13 @@ In order to make changes to commits on a version branch, you would need to rebas
## How to contribute ## How to contribute
### Prerequisites ### Prerequisites
Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`. Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`.
There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`. There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`.
### Working on `main` ### Working on `main`
This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file. This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file.
For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below. For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below.
@ -47,12 +50,14 @@ Follow these instructions to make a PR, keeping in mind that instructions usuall
- Make a PR - Make a PR
### Testing changes on `main` ### Testing changes on `main`
If you want to test your changes to `main` after using the above instructions, follow these instructions: If you want to test your changes to `main` after using the above instructions, follow these instructions:
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on the new branch - Start the tutorial using the `tutorial.json` file on the new branch
### Reviewing PR's to `main` ### Reviewing PR's to `main`
If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`. If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`.
The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution. The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution.
@ -60,6 +65,7 @@ The `tutorial.json` file should not have changes to commit hashes, or step/level
Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense. Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense.
### Working on version branch ### Working on version branch
> [!WARNING] > [!WARNING]
> >
> Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one > Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one
@ -86,10 +92,12 @@ Follow these instructions to create a new version:
- Leave it here for reviewers - Leave it here for reviewers
### Testing changes to a version branch ### Testing changes to a version branch
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch - Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch
### Pushing a new version ### Pushing a new version
Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch. Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch.
If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial: If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial:
@ -114,13 +122,17 @@ If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG`
- Finally, if any PRs for this version exists, close them - Finally, if any PRs for this version exists, close them
### How to revert to a previous version ### How to revert to a previous version
- Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X` - Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X`
- Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this: - Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this:
``` ```
fix: typo fix: typo
release: version 1.0.1 release: version 1.0.1
fix: typo fix: typo
release: version 1.0.0 release: version 1.0.0
``` ```
If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after
- Create a PR. Give it a title of `revert: to version X.X.X` - Create a PR. Give it a title of `revert: to version X.X.X`

View File

@ -15,6 +15,7 @@ Hay algunos términos que utilizamos cuando hablamos del contenido de nuestro cu
Usando esos términos, así es como se definiría la estructura de archivos: Usando esos términos, así es como se definiría la estructura de archivos:
<!-- prettier-ignore -->
```md ```md
curriculum/ curriculum/
@ -62,7 +63,7 @@ Al renombrar una certificación, es probable que desees renombrar el súper bloq
Además, es probable que desees renombrar el certificado y el bloque `{superBlock}-projects` cuando renombres un súper bloque, ya que todos comparten un nombre. Para renombrar solamente un súper bloque necesitas: Además, es probable que desees renombrar el certificado y el bloque `{superBlock}-projects` cuando renombres un súper bloque, ya que todos comparten un nombre. Para renombrar solamente un súper bloque necesitas:
1. Renombrar la carpeta del super bloque en el directorio `curriculum/challenges/english`. 1. Renombrar la carpeta del super bloque en el directorio `curriculum/challenges/english`.
1. Renombra la carpeta del súper bloque en *todos* los demás directorios `curriculum/challenges/{language}`. 1. Rename the superBlock folder in _all_ other `curriculum/challenges/{language}` directories.
1. Para cada bloque dentro del súper bloque, actualice el valor `superBlock` en el archivo `meta.json` a su nombre con guiones. No necesitas renombrar ninguna carpeta aquí. Hazlo cuando renombres un bloque. 1. Para cada bloque dentro del súper bloque, actualice el valor `superBlock` en el archivo `meta.json` a su nombre con guiones. No necesitas renombrar ninguna carpeta aquí. Hazlo cuando renombres un bloque.
1. Renombra la carpeta súper bloque en `client/src/pages/learn`. 1. Renombra la carpeta súper bloque en `client/src/pages/learn`.
1. Actualiza el archivo `index.md` en la carpeta superior, cambiado los valores de `title` y `superBlock` al nuevo nombre. 1. Actualiza el archivo `index.md` en la carpeta superior, cambiado los valores de `title` y `superBlock` al nuevo nombre.
@ -79,7 +80,7 @@ Además, es probable que desees renombrar el certificado y el bloque `{superBlo
Cuando renombras un bloque del currículo, tienes que: Cuando renombras un bloque del currículo, tienes que:
1. Cambiar el nombre de la carpeta del bloque en el directorio `curriculum/challenges/english/{superBlock}`. 1. Cambiar el nombre de la carpeta del bloque en el directorio `curriculum/challenges/english/{superBlock}`.
1. Cambiar el nombre de la misma carpeta de bloque en *todos* los directorios de los demás idiomas para que coincidan. Estos deben ser todos iguales a la estructura en inglés o se producirá un error en la compilación. 1. Change the name of the same block folder in _all_ of the other language directories to match. Estos deben ser todos iguales a la estructura en inglés o se producirá un error en la compilación.
1. Cambiar el nombre de la carpeta del bloque en el directorio `_meta`. 1. Cambiar el nombre de la carpeta del bloque en el directorio `_meta`.
1. Actualizar las propiedades `nombre` y `dashedName` (nombre con guiones) del archivo `meta.json` de ese bloque. 1. Actualizar las propiedades `nombre` y `dashedName` (nombre con guiones) del archivo `meta.json` de ese bloque.
1. Actualizar el `client/utils/help-category-map.json` para que utilice el nuevo nombre de bloque como clave. 1. Actualizar el `client/utils/help-category-map.json` para que utilice el nuevo nombre de bloque como clave.
@ -94,7 +95,7 @@ Al renombras un solo archivo de desafío, tienes que:
1. Cambiar el nombre del archivo del desafío en el directorio `curriculum/challenges/english`. 1. Cambiar el nombre del archivo del desafío en el directorio `curriculum/challenges/english`.
1. Cambiar el nombre del `title` y de `dashedName` (nombre con guiones) dentro de ese archivo. 1. Cambiar el nombre del `title` y de `dashedName` (nombre con guiones) dentro de ese archivo.
1. Cambiar el nombre del archivo y el `dashedName` (nombre con guiones) en esos archivos para que *todos* los directorios de los otros idiomas coincidan. 1. Change the name of the file, and the `dashedName` in those files for _all_ of the other language directories to match.
1. Actualizar el nombre del desafío en el archivo `meta.json` correspondiente. Los nombres de los desafíos aquí no se utilizan en la compilación, pero proveen una forma amigable al usuario de identificar el orden de los mismos. 1. Actualizar el nombre del desafío en el archivo `meta.json` correspondiente. Los nombres de los desafíos aquí no se utilizan en la compilación, pero proveen una forma amigable al usuario de identificar el orden de los mismos.
1. Si el desafío es un proyecto de certificado, actualizar el archivo YAML en `curriculum/english/12-certificates/<superBlock>` con el nuevo nombre. 1. Si el desafío es un proyecto de certificado, actualizar el archivo YAML en `curriculum/english/12-certificates/<superBlock>` con el nuevo nombre.
1. Si el desafío es un proyecto de certificado, actualizar el `title` y el `link` en `client/src/resources/cert-and-project-map.ts` 1. Si el desafío es un proyecto de certificado, actualizar el `title` y el `link` en `client/src/resources/cert-and-project-map.ts`

View File

@ -29,54 +29,60 @@ docker stop mailhog
Para frenarlo. Para frenarlo.
Cuando la instalación finalice, puedes comenzar a [usar MailHog](#using-mailhog). </details> Cuando la instalación finalice, puedes comenzar a [usar MailHog](#using-mailhog).
<details><summary>Instalando MailHog en macOS</summary> </details>
Instala Mailhog en MacOS con [Homebrew](https://brew.sh/): <details><summary>Installing MailHog on macOS</summary>
Install MailHog on macOS with [Homebrew](https://brew.sh/):
```bash ```bash
brew install mailhog brew install mailhog
brew services start mailhog brew services start mailhog
``` ```
los comandos anteriores iniciarán un servicio de mailhog en segundo plano. The above commands will start a mailhog service in the background.
cuando termine la instalación, puedes comenzar a [usar Mailhog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
<details><summary>Instalando MailHog en Windows</summary> </details>
Descarga la última versión de MailHog desde [el repositorio oficial de MailHog](https://github.com/mailhog/MailHog/releases). Ubica y presiona el enlace para tu versión de Windows (32 o 64 bits) y se descargará un archivo .exe a tu computadora. <details><summary>Installing MailHog on Windows</summary>
Cuando haya finalizado la descarga, haz clic para abrir el archivo. Una notificación del cortafuegos de Windows podría aparecer, solicitando permiso de acceso para MailHog. Se abrirá una consola de Windows donde MailHog se ejecutará una vez que se le conceda acceso del cortafuegos. Download the latest version of MailHog from [MailHog's official repository](https://github.com/mailhog/MailHog/releases). Locate and click on the link for your Windows version (32 or 64 bit) and a .exe file will be downloaded to your computer.
Detén MailHog cerrando la ventana de la consola. Para iniciar MailHog de nuevo, haz clic en el archivo ejecutable de MailHog (.exe) que se descargó inicialmente, no es necesario descargar un nuevo archivo de instalación de MailHog. When the download completes, click to open the file. A Windows firewall notification may appear, requesting access permission for MailHog. A standard Windows command line prompt will open where MailHog will be running once firewall access is granted.
Comienza a [usar MailHog](#using-mailhog). </details> Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.
<details><summary>Instalando MailHog en Linux</summary> Start [using MailHog](#using-mailhog).
Primero, instala [Go](https://golang.org). </details>
Ejecuta los siguientes comandos para instalar GO en sistemas basados en Debian como Ubuntu y Linux Mint. <details><summary>Installing MailHog on Linux</summary>
First, install [Go](https://golang.org).
Run the following commands to install GO on Debian-based systems like Ubuntu and Linux Mint.
```bash ```bash
sudo apt-get install golang sudo apt-get install golang
``` ```
Ejecuta los siguientes comandos para instalar GO en sistemas basados en RPM como CentOS, Fedora, Red Hat Linux, etc. Run the following commands to install GO on RPM-based systems like CentOS, Fedora, Red Hat Linux, etc.
```bash ```bash
sudo dnf install golang sudo dnf install golang
``` ```
Alternativamente, ejecuta los siguientes comandos para instalar GO. Alternatively, run the following commands to install GO.
```bash ```bash
sudo yum install golang sudo yum install golang
``` ```
Ahora establece la ruta para Go con los siguientes comandos. Now set the path for Go with the following commands.
```bash ```bash
echo "export GOPATH=$HOME/go" >> ~/.profile echo "export GOPATH=$HOME/go" >> ~/.profile
@ -84,7 +90,7 @@ echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
source ~/.profile source ~/.profile
``` ```
Finalmente, introduce los siguientes comandos para instalar y ejecutar MailHog. Finally, enter the commands below to install and run MailHog.
```bash ```bash
go get github.com/mailhog/MailHog go get github.com/mailhog/MailHog
@ -92,23 +98,25 @@ sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
mailhog mailhog
``` ```
Comienza a [usar MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
## Usando MailHog ## Usando MailHog
Abre una nueva pestaña o ventana del navegador y navega a [http://localhost:8025](http://localhost:8025) para abrir tu bandeja de entrada de MailHog cuando se haya completado la instalación de MailHog y se encuentre en ejecución. La bandeja de entrada será similar a la captura de pantalla siguiente. 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.
![Captura de pantalla de MailHog 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg) ![MailHog Screenshot 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg)
Los correos enviados por tu instalación de freeCodeCamp aparecerán de la siguiente manera Emails sent by your freeCodeCamp installation will appear as below
![Captura de pantalla de MailHog 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg) ![MailHog Screenshot 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg)
Dos pestañas que te permiten ver texto plano o contenido fuente estarán disponibles cuando abras un correo electrónico dado. Asegúrate de que la pestaña de texto plano está seleccionada como se muestra a continuación. 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.
![Captura de pantalla de MailHog 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg) ![MailHog Screenshot 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg)
Todos los enlaces en el correo electrónico deben ser cliqueables y enlazar a su URL. All links in the email should be clickable and resolve to their URL.
## Enlaces útiles ## Enlaces útiles

View File

@ -8,7 +8,6 @@ Las páginas de desafío de vídeo son creadas por miembros del equipo freeCodeC
Puedes ayudar creando preguntas de selección múltiple relacionadas con las secciones de video y agregando las preguntas a los archivos markdown para los desafíos de video. Puedes ayudar creando preguntas de selección múltiple relacionadas con las secciones de video y agregando las preguntas a los archivos markdown para los desafíos de video.
## Plantilla de desafío ## Plantilla de desafío
A continuación se muestra una plantilla de cómo se ven los archivos markdown de los desafíos. A continuación se muestra una plantilla de cómo se ven los archivos markdown de los desafíos.
@ -27,9 +26,7 @@ forumTopicId: 12345
Challenge description text, in markdown Challenge description text, in markdown
```html ```html
<div> <div>example code</div>
example code
</div>
```` ````
# --question-- # --question--
@ -55,7 +52,6 @@ Más respuestas
## --video-solution-- ## --video-solution--
El número para la respuesta correcta va aquí. El número para la respuesta correcta va aquí.
```` ````
## Creando preguntas para los desafíos de video ## Creando preguntas para los desafíos de video
@ -76,6 +72,7 @@ Elige un archivo markdown de las opciones anteriores.
Primero, encuentra la videoId (id del vídeo). Primero, encuentra la videoId (id del vídeo).
Por ejemplo, en el siguiente código de la cabecera de un archivo markdown de desafío de video, el videoId es "nVAaxZ34khk". En GitHub, la información debe ser colocada en un formato de tabla. Por ejemplo, en el siguiente código de la cabecera de un archivo markdown de desafío de video, el videoId es "nVAaxZ34khk". En GitHub, la información debe ser colocada en un formato de tabla.
```` ````
--- ---
id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11 id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11
@ -83,12 +80,12 @@ videoId: nVAaxZ34khk
--- ---
``` ```
A continuación, accede al vídeo de YouTube con esa `videoId`. La URL del video será: A continuación, accede al vídeo de YouTube con esa `videoId`. The URL for the video will be:
https://www.youtube. om/watch?v=[videoId] (reemplaza `videoId` en la URL con la ID del video sin los corchetes) https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets)
En el ejemplo anterior, la URL es https://www.youtube.com/watch?v=nVAaxZ34khk In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk
Dale un vistazo al video de YouTube con ese videoId y piensa en una pregunta de selección múltiple basada en el contenido del video. Skim the YouTube video with that videoId and think of a multiple-choice question based on the content of the video.
### Añade la pregunta al archivo markdown ### Añade la pregunta al archivo markdown
@ -120,12 +117,14 @@ More answers
1 1
``` ```
Añade/Actualiza el texto de la pregunta debajo de la parte que muestra: Add/Update the question text under the part that shows:
``` ```
# --question-- # --question--
## --text-- ## --text--
``` ```
Añade/Actualiza las respuestas (`Answer 1`, `Answer 2`, y así) debajo de `## --answers--`. Asegúrate de actualizar el número debajo de ` ## --video-solution-- ` con el número de respuesta correcto. Puede añadir más respuestas posibles usando el mismo formato. La pregunta y las respuestas pueden estar rodeadas de comillas. Añade/Actualiza las respuestas (`Answer 1`, `Answer 2`, y así) debajo de `## --answers--`. Asegúrate de actualizar el número debajo de ` ## --video-solution-- ` con el número de respuesta correcto. Puede añadir más respuestas posibles usando el mismo formato. La pregunta y las respuestas pueden estar rodeadas de comillas.
### Ejemplos de preguntas ### Ejemplos de preguntas
@ -134,14 +133,16 @@ Añade/Actualiza las respuestas (`Answer 1`, `Answer 2`, y así) debajo de `## -
# --question-- # --question--
## --text-- ## --text--
¿Qué imprime este código de JavaScript en la consola?
What does this JavaScript code log to the console?
```js ```js
console.log('hello world'); console.log('hello world');
```` ````
## --answers-- ## --answers--
hola *mundo* hello _world_
--- ---
@ -154,16 +155,16 @@ hola mundo
--- ---
## --video-solution-- ## --video-solution--
3 3
```` ````
````md ````md
# --question-- # --question--
## --text-- ## --text--
¿Qué se imprimirá después de ejecutar este código?: What will print out after running this code:
```py ```py
width = 15 width = 15

View File

@ -132,37 +132,37 @@ Cuando estás trabajando en características para nuestras próximas ramas del p
a. Borra tu rama local después de realizar una copia de seguridad (si todavía la tienes localmente): a. Borra tu rama local después de realizar una copia de seguridad (si todavía la tienes localmente):
```console ```console
git checkout <pr-branch-name> git checkout <pr-branch-name>
# ejemplo: # example:
# git checkout feat/add-numpy-video-question # git checkout feat/add-numpy-video-question
git checkout -b <backup-branch-name> git checkout -b <backup-branch-name>
# ejemplo: # example:
# git checkout -b backup-feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question
git branch -D <pr-branch-name> git branch -D <pr-branch-name>
``` ```
b. O simplemente una copia de seguridad de su rama pr (si no la tiene localmente): b. O simplemente una copia de seguridad de su rama pr (si no la tiene localmente):
```console ```console
git checkout -b <backup-branch-name> origin/<pr-branch-name> git checkout -b <backup-branch-name> origin/<pr-branch-name>
# ejemplo: # example:
# git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question
``` ```
4. Empezar con una pizarra limpia: 3. Empezar con una pizarra limpia:
```console ```console
git checkout -b <pr-branch-name> next-python-projects git checkout -b <pr-branch-name> next-python-projects
git cherry-pick <commit-hash> git cherry-pick <commit-hash>
``` ```
5. Resuelve cualquier conflicto y limpia, instala pruebas de ejecución 4. Resuelve cualquier conflicto y limpia, instala pruebas de ejecución
```console ```console
npm run clean npm run clean
@ -176,7 +176,7 @@ Cuando estás trabajando en características para nuestras próximas ramas del p
``` ```
6. Si todo se ve bien empuje hacia el PR 5. Si todo se ve bien empuje hacia el PR
```console ```console
git push --force origin <pr-branch-name> git push --force origin <pr-branch-name>

View File

@ -143,7 +143,7 @@ For the video challenges, you need to change a few things. First add the new loc
... ...
``` ```
Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this: Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml ```yml
videoLocaleIds: videoLocaleIds:

View File

@ -287,7 +287,7 @@ Challenges should have the minimum number of tests necessary to verify that a ca
Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point. Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point.
Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_. Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_.
## Formatting seed code ## Formatting seed code

View File

@ -84,6 +84,7 @@ Un truco realmente bueno es que también puede crear plantillas personalizadas s
```sh ```sh
npm run zip npm run zip
``` ```
## Otros recursos y referencias ## Otros recursos y referencias
### Funcionalidades utilizadas de PostCSS ### Funcionalidades utilizadas de PostCSS

View File

@ -1,6 +1,7 @@
This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension. This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension.
## How the tutorials work ## How the tutorials work
The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`. The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`.
Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`. Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`.
@ -20,11 +21,13 @@ In order to make changes to commits on a version branch, you would need to rebas
## How to contribute ## How to contribute
### Prerequisites ### Prerequisites
Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`. Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`.
There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`. There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`.
### Working on `main` ### Working on `main`
This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file. This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file.
For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below. For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below.
@ -47,12 +50,14 @@ Follow these instructions to make a PR, keeping in mind that instructions usuall
- Make a PR - Make a PR
### Testing changes on `main` ### Testing changes on `main`
If you want to test your changes to `main` after using the above instructions, follow these instructions: If you want to test your changes to `main` after using the above instructions, follow these instructions:
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on the new branch - Start the tutorial using the `tutorial.json` file on the new branch
### Reviewing PR's to `main` ### Reviewing PR's to `main`
If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`. If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`.
The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution. The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution.
@ -60,6 +65,7 @@ The `tutorial.json` file should not have changes to commit hashes, or step/level
Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense. Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense.
### Working on version branch ### Working on version branch
> [!WARNING] > [!WARNING]
> >
> Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one > Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one
@ -86,10 +92,12 @@ Follow these instructions to create a new version:
- Leave it here for reviewers - Leave it here for reviewers
### Testing changes to a version branch ### Testing changes to a version branch
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch - Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch
### Pushing a new version ### Pushing a new version
Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch. Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch.
If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial: If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial:
@ -114,13 +122,17 @@ If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG`
- Finally, if any PRs for this version exists, close them - Finally, if any PRs for this version exists, close them
### How to revert to a previous version ### How to revert to a previous version
- Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X` - Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X`
- Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this: - Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this:
``` ```
fix: typo fix: typo
release: version 1.0.1 release: version 1.0.1
fix: typo fix: typo
release: version 1.0.0 release: version 1.0.0
``` ```
If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after
- Create a PR. Give it a title of `revert: to version X.X.X` - Create a PR. Give it a title of `revert: to version X.X.X`

View File

@ -15,6 +15,7 @@ Questi sono alcuni termini che usiamo quando discutiamo il contenuto del nostro
Usando quei termini, ecco come la struttura dei file viene definita: Usando quei termini, ecco come la struttura dei file viene definita:
<!-- prettier-ignore -->
```md ```md
curriculum/ curriculum/
@ -62,7 +63,7 @@ Quando rinomini una certificazione, vorrai probabilmente rinominare il superbloc
Inoltre, probabilmente vorrai rinominare il certificato e il blocco `{superBlock}-projects` quando rinomini un superblocco visto che condividono tutti un nome. Per rinominare solo un superblocco devi: Inoltre, probabilmente vorrai rinominare il certificato e il blocco `{superBlock}-projects` quando rinomini un superblocco visto che condividono tutti un nome. Per rinominare solo un superblocco devi:
1. Rinominare la cartella del superblocco nella cartella `curriculum/challenges/english`. 1. Rinominare la cartella del superblocco nella cartella `curriculum/challenges/english`.
1. Rinominare la cartella del superblocco in *tutte* le altre cartelle `curriculum/challenges/{language}`. 1. Rename the superBlock folder in _all_ other `curriculum/challenges/{language}` directories.
1. Per ogni blocco dentro quel superblocco, aggiorna il valore `superBlock` nel file `meta.json` al suo nome a trattini. Non hai bisogno di rinominare alcuna cartella qui. Fallo quando rinomini un blocco. 1. Per ogni blocco dentro quel superblocco, aggiorna il valore `superBlock` nel file `meta.json` al suo nome a trattini. Non hai bisogno di rinominare alcuna cartella qui. Fallo quando rinomini un blocco.
1. Rinomina la cartella del superblocco in `client/src/pages/learn`. 1. Rinomina la cartella del superblocco in `client/src/pages/learn`.
1. Aggiorna il file `index.md` nella cartella qui sopra, cambiando i valori `title` e `superBlock` al nuovo nome. 1. Aggiorna il file `index.md` nella cartella qui sopra, cambiando i valori `title` e `superBlock` al nuovo nome.
@ -79,7 +80,7 @@ Inoltre, probabilmente vorrai rinominare il certificato e il blocco `{superBlock
Quando rinomini un blocco del curriculum, devi: Quando rinomini un blocco del curriculum, devi:
1. Cambiare il nome della cartella nella directory `curriculum/challenges/english/{superBlock}`. 1. Cambiare il nome della cartella nella directory `curriculum/challenges/english/{superBlock}`.
1. Cambiare il nome della cartella dello stesso blocco in *tutte* le directory delle altre lingue. Queste devono tutte essere uguali alla struttura inglese o il build avrà errori. 1. Change the name of the same block folder in _all_ of the other language directories to match. Queste devono tutte essere uguali alla struttura inglese o il build avrà errori.
1. Cambia il nome della cartella del blocco nella directory `_meta`. 1. Cambia il nome della cartella del blocco nella directory `_meta`.
1. Aggiorna le proprietà `name` e `dashedName` per il `meta.json` di quel blocco. 1. Aggiorna le proprietà `name` e `dashedName` per il `meta.json` di quel blocco.
1. Aggiorna `client/utils/help-category-map.json` inmodo che usi il nuovo nome del blocco come chiave. 1. Aggiorna `client/utils/help-category-map.json` inmodo che usi il nuovo nome del blocco come chiave.
@ -94,7 +95,7 @@ Quando rinomini il file di una singola sfida, devi:
1. Cambiare il nome del file della sfida nella directory `curriculum/challenges/english`. 1. Cambiare il nome del file della sfida nella directory `curriculum/challenges/english`.
1. Cambiare i valori di `title` e `dashedName` in quel file. 1. Cambiare i valori di `title` e `dashedName` in quel file.
1. Cambia il nome del file e il valore di `dashedName` in quei file per *tutte* le directory delle altre lingue. 1. Change the name of the file, and the `dashedName` in those files for _all_ of the other language directories to match.
1. Cambiare il nome della sfida nel file `meta.json` rilevante. I nomi delle sfide qui non sono usati nel build, ma forniscono un metodo user-friendly per identificare l'ordine delle sfide. 1. Cambiare il nome della sfida nel file `meta.json` rilevante. I nomi delle sfide qui non sono usati nel build, ma forniscono un metodo user-friendly per identificare l'ordine delle sfide.
1. Se la sfida è un progetto di un certificato, aggiorna il file YAML in `curriculum/english/12-certificates/<superBlock>` con il nuovo nome. 1. Se la sfida è un progetto di un certificato, aggiorna il file YAML in `curriculum/english/12-certificates/<superBlock>` con il nuovo nome.
1. Se la sfida è un progetto di un certificato, aggiorna `title` e `link` in `client/src/resources/cert-and-project-map.ts` 1. Se la sfida è un progetto di un certificato, aggiorna `title` e `link` in `client/src/resources/cert-and-project-map.ts`

View File

@ -29,54 +29,60 @@ docker stop mailhog
per arrestarlo. per arrestarlo.
Quando l'installazione è completa, puoi iniziare a [usare MailHog](#using-mailhog). </details> Quando l'installazione è completa, puoi iniziare a [usare MailHog](#using-mailhog).
<details><summary>Installare MailHog su macOS</summary> </details>
Installa MailHog su macOS con [Homebrew](https://brew.sh/): <details><summary>Installing MailHog on macOS</summary>
Install MailHog on macOS with [Homebrew](https://brew.sh/):
```bash ```bash
brew install mailhog brew install mailhog
brew services start mailhog brew services start mailhog
``` ```
I comandi qui sopra avvieranno un servizio mailhog in background. The above commands will start a mailhog service in the background.
Quando l'installazione sarà completa, potrai iniziare a [usare MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
<details><summary>Installare MailHog su Windows</summary> </details>
Scarica l'ultima versione di MailHog dal [repository ufficiale di MailHog](https://github.com/mailhog/MailHog/releases). Trova e clicca sul link per la tua versione di Windows (32 o 64 bit) e un file .exe sarà scaricato sul tuo computer. <details><summary>Installing MailHog on Windows</summary>
Quando il download è stato completato, clicca per aprire il file. Potrebbe comparire una notifica del firewall di Windows, chiedendo i permessi di accesso per MailHog. Dopo aver consentito l'accesso nel firewall, si aprirà un prompt standard della riga di comando di Windows con MailHog in esecuzione. Download the latest version of MailHog from [MailHog's official repository](https://github.com/mailhog/MailHog/releases). Locate and click on the link for your Windows version (32 or 64 bit) and a .exe file will be downloaded to your computer.
Chiudi MailHog chiudendo la finestra del prompt dei comandi. Per riaprire MailHog, clicka sul file eseguibile (.exe) di MailHog che è stato scaricato all'inizio; non è necessario scaricare un nuovo file di installazione. When the download completes, click to open the file. A Windows firewall notification may appear, requesting access permission for MailHog. A standard Windows command line prompt will open where MailHog will be running once firewall access is granted.
Inizia a [usare MailHog](#using-mailhog). </details> Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.
<details><summary>Installare MailHog su Linux</summary> Start [using MailHog](#using-mailhog).
Come prima cosa, installa [Go](https://golang.org). </details>
Usa i seguenti comandi per installare GO su sistemi basati su Debian come Ubuntu e Linux Mint. <details><summary>Installing MailHog on Linux</summary>
First, install [Go](https://golang.org).
Run the following commands to install GO on Debian-based systems like Ubuntu and Linux Mint.
```bash ```bash
sudo apt-get install golang sudo apt-get install golang
``` ```
Usa i seguenti comandi per installare GO su sistemi basati su RPM come CentOS, Fedora, Red Hat Lnux, ecc. Run the following commands to install GO on RPM-based systems like CentOS, Fedora, Red Hat Linux, etc.
```bash ```bash
sudo dnf install golang sudo dnf install golang
``` ```
In alternativa, esegui i seguenti comandi per installare GO. Alternatively, run the following commands to install GO.
```bash ```bash
sudo yum install golang sudo yum install golang
``` ```
Ora imposta il path per Go con i seguenti comandi. Now set the path for Go with the following commands.
```bash ```bash
echo "export GOPATH=$HOME/go" >> ~/.profile echo "export GOPATH=$HOME/go" >> ~/.profile
@ -84,7 +90,7 @@ echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
source ~/.profile source ~/.profile
``` ```
In fine, esegui i comandi seguenti per installare ed eseguire MailHog. Finally, enter the commands below to install and run MailHog.
```bash ```bash
go get github.com/mailhog/MailHog go get github.com/mailhog/MailHog
@ -92,23 +98,25 @@ sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
mailhog mailhog
``` ```
Inizia a [usare MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
## Usare Mailhog ## Usare Mailhog
Apri una nuova scheda o finestra del browser e vai su [http://localhost:8025](http://localhost:8025) per aprire l'inbox di MailHog dopo che l'installazione è stata completata e MailHog è in esecuzione. L'inbox apparirà come nello screenshot qui sotto. 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.
![MailHog Screenshot 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg) ![MailHog Screenshot 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg)
Le email spedite dalla tua installazione di freeCodeCamp appariranno come segue Emails sent by your freeCodeCamp installation will appear as below
![MailHog Screenshot 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg) ![MailHog Screenshot 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg)
Quando aprirai una mail saranno disponibili due tab che permettono di vedere le mail come solo testo o come contenuto sorgente. Assicurati che la tab solo testo sia selezionata come segue. 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.
![MailHog Screenshot 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg) ![MailHog Screenshot 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg)
Tutti i link delle email dovrebbero essere clickabili e portare al loro URL. All links in the email should be clickable and resolve to their URL.
## Link Utili ## Link Utili

View File

@ -8,7 +8,6 @@ Le pagine della sfida video sono create dai membri del team freeCodeCamp. Anche
Puoi aiutare creando domande a scelta multipla legate a sezioni del video e aggiungendo le domande ai file markdown per le sfide video. Puoi aiutare creando domande a scelta multipla legate a sezioni del video e aggiungendo le domande ai file markdown per le sfide video.
## Template delle sfide ## Template delle sfide
Di seguito è riportato un modello di come appaiono i file markdown delle sfide. Di seguito è riportato un modello di come appaiono i file markdown delle sfide.
@ -27,9 +26,7 @@ forumTopicId: 12345
Challenge description text, in markdown Challenge description text, in markdown
```html ```html
<div> <div>example code</div>
example code
</div>
```` ````
# --question-- # --question--
@ -55,7 +52,6 @@ Altre risposte
## --video-solution-- ## --video-solution--
Il numero della risposta corretta va qui. Il numero della risposta corretta va qui.
```` ````
## Creare domande per le sfide video ## Creare domande per le sfide video
@ -76,6 +72,7 @@ Scegli un file markdown dalle opzioni sopra.
Come prima cosa, trova l'id del video. Come prima cosa, trova l'id del video.
Ad esempio, nel seguente codice preso dall'intestazione di un file di markdown di una sfida video, il videoId è "nVAaxZ34khk". Su GitHub, le informazioni dovrebbero essere visibili in una tabella. Ad esempio, nel seguente codice preso dall'intestazione di un file di markdown di una sfida video, il videoId è "nVAaxZ34khk". Su GitHub, le informazioni dovrebbero essere visibili in una tabella.
```` ````
--- ---
id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11 id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11
@ -83,12 +80,12 @@ videoId: nVAaxZ34khk
--- ---
``` ```
Come cosa successiva, accedi al video YouYube con quel `videoId`. L'URL del video sarà: Come cosa successiva, accedi al video YouYube con quel `videoId`. The URL for the video will be:
https://www.youtube.com/watch?v=[videoId] (sostituisci`videoId` nell'URL con l'ID del video, senza parentesi quadre) https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets)
Nell'esempio precedente, l'URL è https://www.youtube.com/watch?v=nVAaxZ34khk In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk
Consulta velocemente il video YouTube con quel videoId e pensa a una domanda a scelta multipla basata sul contenuto del video. Skim the YouTube video with that videoId and think of a multiple-choice question based on the content of the video.
### Aggiungere la domanda al file markdown ### Aggiungere la domanda al file markdown
@ -120,12 +117,14 @@ More answers
1 1
``` ```
Aggiungi/Cambia il testo della domanda sotto la parte che dice: Add/Update the question text under the part that shows:
``` ```
# --question-- # --question--
## --text-- ## --text--
``` ```
Add/Update answers (`Answer 1`, `Answer 2`, and so on) sotto `## --answers--`. Assicurati di aggiornare il numero sotto `## --video-solution--` con il numero della risposta corretta. Puoi aggiungere altre possibili domande seguendo lo stesso formato. Le domande e le risposte possono essere racchiuse tra virgolette. Add/Update answers (`Answer 1`, `Answer 2`, and so on) sotto `## --answers--`. Assicurati di aggiornare il numero sotto `## --video-solution--` con il numero della risposta corretta. Puoi aggiungere altre possibili domande seguendo lo stesso formato. Le domande e le risposte possono essere racchiuse tra virgolette.
### Esempi di domande ### Esempi di domande
@ -134,14 +133,16 @@ Add/Update answers (`Answer 1`, `Answer 2`, and so on) sotto `## --answers--`. A
# --question-- # --question--
## --text-- ## --text--
Cosa visualizzerà questo codice JavaScript nella console?
What does this JavaScript code log to the console?
```js ```js
console.log('hello world'); console.log('hello world');
```` ````
## --answers-- ## --answers--
hello *world* hello _world_
--- ---
@ -154,16 +155,16 @@ hello world
--- ---
## --video-solution-- ## --video-solution--
3 3
```` ````
````md ````md
# --question-- # --question--
## --text-- ## --text--
Cosa verrà visualizzato dopo l'esecuzione di questo codice: What will print out after running this code:
```py ```py
width = 15 width = 15

View File

@ -132,37 +132,37 @@ Quando stai lavorando su funzionalità dei rami `next-*` del nuovo curriculum, d
a. Elimina anche il ramo locale dopo aver effettuato un backup (se lo hai ancora localmente): a. Elimina anche il ramo locale dopo aver effettuato un backup (se lo hai ancora localmente):
```console ```console
git checkout <pr-branch-name> git checkout <pr-branch-name>
# example: # example:
# git checkout feat/add-numpy-video-question # git checkout feat/add-numpy-video-question
git checkout -b <backup-branch-name> git checkout -b <backup-branch-name>
# example: # example:
# git checkout -b backup-feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question
git branch -D <pr-branch-name> git branch -D <pr-branch-name>
``` ```
b. O solo un backup del ramo pr (se non lo hai localmente): b. O solo un backup del ramo pr (se non lo hai localmente):
```console ```console
git checkout -b <backup-branch-name> origin/<pr-branch-name> git checkout -b <backup-branch-name> origin/<pr-branch-name>
# esempio: # example:
# git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question
``` ```
4. Inizia con una slate pulita: 3. Inizia con una slate pulita:
```console ```console
git checkout -b <pr-branch-name> next-python-projects git checkout -b <pr-branch-name> next-python-projects
git cherry-pick <commit-hash> git cherry-pick <commit-hash>
``` ```
5. Risolvere eventuali conflitti e pulire, installare test di esecuzione 4. Risolvere eventuali conflitti e pulire, installare test di esecuzione
```console ```console
npm run clean npm run clean
@ -176,7 +176,7 @@ Quando stai lavorando su funzionalità dei rami `next-*` del nuovo curriculum, d
``` ```
6. Se tutto sembra funzionare fai un push alla PR 5. Se tutto sembra funzionare fai un push alla PR
```console ```console
git push --force origin <pr-branch-name> git push --force origin <pr-branch-name>

View File

@ -143,7 +143,7 @@ Per le sfide video, devi cambiare alcune cose. Come prima cosa aggiungi la nuova
... ...
``` ```
Quindi aggiungi un id per la nuova lingua ogni sfida video in un blocco verificato (`auditedCerts`). Per esempio, se `auditedCerts` in `all-langs.js` include `scientific-computing-with-python` per `dothraki`, allora devi aggiungere `dothraki` in `videoLocaleIds`. Il frontespizio dovrebbe essere simile a questo: Quindi aggiungi un id per la nuova lingua ogni sfida video in un blocco verificato (`auditedCerts`). Per esempio, se `auditedCerts` in `all-langs.js` include `scientific-computing-with-python` per `dothraki`, allora devi aggiungere `dothraki` in `videoLocaleIds`. Il frontespizio dovrebbe essere simile a questo:
```yml ```yml
videoLocaleIds: videoLocaleIds:

View File

@ -287,7 +287,7 @@ Le sfide dovrebbero avere il numero minimo di test per verificare che un camper
Il nostro obbiettivo è comunicare il singolo punto che la sfida sta cercando di insegnare, e testare che abbiano capito il punto. Il nostro obbiettivo è comunicare il singolo punto che la sfida sta cercando di insegnare, e testare che abbiano capito il punto.
I test delle sfide possono fare uso delle librerie di asserzioni Node.js e Chai.js. E, se necessario, il codice generato dall'utente può essere acceduto dalla variabile `code`. In aggiunta, l'oggetto `__helpers` mette a disposizione diverse funzioni che semplificano il processo di scrittura dei test. Le funzioni disponibili sono definite in _client/src/utils/curriculum-helpers.ts_. I test delle sfide possono fare uso delle librerie di asserzioni Node.js e Chai.js. E, se necessario, il codice generato dall'utente può essere acceduto dalla variabile `code`. In aggiunta, l'oggetto `__helpers` mette a disposizione diverse funzioni che semplificano il processo di scrittura dei test. Le funzioni disponibili sono definite in _client/src/utils/curriculum-helpers.ts_.
## Formattare codice di seed ## Formattare codice di seed

View File

@ -84,6 +84,7 @@ Uno trucco davvero pulito è che è anche possibile creare modelli una tantum pe
```sh ```sh
npm run zip npm run zip
``` ```
## Altri riferimenti e risorse ## Altri riferimenti e risorse
### Funzionalità PostCSS Utilizzate ### Funzionalità PostCSS Utilizzate

View File

@ -1,6 +1,7 @@
This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension. This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension.
## How the tutorials work ## How the tutorials work
The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`. The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`.
Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`. Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`.
@ -20,11 +21,13 @@ In order to make changes to commits on a version branch, you would need to rebas
## How to contribute ## How to contribute
### Prerequisites ### Prerequisites
Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`. Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`.
There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`. There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`.
### Working on `main` ### Working on `main`
This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file. This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file.
For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below. For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below.
@ -47,12 +50,14 @@ Follow these instructions to make a PR, keeping in mind that instructions usuall
- Make a PR - Make a PR
### Testing changes on `main` ### Testing changes on `main`
If you want to test your changes to `main` after using the above instructions, follow these instructions: If you want to test your changes to `main` after using the above instructions, follow these instructions:
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on the new branch - Start the tutorial using the `tutorial.json` file on the new branch
### Reviewing PR's to `main` ### Reviewing PR's to `main`
If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`. If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`.
The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution. The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution.
@ -60,6 +65,7 @@ The `tutorial.json` file should not have changes to commit hashes, or step/level
Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense. Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense.
### Working on version branch ### Working on version branch
> [!WARNING] > [!WARNING]
> >
> Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one > Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one
@ -86,10 +92,12 @@ Follow these instructions to create a new version:
- Leave it here for reviewers - Leave it here for reviewers
### Testing changes to a version branch ### Testing changes to a version branch
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch - Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch
### Pushing a new version ### Pushing a new version
Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch. Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch.
If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial: If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial:
@ -114,13 +122,17 @@ If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG`
- Finally, if any PRs for this version exists, close them - Finally, if any PRs for this version exists, close them
### How to revert to a previous version ### How to revert to a previous version
- Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X` - Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X`
- Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this: - Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this:
``` ```
fix: typo fix: typo
release: version 1.0.1 release: version 1.0.1
fix: typo fix: typo
release: version 1.0.0 release: version 1.0.0
``` ```
If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after
- Create a PR. Give it a title of `revert: to version X.X.X` - Create a PR. Give it a title of `revert: to version X.X.X`

View File

@ -15,6 +15,7 @@ There are a few terms we use when discussing our curriculum content.
Using those terms, here is how the file structure would be defined: Using those terms, here is how the file structure would be defined:
<!-- prettier-ignore -->
```md ```md
curriculum/ curriculum/
@ -62,7 +63,7 @@ When renaming a certification, you will likely want to rename the associated sup
Also, you will likely want to rename the certificate and the `{superBlock}-projects` block when you rename a superBlock since they all shares a name. To rename only a superBlock you need to: Also, you will likely want to rename the certificate and the `{superBlock}-projects` block when you rename a superBlock since they all shares a name. To rename only a superBlock you need to:
1. Rename the superBlock folder in the `curriculum/challenges/english` directory. 1. Rename the superBlock folder in the `curriculum/challenges/english` directory.
1. Rename the superBlock folder in *all* other `curriculum/challenges/{language}` directories. 1. Rename the superBlock folder in _all_ other `curriculum/challenges/{language}` directories.
1. For each block within that superBlock, update the `superBlock` value in the `meta.json` file to its dashedName. You don't need to rename any folders here. Do that when renaming a block. 1. For each block within that superBlock, update the `superBlock` value in the `meta.json` file to its dashedName. You don't need to rename any folders here. Do that when renaming a block.
1. Rename the superblock folder in `client/src/pages/learn`. 1. Rename the superblock folder in `client/src/pages/learn`.
1. Update the `index.md` file in the above folder, changing the `title` and `superBlock` values to the new name. 1. Update the `index.md` file in the above folder, changing the `title` and `superBlock` values to the new name.
@ -79,7 +80,7 @@ Also, you will likely want to rename the certificate and the `{superBlock}-proje
When renaming a curriculum block, you need to: When renaming a curriculum block, you need to:
1. Change the name of the block folder in the `curriculum/challenges/english/{superBlock}` directory. 1. Change the name of the block folder in the `curriculum/challenges/english/{superBlock}` directory.
1. Change the name of the same block folder in *all* of the other language directories to match. These must all be the same as the English structure or the build will error out. 1. Change the name of the same block folder in _all_ of the other language directories to match. These must all be the same as the English structure or the build will error out.
1. Change the name of the block folder in the `_meta` directory. 1. Change the name of the block folder in the `_meta` directory.
1. Update the `name` and `dashedName` property for that block's `meta.json` file. 1. Update the `name` and `dashedName` property for that block's `meta.json` file.
1. Update the `client/utils/help-category-map.json` to use the new block name as the key. 1. Update the `client/utils/help-category-map.json` to use the new block name as the key.
@ -94,7 +95,7 @@ When renaming a single challenge file, you need to:
1. Change the name of the challenge file in the `curriculum/challenges/english` directory. 1. Change the name of the challenge file in the `curriculum/challenges/english` directory.
1. Change the name of the `title` and `dashedName` within that file. 1. Change the name of the `title` and `dashedName` within that file.
1. Change the name of the file, and the `dashedName` in those files for *all* of the other language directories to match. 1. Change the name of the file, and the `dashedName` in those files for _all_ of the other language directories to match.
1. Update the name of the challenge in the relevant `meta.json` file. The challenge names here are not used in the build, but provide a user-friendly way to identify the challenge order. 1. Update the name of the challenge in the relevant `meta.json` file. The challenge names here are not used in the build, but provide a user-friendly way to identify the challenge order.
1. If the challenge is a certificate project, update the YAML file in `curriculum/english/12-certificates/<superBlock>` to the new name. 1. If the challenge is a certificate project, update the YAML file in `curriculum/english/12-certificates/<superBlock>` to the new name.
1. If the challenge is a certificate project, update the `title` and `link` in `client/src/resources/cert-and-project-map.ts` 1. If the challenge is a certificate project, update the `title` and `link` in `client/src/resources/cert-and-project-map.ts`

View File

@ -29,7 +29,9 @@ docker stop mailhog
to stop it. to stop it.
When the installation completes, you can start [using MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on macOS</summary> <details><summary>Installing MailHog on macOS</summary>
@ -42,7 +44,9 @@ brew services start mailhog
The above commands will start a mailhog service in the background. The above commands will start a mailhog service in the background.
When the installation completes, you can start [using MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on Windows</summary> <details><summary>Installing MailHog on Windows</summary>
@ -52,7 +56,9 @@ When the download completes, click to open the file. A Windows firewall notifica
Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file. Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.
Start [using MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
<details><summary>Installing MailHog on Linux</summary> <details><summary>Installing MailHog on Linux</summary>
@ -92,7 +98,9 @@ sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
mailhog mailhog
``` ```
Start [using MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
## Using MailHog ## Using MailHog

View File

@ -8,7 +8,6 @@ The video challenge pages are created by members of the freeCodeCamp team. YouTu
You can help by creating multiple-choice questions related to video sections and adding the questions to the markdown files for the video challenges. You can help by creating multiple-choice questions related to video sections and adding the questions to the markdown files for the video challenges.
## Challenge Template ## Challenge Template
Below is a template of what the challenge markdown files look like. Below is a template of what the challenge markdown files look like.
@ -27,9 +26,7 @@ forumTopicId: 12345
Challenge description text, in markdown Challenge description text, in markdown
```html ```html
<div> <div>example code</div>
example code
</div>
```` ````
# --question-- # --question--
@ -55,7 +52,6 @@ More answers
## --video-solution-- ## --video-solution--
The number for the correct answer goes here. The number for the correct answer goes here.
```` ````
## Creating questions for video challenges ## Creating questions for video challenges
@ -76,6 +72,7 @@ Pick a challenge markdown file from the options above.
First, find the videoId. First, find the videoId.
For example, in the following code from the header of a video challenge markdown file, the videoId is "nVAaxZ34khk". On GitHub, the information should be laid out in a table format. For example, in the following code from the header of a video challenge markdown file, the videoId is "nVAaxZ34khk". On GitHub, the information should be laid out in a table format.
```` ````
--- ---
id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11 id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11
@ -84,7 +81,7 @@ videoId: nVAaxZ34khk
``` ```
Next, access the YouTube video with that `videoId`. The URL for the video will be: Next, access the YouTube video with that `videoId`. The URL for the video will be:
https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets) https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets)
In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk
@ -120,12 +117,14 @@ More answers
1 1
``` ```
Add/Update the question text under the part that shows: Add/Update the question text under the part that shows:
``` ```
# --question-- # --question--
## --text-- ## --text--
``` ```
Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. Make sure to update the number under `## --video-solution--` with the correct answer number. You can add more possible answers using the same format. The question and answers can be surrounded with quotation marks. Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. Make sure to update the number under `## --video-solution--` with the correct answer number. You can add more possible answers using the same format. The question and answers can be surrounded with quotation marks.
### Question examples ### Question examples
@ -134,14 +133,16 @@ Add/Update answers (`Answer 1`, `Answer 2`, and so on) under `## --answers--`. M
# --question-- # --question--
## --text-- ## --text--
What does this JavaScript code log to the console? What does this JavaScript code log to the console?
```js ```js
console.log('hello world'); console.log('hello world');
```` ````
## --answers-- ## --answers--
hello *world* hello _world_
--- ---
@ -154,11 +155,11 @@ hello world
--- ---
## --video-solution-- ## --video-solution--
3 3
```` ````
````md ````md
# --question-- # --question--
## --text-- ## --text--

View File

@ -132,37 +132,37 @@ When you are working on features for our upcoming curriculum `next-*` branches,
a. Either delete your local branch after taking a backup (if you still have it locally): a. Either delete your local branch after taking a backup (if you still have it locally):
```console ```console
git checkout <pr-branch-name> git checkout <pr-branch-name>
# example: # example:
# git checkout feat/add-numpy-video-question # git checkout feat/add-numpy-video-question
git checkout -b <backup-branch-name> git checkout -b <backup-branch-name>
# example: # example:
# git checkout -b backup-feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question
git branch -D <pr-branch-name> git branch -D <pr-branch-name>
``` ```
b. Or just a backup of your pr branch (if you do not have it locally): b. Or just a backup of your pr branch (if you do not have it locally):
```console ```console
git checkout -b <backup-branch-name> origin/<pr-branch-name> git checkout -b <backup-branch-name> origin/<pr-branch-name>
# example: # example:
# git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question
``` ```
4. Start off with a clean slate: 3. Start off with a clean slate:
```console ```console
git checkout -b <pr-branch-name> next-python-projects git checkout -b <pr-branch-name> next-python-projects
git cherry-pick <commit-hash> git cherry-pick <commit-hash>
``` ```
5. Resolve any conflicts, and cleanup, install run tests 4. Resolve any conflicts, and cleanup, install run tests
```console ```console
npm run clean npm run clean
@ -176,7 +176,7 @@ When you are working on features for our upcoming curriculum `next-*` branches,
``` ```
6. If everything looks good push back to the PR 5. If everything looks good push back to the PR
```console ```console
git push --force origin <pr-branch-name> git push --force origin <pr-branch-name>

View File

@ -143,7 +143,7 @@ For the video challenges, you need to change a few things. First add the new loc
... ...
``` ```
Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this: Then add an id for the new language to any video challenge in an audited block. For example, if `auditedCerts` in `all-langs.js` includes `scientific-computing-with-python` for `dothraki`, then you must add a `dothraki` entry in `videoLocaleIds`. The frontmatter should then look like this:
```yml ```yml
videoLocaleIds: videoLocaleIds:

View File

@ -287,7 +287,7 @@ Challenges should have the minimum number of tests necessary to verify that a ca
Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point. Our goal is to communicate the single point that the challenge is trying to teach, and test that they have understood that point.
Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_. Challenge tests can make use of the Node.js and Chai.js assertion libraries. Also, if needed, user-generated code can be accessed in the `code` variable. In addition, the `__helpers` object exposes several functions that simplify the process of writing tests. The available functions are defined in _client/src/utils/curriculum-helpers.ts_.
## Formatting seed code ## Formatting seed code

View File

@ -84,6 +84,7 @@ One really neat trick is that you can also create custom one-off templates just
```sh ```sh
npm run zip npm run zip
``` ```
## Other Reference and resources ## Other Reference and resources
### PostCSS Features Used ### PostCSS Features Used

View File

@ -1,6 +1,7 @@
This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension. This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension.
## How the tutorials work ## How the tutorials work
The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`. The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`.
Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`. Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`.
@ -20,11 +21,13 @@ In order to make changes to commits on a version branch, you would need to rebas
## How to contribute ## How to contribute
### Prerequisites ### Prerequisites
Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`. Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`.
There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`. There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`.
### Working on `main` ### Working on `main`
This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file. This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file.
For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below. For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below.
@ -47,12 +50,14 @@ Follow these instructions to make a PR, keeping in mind that instructions usuall
- Make a PR - Make a PR
### Testing changes on `main` ### Testing changes on `main`
If you want to test your changes to `main` after using the above instructions, follow these instructions: If you want to test your changes to `main` after using the above instructions, follow these instructions:
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on the new branch - Start the tutorial using the `tutorial.json` file on the new branch
### Reviewing PR's to `main` ### Reviewing PR's to `main`
If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`. If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`.
The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution. The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution.
@ -60,6 +65,7 @@ The `tutorial.json` file should not have changes to commit hashes, or step/level
Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense. Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense.
### Working on version branch ### Working on version branch
> [!WARNING] > [!WARNING]
> >
> Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one > Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one
@ -86,10 +92,12 @@ Follow these instructions to create a new version:
- Leave it here for reviewers - Leave it here for reviewers
### Testing changes to a version branch ### Testing changes to a version branch
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch - Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch
### Pushing a new version ### Pushing a new version
Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch. Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch.
If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial: If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial:
@ -114,13 +122,17 @@ If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG`
- Finally, if any PRs for this version exists, close them - Finally, if any PRs for this version exists, close them
### How to revert to a previous version ### How to revert to a previous version
- Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X` - Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X`
- Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this: - Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this:
``` ```
fix: typo fix: typo
release: version 1.0.1 release: version 1.0.1
fix: typo fix: typo
release: version 1.0.0 release: version 1.0.0
``` ```
If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after
- Create a PR. Give it a title of `revert: to version X.X.X` - Create a PR. Give it a title of `revert: to version X.X.X`

View File

@ -13,14 +13,14 @@
- **Contribuição de tradução** - **Contribuição de tradução**
- [Ajude na tradução de recursos](how-to-translate-files.md) - [Ajude na tradução de recursos](how-to-translate-files.md)
- [Ajude na revisão de traduções](how-to-proofread-files.md) - [Ajude na revisão de traduções](how-to-proofread-files.md)
- **Resources** - **Recursos**
- [Configure freeCodeCamp no Windows (WSL)](how-to-setup-wsl.md) - [Configure freeCodeCamp no Windows (WSL)](how-to-setup-wsl.md)
- [Adicione testes no Cypress](how-to-add-cypress-tests.md) - [Adicione testes no Cypress](how-to-add-cypress-tests.md)
- [Ajude na tradução da aplicação web](how-to-work-on-localized-client-webapp.md) - [Ajude na tradução da aplicação web](how-to-work-on-localized-client-webapp.md)
- [Capture e-mails enviados localmente](how-to-catch-outgoing-emails-locally.md) - [Capture e-mails enviados localmente](how-to-catch-outgoing-emails-locally.md)
- [Teste traduções localmente](how-to-test-translations-locally.md) - [Teste traduções localmente](how-to-test-translations-locally.md)
- [Compreenda a estrutura do arquivo do currículo](curriculum-file-structure.md) - [Compreenda a estrutura do arquivo do currículo](curriculum-file-structure.md)
- [Work on tutorials w/ CodeRoad](how-to-work-on-tutorials-that-use-coderoad.md) - [Trabalhe nos tutoriais com o CodeRoad](how-to-work-on-tutorials-that-use-coderoad.md)
--- ---

View File

@ -15,6 +15,7 @@ Existem alguns termos que usamos quando discutimos o conteúdo do nosso currícu
Ao usarmos esses termos, é assim que a estrutura de arquivos deve ser definida: Ao usarmos esses termos, é assim que a estrutura de arquivos deve ser definida:
<!-- prettier-ignore -->
```md ```md
curriculum/ curriculum/
@ -62,7 +63,7 @@ Ao renomear uma certificação, você provavelmente vai querer renomear o superb
Além disso, você provavelmente vai querer renomear o certificado e o bloco `{superBlock}-projects` quando renomear um superbloco, já que todos compartilham um mesmo nome. Faça o seguinte para renomear somente um superbloco: Além disso, você provavelmente vai querer renomear o certificado e o bloco `{superBlock}-projects` quando renomear um superbloco, já que todos compartilham um mesmo nome. Faça o seguinte para renomear somente um superbloco:
1. Renomeie a pasta do superbloco no diretório `curriculum/challenges/english`. 1. Renomeie a pasta do superbloco no diretório `curriculum/challenges/english`.
1. Renomeie a pasta do superbloco em *todos* os outros diretórios `curriculum/challenges/{language}`. 1. Rename the superBlock folder in _all_ other `curriculum/challenges/{language}` directories.
1. Para cada bloco naquele superbloco, atualize o valor de `superBlock` no arquivo `meta.json` até seu dashedName. Você não precisa renomear as pastas aqui. Faça isso ao renomear um bloco. 1. Para cada bloco naquele superbloco, atualize o valor de `superBlock` no arquivo `meta.json` até seu dashedName. Você não precisa renomear as pastas aqui. Faça isso ao renomear um bloco.
1. Renomeie a pasta do superbloco em `client/src/pages/learn`. 1. Renomeie a pasta do superbloco em `client/src/pages/learn`.
1. Atualize o arquivo `index.md` na pasta acima, alterando os valores de `title` e `superBlock` com o novo nome. 1. Atualize o arquivo `index.md` na pasta acima, alterando os valores de `title` e `superBlock` com o novo nome.
@ -79,7 +80,7 @@ Além disso, você provavelmente vai querer renomear o certificado e o bloco `{s
Faça o seguinte para renomear um bloco do currículo: Faça o seguinte para renomear um bloco do currículo:
1. Mude o nome da pasta do bloco no diretório `curriculum/challenges/english/{superBlock}`. 1. Mude o nome da pasta do bloco no diretório `curriculum/challenges/english/{superBlock}`.
1. Mude o nome da mesma pasta do bloco em *todos* os outros diretórios de idioma para que correspondam. Eles devem ter a mesma estrutura que a do inglês ou haverá um erro na build. 1. Change the name of the same block folder in _all_ of the other language directories to match. Eles devem ter a mesma estrutura que a do inglês ou haverá um erro na build.
1. Mude o nome da pasta do bloco no diretório `_meta`. 1. Mude o nome da pasta do bloco no diretório `_meta`.
1. Atualize as propriedades `name` e `dashedName` para aquele arquivo `meta.json` do bloco. 1. Atualize as propriedades `name` e `dashedName` para aquele arquivo `meta.json` do bloco.
1. Atualize `client/utils/help-category-map.json` para que use o novo nome do bloco como chave. 1. Atualize `client/utils/help-category-map.json` para que use o novo nome do bloco como chave.
@ -94,7 +95,7 @@ Faça o seguinte para renomear um único arquivo de desafio:
1. Mude o nome do arquivo do desafio no diretório `curriculum/challenges/english/`. 1. Mude o nome do arquivo do desafio no diretório `curriculum/challenges/english/`.
1. Mude o nome de `title` e de `dashedName` naquele arquivo. 1. Mude o nome de `title` e de `dashedName` naquele arquivo.
1. Mude o nome do arquivo e o `dashedName` naqueles arquivos para *todos* os outros diretórios de idiomas para que correspondam. 1. Change the name of the file, and the `dashedName` in those files for _all_ of the other language directories to match.
1. Atualize o nome do desafio no arquivo `meta.json` relevante. Os nomes dos desafios não são usados na build, mas fornecem uma alternativa mais fácil de identificar a ordem dos desafios. 1. Atualize o nome do desafio no arquivo `meta.json` relevante. Os nomes dos desafios não são usados na build, mas fornecem uma alternativa mais fácil de identificar a ordem dos desafios.
1. Se o desafio for um projeto de certificado, atualize o arquivo YAML em `curriculum/english/12-certificates/<superBlock>` para o novo nome. 1. Se o desafio for um projeto de certificado, atualize o arquivo YAML em `curriculum/english/12-certificates/<superBlock>` para o novo nome.
1. Se o desafio for um projeto de certificação, atualize o `title` e o `link` em `client/src/resources/cert-and-project-map.ts` 1. Se o desafio for um projeto de certificação, atualize o `title` e o `link` em `client/src/resources/cert-and-project-map.ts`

View File

@ -29,54 +29,60 @@ docker stop mailhog
para para-lo. para para-lo.
Quando a instalação for concluída, você pode começar a [usar o MailHog](#using-mailhog). </details> Quando a instalação for concluída, você pode começar a [usar o MailHog](#using-mailhog).
<details><summary>Instalando o MailHog no macOS</summary> </details>
Instale o MailHog no macOS com o [Homebrew](https://brew.sh/): <details><summary>Installing MailHog on macOS</summary>
Install MailHog on macOS with [Homebrew](https://brew.sh/):
```bash ```bash
brew install mailhog brew install mailhog
brew services start mailhog brew services start mailhog
``` ```
Os comandos acima iniciarão um serviço do mailhog em segundo plano. The above commands will start a mailhog service in the background.
Quando a instalação for concluída, você pode começar a [usar o MailHog](#using-mailhog). </details> When the installation completes, you can start [using MailHog](#using-mailhog).
<details><summary>Instalando o MailHog no Windows</summary> </details>
Baixe a versão mais recente do MailHog no [repositório oficial do MailHog](https://github.com/mailhog/MailHog/releases). Localize e clique no link para a sua versão do Windows (32 ou 64 bits) e um arquivo .exe será baixado no seu computador. <details><summary>Installing MailHog on Windows</summary>
Quando o download terminar, clique para abrir o arquivo. Uma notificação de firewall do Windows pode aparecer, solicitando permissão de acesso para MailHog. Um prompt de linha de comando padrão do Windows abrirá onde o MailHog será executado quando o acesso ao firewall for concedido. Download the latest version of MailHog from [MailHog's official repository](https://github.com/mailhog/MailHog/releases). Locate and click on the link for your Windows version (32 or 64 bit) and a .exe file will be downloaded to your computer.
Feche o MailHog fechando a janela do prompt. Para iniciar o MailHog novamente, clique no executável do MailHog (.exe) arquivo que foi baixado inicialmente - não é necessário baixar um novo arquivo de instalação do MailHog. When the download completes, click to open the file. A Windows firewall notification may appear, requesting access permission for MailHog. A standard Windows command line prompt will open where MailHog will be running once firewall access is granted.
Comece a [usar o MailHog](#using-mailhog). </details> Close MailHog by closing the command prompt window. To start MailHog again, click on the MailHog executable (.exe) file that was downloaded initially - it is not necessary to download a new MailHog installation file.
<details><summary>Instalando o MailHog no Linux</summary> Start [using MailHog](#using-mailhog).
Primeiro, instale o [Go](https://golang.org). </details>
Execute os seguintes comandos para instalar GO em sistemas baseados em Debian, como o Ubuntu e o Linux Mint. <details><summary>Installing MailHog on Linux</summary>
First, install [Go](https://golang.org).
Run the following commands to install GO on Debian-based systems like Ubuntu and Linux Mint.
```bash ```bash
sudo apt-get install golang sudo apt-get install golang
``` ```
Execute os seguintes comandos para instalar GO em sistemas baseados em RPM, como CentOS, Fedora, Red Hat Linux, etc. Run the following commands to install GO on RPM-based systems like CentOS, Fedora, Red Hat Linux, etc.
```bash ```bash
sudo dnf install golang sudo dnf install golang
``` ```
Como alternativa, execute os seguintes comandos para instalar o GO. Alternatively, run the following commands to install GO.
```bash ```bash
sudo yum install golang sudo yum install golang
``` ```
Agora defina o caminho para o Go com os seguintes comandos. Now set the path for Go with the following commands.
```bash ```bash
echo "export GOPATH=$HOME/go" >> ~/.profile echo "export GOPATH=$HOME/go" >> ~/.profile
@ -84,7 +90,7 @@ echo 'export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin' >> ~/.profile
source ~/.profile source ~/.profile
``` ```
Finalmente, digite os comandos abaixo para instalar e executar MailHog. Finally, enter the commands below to install and run MailHog.
```bash ```bash
go get github.com/mailhog/MailHog go get github.com/mailhog/MailHog
@ -92,23 +98,25 @@ sudo cp /home/$(whoami)/go/bin/MailHog /usr/local/bin/mailhog
mailhog mailhog
``` ```
Comece a [usar o MailHog](#using-mailhog). </details> Start [using MailHog](#using-mailhog).
</details>
## Usando o MailHog ## Usando o MailHog
Abra uma nova guia ou janela do navegador e navegue até [http://localhost:8025](http://localhost:8025) para abrir sua caixa de entrada do MailHog quando a instalação do MailHog for concluída e o MailHog estiver em execução. A caixa de entrada será similar à imagem abaixo. 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.
![Captura de tela do MailHog 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg) ![MailHog Screenshot 1](https://contribute.freecodecamp.org/images/mailhog/1.jpg)
E-mails enviados pela instalação do seu freeCodeCamp aparecerão assim Emails sent by your freeCodeCamp installation will appear as below
![Captura de tela MailHog 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg) ![MailHog Screenshot 2](https://contribute.freecodecamp.org/images/mailhog/2.jpg)
Duas guias que permitem que você veja texto simples ou conteúdo fonte estarão disponíveis quando você abrir um determinado e-mail. Certifique-se de que a aba de texto simples esteja selecionada como abaixo. 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.
![Captura de tela MailHog 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg) ![MailHog Screenshot 3](https://contribute.freecodecamp.org/images/mailhog/3.jpg)
Todos os links no e-mail devem ser clicáveis e redirecionar para a URL deles. All links in the email should be clickable and resolve to their URL.
## Links úteis ## Links úteis

View File

@ -8,7 +8,6 @@ As páginas de desafio em vídeo são criadas por membros da equipe freeCodeCamp
Você pode ajudar criando questões de múltipla escolha e adicionando-as aos arquivos 'markdown' para os desafios em vídeo. Você pode ajudar criando questões de múltipla escolha e adicionando-as aos arquivos 'markdown' para os desafios em vídeo.
## Modelo de desafio ## Modelo de desafio
Abaixo está um modelo de arquivo markdown do desafio. Abaixo está um modelo de arquivo markdown do desafio.
@ -27,9 +26,7 @@ forumTopicId: 12345
Challenge description text, in markdown Challenge description text, in markdown
```html ```html
<div> <div>example code</div>
example code
</div>
```` ````
# --question-- # --question--
@ -55,7 +52,6 @@ Mais respostas
## --video-solution-- ## --video-solution--
O número da resposta correta fica aqui. O número da resposta correta fica aqui.
```` ````
## Criando perguntas para desafios em video ## Criando perguntas para desafios em video
@ -76,6 +72,7 @@ Escolha um arquivo dentre as opções acima.
Primeiro, localize o videoId. Primeiro, localize o videoId.
Por exemplo, no código a seguir a partir do cabeçalho de um arquivo markdown de desafio de vídeo, o videoId é "nVAaxZ34khk". No GitHub, a informação deve estar contida em formato tabular. Por exemplo, no código a seguir a partir do cabeçalho de um arquivo markdown de desafio de vídeo, o videoId é "nVAaxZ34khk". No GitHub, a informação deve estar contida em formato tabular.
```` ````
--- ---
id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11 id: 5e9a093a74c4063ca6f7c14d title: Data Analysis Example A challengeType: 11
@ -83,12 +80,12 @@ videoId: nVAaxZ34khk
--- ---
``` ```
Em seguida, acesse o vídeo no YouTube correspondente com aquele `videoId`. A URL do vídeo será: Em seguida, acesse o vídeo no YouTube correspondente com aquele `videoId`. The URL for the video will be:
https://www.youtube.com/watch?v=[videoId] (troque `videoId` na URL pelo ID do vídeo - sem colchetes) https://www.youtube.com/watch?v=[videoId] (replace `videoId` in the URL with the video's ID - without square brackets)
No exemplo acima, a URL seria https://www.youtube.com/watch?v=nVAaxZ34khk In the example above, the URL is https://www.youtube.com/watch?v=nVAaxZ34khk
Assista ao vídeo no YouTube daquele videoId e pense em uma questão de múltipla escolha baseada em seu conteúdo. Skim the YouTube video with that videoId and think of a multiple-choice question based on the content of the video.
### Adicione a pergunta ao arquivo markdown ### Adicione a pergunta ao arquivo markdown
@ -120,12 +117,14 @@ Mais respostas
1 1
``` ```
Adicione/atualize o texto da pergunta sob a parte que diz: Add/Update the question text under the part that shows:
``` ```
# --question-- # --question--
## --text-- ## --text--
``` ```
Adicione/Atualize (`Answer 1`, `Answer 2`, e assim por diante) sob `## --answers--`. Confirme se o número sob `## --video-solution--` seja o número da resposta correta. Você pode adicionar mais respostas possíveis usando o mesmo formato. Tanto a pergunta quanto as respostas podem estar entre aspas. Adicione/Atualize (`Answer 1`, `Answer 2`, e assim por diante) sob `## --answers--`. Confirme se o número sob `## --video-solution--` seja o número da resposta correta. Você pode adicionar mais respostas possíveis usando o mesmo formato. Tanto a pergunta quanto as respostas podem estar entre aspas.
### Exemplos de perguntas ### Exemplos de perguntas
@ -134,14 +133,16 @@ Adicione/Atualize (`Answer 1`, `Answer 2`, e assim por diante) sob `## --answers
# --question-- # --question--
## --text-- ## --text--
O que esse código JavaScript mostra no console?
What does this JavaScript code log to the console?
```js ```js
console.log('hello world'); console.log('hello world');
```` ````
## --answers-- ## --answers--
hello *world* hello _world_
--- ---
@ -154,16 +155,16 @@ hello world
--- ---
## --video-solution-- ## --video-solution--
3 3
```` ````
````md ````md
# --question-- # --question--
## --text-- ## --text--
O que aparecerá após executar esse código: What will print out after running this code:
```py ```py
width = 15 width = 15

View File

@ -132,37 +132,37 @@ Quando você estiver trabalhando em funcionalidades para nossas próximas branch
a. Exclua sua branch local depois de ter feito um backup (se você ainda a tem localmente): a. Exclua sua branch local depois de ter feito um backup (se você ainda a tem localmente):
```console ```console
git checkout <pr-branch-name> git checkout <pr-branch-name>
# exemplo: # example:
# git checkout feat/add-numpy-video-question # git checkout feat/add-numpy-video-question
git checkout -b <backup-branch-name> git checkout -b <backup-branch-name>
# exemplo: # example:
# git checkout -b backup-feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question
git branch -D <pr-branch-name> git branch -D <pr-branch-name>
``` ```
b. Ou apenas faça um backup da sua branch pr (se você não a tem localmente): b. Ou apenas faça um backup da sua branch pr (se você não a tem localmente):
```console ```console
git checkout -b <backup-branch-name> origin/<pr-branch-name> git checkout -b <backup-branch-name> origin/<pr-branch-name>
# exemplo: # example:
# git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question # git checkout -b backup-feat/add-numpy-video-question origin/feat/add-numpy-video-question
``` ```
4. Comece do zero: 3. Comece do zero:
```console ```console
git checkout -b <pr-branch-name> next-python-projects git checkout -b <pr-branch-name> next-python-projects
git cherry-pick <commit-hash> git cherry-pick <commit-hash>
``` ```
5. Resolva quaisquer conflitos e limpe, instale testes 4. Resolva quaisquer conflitos e limpe, instale testes
```console ```console
npm run clean npm run clean
@ -176,7 +176,7 @@ Quando você estiver trabalhando em funcionalidades para nossas próximas branch
``` ```
6. Se tudo estiver correto, faça um push ao PR 5. Se tudo estiver correto, faça um push ao PR
```console ```console
git push --force origin <pr-branch-name> git push --force origin <pr-branch-name>

View File

@ -143,7 +143,7 @@ Para os desafios em vídeo, você precisa fazer algumas alterações. Primeiro,
... ...
``` ```
Em seguida, adicione um id para o novo idioma para qualquer desafio em vídeo em um bloco auditado. Por exemplo, se `auditedCerts` em `all-langs.js` inclui `scientific-computing-with-python` para `dothraki`, você deve adicionar uma entrada em `dothraki` em `videoLocaleIds`. O frontmatter dever ter essa aparência: Em seguida, adicione um id para o novo idioma para qualquer desafio em vídeo em um bloco auditado. Por exemplo, se `auditedCerts` em `all-langs.js` inclui `scientific-computing-with-python` para `dothraki`, você deve adicionar uma entrada em `dothraki` em `videoLocaleIds`. O frontmatter dever ter essa aparência:
```yml ```yml
videoLocaleIds: videoLocaleIds:

View File

@ -290,7 +290,7 @@ Desafios devem ter um número mínimo de testes necessários para verificar que
Nossa meta é comunicar o ponto que o desafio está tentando ensinar e testar se eles entenderam esse ponto. Nossa meta é comunicar o ponto que o desafio está tentando ensinar e testar se eles entenderam esse ponto.
Os testes do desafio podem usar bibliotecas Node.js e Chai.js. Se necessário, o código gerado pro usuário pode ser acessado na variável `code` também. Além disso, os objetos `__helpers` expõem várias funções que simplificam o processo de escrita dos testes. As funções disponíveis estão definidas em _client/src/utils/curriculum-helpers.ts_. Os testes do desafio podem usar bibliotecas Node.js e Chai.js. Se necessário, o código gerado pro usuário pode ser acessado na variável `code` também. Além disso, os objetos `__helpers` expõem várias funções que simplificam o processo de escrita dos testes. As funções disponíveis estão definidas em _client/src/utils/curriculum-helpers.ts_.
## Formatação do código seed ## Formatação do código seed

View File

@ -84,6 +84,7 @@ Um truque muito legal é que você também pode criar modelos personalizados ún
```sh ```sh
npm run zip npm run zip
``` ```
## Outras Referências e recursos ## Outras Referências e recursos
### Características do PostCSS utilizadas ### Características do PostCSS utilizadas

View File

@ -1,6 +1,7 @@
This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension. This page describes how to contribute to the freeCodeCamp tutorials and projects that are completed using the CodeRoad VS Code extension.
## How the tutorials work ## How the tutorials work
The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`. The freeCodeCamp tutorials that use CodeRoad each have their own repo under the freeCodeCamp GitHub organization. They all start with `learn-`. For example, `https://github.com/freeCodeCamp/learn-bash-by-building-a-boilerplate/`.
Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`. Each tutorial repo has a `main` branch and a "version" branch, e.g. `v1.0.0`.
@ -20,11 +21,13 @@ In order to make changes to commits on a version branch, you would need to rebas
## How to contribute ## How to contribute
### Prerequisites ### Prerequisites
Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`. Install the [CodeRoad CLI tools](https://www.npmjs.com/package/@coderoad/cli) with `npm install -g @coderoad/cli`.
There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`. There have been some issues with the latest version. If `coderoad --version` doesn't work after installing, downgrade to `0.7.0` with `npm install -g @coderoad/cli@0.7.0`.
### Working on `main` ### Working on `main`
This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file. This set of instructions is for PRs that only make minor changes on `main` to **existing lessons**. That mainly consists of typo, grammar, hint, and instructional changes or fixes in the `TUTORIAL.md` file.
For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below. For everything else, including adding or deleting lessons, follow the [working on a version branch instructions](#working-on-version-branch). You will not need to create a new version branch for this - you can create a PR following the instructions below.
@ -47,12 +50,14 @@ Follow these instructions to make a PR, keeping in mind that instructions usuall
- Make a PR - Make a PR
### Testing changes on `main` ### Testing changes on `main`
If you want to test your changes to `main` after using the above instructions, follow these instructions: If you want to test your changes to `main` after using the above instructions, follow these instructions:
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on the new branch - Start the tutorial using the `tutorial.json` file on the new branch
### Reviewing PR's to `main` ### Reviewing PR's to `main`
If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`. If reviewing a PR that only changes `main` with instructional or grammar issues as described above, the changes in `TUTORIAL.md` should match the changes in `tutorial.json`.
The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution. The `tutorial.json` file should not have changes to commit hashes, or step/level ids. Startup or level commands or file watchers likely should not be changed either. There are exceptions if there's an issue with a step, but they should be treated with more caution.
@ -60,6 +65,7 @@ The `tutorial.json` file should not have changes to commit hashes, or step/level
Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense. Also, keep in mind that instructions usually use the lessons around them for context, so make sure they make sense.
### Working on version branch ### Working on version branch
> [!WARNING] > [!WARNING]
> >
> Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one > Reminder: Never make or push changes to a version branch that is on one of the freeCodeCamp repos. Always create a new one
@ -86,10 +92,12 @@ Follow these instructions to create a new version:
- Leave it here for reviewers - Leave it here for reviewers
### Testing changes to a version branch ### Testing changes to a version branch
- Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container - Follow the instructions on the [rdb-alpha repo](https://github.com/freeCodeCamp/rdb-alpha) to run a container
- Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch - Start the tutorial using the `tutorial.json` file on whatever fork the changes are on. Make sure to use the file on the `feat: version-X.X.Y` branch and not the `main` branch
### Pushing a new version ### Pushing a new version
Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch. Before pushing a new version, view the new `feat/version-vX.X.Y` (will be merged to `main`) branch on the user's fork. Make sure there are additions to the `CHANGELOG.md` file that include the new changes, and the version in the two spots of `coderoad.yaml` matches the new version branch.
If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial: If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG` and `coderoad.yaml` files, have tested the changes using the instructions above, and want to push a new version of a tutorial:
@ -114,13 +122,17 @@ If you have write access to the freeCodeCamp repo, have verified the `CHANGELOG`
- Finally, if any PRs for this version exists, close them - Finally, if any PRs for this version exists, close them
### How to revert to a previous version ### How to revert to a previous version
- Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X` - Create a new branch off the latest `main` with `git checkout -b revert/to-version-X.X.X`
- Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this: - Revert all commits on this branch up to and including the commit of the version after the one you want to revert to. For example, you may have commits that look like this:
``` ```
fix: typo fix: typo
release: version 1.0.1 release: version 1.0.1
fix: typo fix: typo
release: version 1.0.0 release: version 1.0.0
``` ```
If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after If you want to revert to v1.0.0, revert all the commits from `release: version 1.0.1` and after
- Create a PR. Give it a title of `revert: to version X.X.X` - Create a PR. Give it a title of `revert: to version X.X.X`