8.6 KiB
Estructura de archivos del currículo
Nuestro contenido instructivo principal se encuentra dentro del directorio convenientemente llamado curriculum. Esta página desglosará cómo están organizados estos archivos.
Terminología
Hay algunos términos que utilizamos cuando hablamos del contenido de nuestro currículo.
certification: Cuando se hace referencia a una certificación en este caso, se está hablando del certificado real que los usuarios reclaman. Que es independiente del nombre del súper bloque.superBlock: Un súper bloque es la colección de desafíos del nivel superior. Cada súper bloque corresponde a una certificación en el currículo (p. ej. Diseño Web Responsivo).block: Un bloque es una sección dentro de un súper bloque. Un bloque corresponde a un grupo de desafíos en una certificación determinada (p. ej. HTML básico y HTML5)challenge: Un desafío es una sola lección dentro del currículo (p. ej. Di hola a los elementos HTML)
Árbol de archivos
Usando esos términos, así es como se definiría la estructura de archivos:
curriculum/
├─ _meta/
│ ├─ {block}/
│ │ ├─ meta.json
├─ {language}/
│ ├─ {superBlock}/
│ │ ├─ {block}/
│ │ │ ├─ {challenge}.md
El directorio _meta
El directorio _meta es un directorio especial que contiene archivos .json. Estos archivos corresponden a cada bloque en el currículo y son utilizados para determinar a qué súper bloque pertenece cada bloque y el orden de los desafíos dentro de ese bloque.
Renombrando archivos
Puede haber ocasiones en las que necesites renombrar un certificado, súper bloque, bloque o desafío. Esta sección describirá los pasos necesarios para evitar errores de compilación al hacerlo.
[!ATTENTION] Renombrar archivos dentro de la estructura del currículo puede cambiar a menudo la ruta (o URL) del contenido en la página web principal. Debe hacerse con cuidado, ya que se deben establecer redireccionamientos para cada cambio que se realice.
Renombrando una certificación
Al renombrar una certificación, es probable que desees renombrar el súper bloque asociado junto a ella. Haz lo siguiente para renombrar sólo el certificado:
- Cambia el nombre de la carpeta
curriculum/challenges/_meta/{superBlock}-certificatepor el nuevo nombre. - En el archivo
meta.jsonde esa carpeta, cambia los valores enname,dashedNameychallengeOrderal nuevo nombre de certificado. - En
curriculum/challenges/english/12-certificate, cambia el nombre de la carpeta{superBlock}-certificatey el archivo YAML dentro de ella, por el nuevo nombre. - En el archivo YAML, cambia el
titlepor el nuevo nombre. - Renombra el archivo y la carpeta del paso 3 para el resto de los lenguajes del currículo.
- Actualiza
client/src/redux/index.tspara que utilice eltitlecorrecto. - Como alternativa, actualiza el
certSlugpara el súper bloque en el mismo archivo. Ten en cuenta que renombrar uncertSlugcambiará el URL para las certificaciones y solo debe hacerse con consideración. - Actualiza el
titleenclient/src/resources/cert-and-project-map.tspor el nuevo valor. Ten en cuenta que cambiar eltitleaquí romperá la página del súper bloque asociada a la certificación. Depende del título del súper Bloque para que coincida con el título de la certificación. Es probable que desees renombrar el súper bloque al mismo tiempo. - Si renombraste
certSlugen el paso 7, cámbialo aquí para el "cert" y todos los valores deprojectsanidados. - En
config/certification-settings.js, actualiza el valor decertTypeTitleMapal nuevo nombre. - Si renombraste el
certSlugen el paso 7, actualiza la clave decertSlugTypeMapen el mismo archivo. - Actualiza el nombre del certificado en el arreglo
legacyCertsdentro delclient/src/client-only-routes/show-project-links.tsxsi es necesario. - Actualiza el archivo principal
README.mdal nuevo nombre.
Renombrar un súper bloque
[!NOTE] Cuando renombras un súper bloque, el nuevo nombre de carpeta es usado como la ruta y debe considerarse el nombre "correcto". Todos los demás valores deben actualizarse para reflejar ese cambio.
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:
- Renombrar la carpeta del super bloque en el directorio
curriculum/challenges/english. - Renombra la carpeta súper bloque en todos los otros directorios
curriculum/challenges/{language}. - Para cada bloque dentro del súper bloque, actualice el valor
superBlocken el archivometa.jsona su nombre con guiones. No necesitas renombrar ninguna carpeta aquí. Hazlo cuando renombres un bloque. - Renombra la carpeta súper bloque en
client/src/pages/learn. - Actualiza el archivo
index.mden la carpeta superior, cambiado los valores detitleysuperBlockal nuevo nombre. - Para cada carpeta de bloque dentro de la superior, actualiza el
index.mdpara que utilice el valor desuperBlockcorrecto. - En el archivo
cliente/src/recursos/cert-and-project-map.ts, actualiza la ruta para certificado en la parte superior del archivo y el valortitlepara ese súper bloque. Ten en cuenta que cambiar eltitleaquí interrumpirá la capacidad de ver la certificación real para este súper bloque. Depende del título del súper Bloque para que coincida con el título de la certificación. Es probable que desees renombrar la certificación al mismo tiempo. - Actualiza la clave
superBlockCertTypeMapenconfig/certification-settings.jsal nuevo nombre del súper Bloque. - Actualiza el valor de la ruta en
client/src/assets/icons/index.tsx. - Para cada idioma en
client/i18n/locales, actualiza el archivointro.jsonpara que utilice el nuevodashedName(nombre con guiones) del súper Bloque. En el archivo en inglés, actualiza también eltitle. - Verifique el archivo
config/i18n/all-langs.jspara ver si el súper Bloque está habilitado en las compilaciones de i18n. Actualiza todos los valores donde sea usado. - Actualiza el archivo principal
README.mdal nuevo nombre.
Renombrando un bloque
Cuando renombras un bloque del currículo, tienes que:
- Cambiar el nombre de la carpeta del bloque en el directorio
curriculum/challenges/english/{superBlock}. - Cambiar el nombre de la misma carpeta de bloque en todos los demás directorios de lenguajes para que coincidan. Estos deben ser todos iguales a la estructura en inglés o se producirá un error en la compilación.
- Cambiar el nombre de la carpeta del bloque en el directorio
_meta. - Actualizar las propiedades
nombreydashedName(nombre con guiones) del archivometa.jsonde ese bloque. - Actualizar el
client/utils/help-category-map.jsonpara que utilice el nuevo nombre de bloque como clave. - Actualizar la carpeta del bloque en
client/src/pages/learn/{superBlock}. - En el archivo
index.mdde la carpeta superior, actualizar el valor delblockprematuramente. - En los archivos
client/i18n/locales/{language}/intro.json, actualizar el nombre del bloque al nuevo nombre para todos los idiomas. En el archivointro.jsonen inglés, actualiza también eltitle. - Actualizar el archivo principal
README.mdcon el nuevo nombre.
Renombrando un desafío
Al renombras un solo archivo de desafío, tienes que:
- Cambiar el nombre del archivo del desafío en el directorio
curriculum/challenges/english. - Cambiar el nombre del
titley dedashedName(nombre con guiones) dentro de ese archivo. - Cambiar el nombre del archivo y los
dashedNameen esos archivos para coincidir con todos los demás directorios de idiomas. - Actualizar el nombre del desafío en el archivo
meta.jsoncorrespondiente. 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. - Si el desafío es un proyecto de certificado, actualizar el archivo YAML en
curriculum/english/12-certificates/<superBlock>con el nuevo nombre. - Si el desafío es un proyecto de certificado, actualizar el
titley ellinkenclient/src/resources/cert-and-project-map.ts - Si el desafío es un proyecto de certificado, actualizar el archivo principal
README.mdcon el nuevo nombre.
La propiedad dashedName
The dashedName property is used to generate the URL path for the superblock, block, or challenge. These should generally match what the /utils/slugs.js helper would output for the file name.