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}-certificate
por el nuevo nombre. - En el archivo
meta.json
de esa carpeta, cambia los valores enname
,dashedName
ychallengeOrder
al nuevo nombre de certificado. - En
curriculum/challenges/english/12-certificate
, cambia el nombre de la carpeta{superBlock}-certificate
y el archivo YAML dentro de ella, por el nuevo nombre. - En el archivo YAML, cambia el
title
por 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.ts
para que utilice eltitle
correcto. - Como alternativa, actualiza el
certSlug
para el súper bloque en el mismo archivo. Ten en cuenta que renombrar uncertSlug
cambiará el URL para las certificaciones y solo debe hacerse con consideración. - Actualiza el
title
enclient/src/resources/cert-and-project-map.ts
por el nuevo valor. Ten en cuenta que cambiar eltitle
aquí 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
certSlug
en el paso 7, cámbialo aquí para el "cert" y todos los valores deprojects
anidados. - En
config/certification-settings.js
, actualiza el valor decertTypeTitleMap
al nuevo nombre. - Si renombraste el
certSlug
en el paso 7, actualiza la clave decertSlugTypeMap
en el mismo archivo. - Actualiza el nombre del certificado en el arreglo
legacyCerts
dentro delclient/src/client-only-routes/show-project-links.tsx
si es necesario. - Actualiza el archivo principal
README.md
al 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
superBlock
en el archivometa.json
a 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.md
en la carpeta superior, cambiado los valores detitle
ysuperBlock
al nuevo nombre. - Para cada carpeta de bloque dentro de la superior, actualiza el
index.md
para que utilice el valor desuperBlock
correcto. - En el archivo
cliente/src/recursos/cert-and-project-map.ts
, actualiza la ruta para certificado en la parte superior del archivo y el valortitle
para ese súper bloque. Ten en cuenta que cambiar eltitle
aquí 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
superBlockCertTypeMap
enconfig/certification-settings.js
al 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.json
para 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.js
para 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.md
al 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
nombre
ydashedName
(nombre con guiones) del archivometa.json
de ese bloque. - Actualizar el
client/utils/help-category-map.json
para que utilice el nuevo nombre de bloque como clave. - Actualizar la carpeta del bloque en
client/src/pages/learn/{superBlock}
. - En el archivo
index.md
de la carpeta superior, actualizar el valor delblock
prematuramente. - En los archivos
client/i18n/locales/{language}/intro.json
, actualizar el nombre del bloque al nuevo nombre para todos los idiomas. En el archivointro.json
en inglés, actualiza también eltitle
. - Actualizar el archivo principal
README.md
con 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
title
y dedashedName
(nombre con guiones) dentro de ese archivo. - Cambiar el nombre del archivo y los
dashedName
en esos archivos para coincidir con todos los demás directorios de idiomas. - 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. - 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
title
y ellink
enclient/src/resources/cert-and-project-map.ts
- Si el desafío es un proyecto de certificado, actualizar el archivo principal
README.md
con el nuevo nombre.
La propiedad dashedName
La propiedad dashedName
se usa para generar la ruta URL para el súper bloque, el bloque o el desafío. Por lo general, estos deberían coincidir con los nombres que generaría el asistente /utils/slugs.js
para el nombre del archivo.