Esquema Zod
YAMLResume adopta zod para validar los datos del currículum en tiempo de ejecución.
Este documento describe todos los esquemas zod usados en YAMLResume. Si te interesan los detalles de implementación, puedes encontrar el código fuente aquí.
Esquema Resume
Define la validación de la estructura global del currículum, incluyendo validación de contenido y de layout.
| Prop | Tipo | Requerido |
|---|---|---|
content | ContentSchema | ✅ |
layouts? | LayoutsSchema | ⬜️ |
locale? | LocaleSchema | ⬜️ |
ContentSchema
Define la estructura de validación para todo el contenido del currículum.
| Prop | Tipo | Requerido |
|---|---|---|
basics | BasicsItemSchema | ✅ |
education | EducationItemSchema[] | ✅ |
awards? | AwardItemSchema[] | ⬜️ |
certificates? | CertificateItemSchema[] | ⬜️ |
interests? | InterestItemSchema[] | ⬜️ |
languages? | LanguageItemSchema[] | ⬜️ |
location? | LocationItemSchema | ⬜️ |
projects? | ProjectItemSchema[] | ⬜️ |
profiles? | ProfileItemSchema[] | ⬜️ |
publications? | PublicationItemSchema[] | ⬜️ |
references? | ReferenceItemSchema[] | ⬜️ |
skills? | SkillItemSchema[] | ⬜️ |
volunteer? | VolunteerItemSchema[] | ⬜️ |
work? | WorkItemSchema[] | ⬜️ |
AwardItemSchema
Valida un único premio, honor o reconocimiento recibido.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
awarder | string | ✅ | 2-128 caracteres |
title | string | ✅ | 2-128 caracteres |
date? | string | ⬜️ | ver date schema |
summary? | string | ⬜️ | ver summary schema |
BasicsItemSchema
Valida la información personal y de contacto principal.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
email? | string | ⬜️ | ver email schema |
headline? | string | ⬜️ | 2-128 caracteres |
phone? | string | ⬜️ | ver phone schema |
summary? | string | ⬜️ | ver summary schema |
url? | string | ⬜️ | ver url schema |
CertificateItemSchema
Valida una certificación, credencial o calificación profesional.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
issuer | string | ✅ | 2-128 caracteres |
name | string | ✅ | 2-128 caracteres |
date? | string | ⬜️ | ver date schema |
url? | string | ⬜️ | ver url schema |
EducationItemSchema
Valida una experiencia o programa educativo.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
area | string | ✅ | 2-64 caracteres |
degree | Degree | ✅ | Debe estar en las opciones de degree |
institution | string | ✅ | 2-128 caracteres |
startDate | string | ✅ | ver date schema |
courses? | string[] | ⬜️ | Cada ítem 2-128 caracteres |
endDate? | string | ⬜️ | ver date schema |
summary? | string | ⬜️ | ver summary schema |
score? | string | ⬜️ | 2-32 caracteres |
url? | string | ⬜️ | ver url schema |
InterestItemSchema
Valida un interés, hobby o actividad personal.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
keywords? | string[] | ⬜️ | ver keywords schema |
LanguageItemSchema
Valida un ítem de competencia lingüística.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
fluency | Fluency | ✅ | Debe estar en fluency options |
language | Language | ✅ | Debe estar en language options |
keywords? | string[] | ⬜️ | Cada ítem 1-32 caracteres |
LocationItemSchema
Valida información de localización y dirección.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
city | string | ✅ | 2-128 caracteres |
address? | string | ⬜️ | 2-128 caracteres |
country? | Country | ⬜️ | Debe estar en country options |
postalCode? | string | ⬜️ | 2-128 caracteres |
region? | string | ⬜️ | 2-128 caracteres |
ProfileItemSchema
Valida un perfil online o presencia en redes.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
network | Network | ✅ | Debe estar en network options |
username | string | ✅ | 2-128 caracteres |
url? | string | ⬜️ | URL válida, máximo 256 caracteres |
ProjectItemSchema
Valida un proyecto, pieza de portfolio o trabajo técnico.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
startDate | string | ✅ | ver date schema |
summary | string | ✅ | ver summary schema |
description? | string | ⬜️ | 4-128 caracteres |
endDate? | string | ⬜️ | ver date schema |
keywords? | string[] | ⬜️ | Cada ítem 1-32 caracteres |
url? | string | ⬜️ | URL válida, máximo 256 caracteres |
PublicationItemSchema
Valida una publicación, trabajo de investigación o artículo académico.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
publisher | string | ✅ | 2-128 caracteres |
releaseDate? | string | ⬜️ | ver date schema |
summary? | string | ⬜️ | ver summary schema |
url? | string | ⬜️ | URL válida, máximo 256 caracteres |
ReferenceItemSchema
Valida una referencia profesional o recomendación.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
summary | string | ✅ | ver summary schema |
email? | string | ⬜️ | ver email schema |
phone? | string | ⬜️ | Formato de teléfono válido |
relationship? | string | ⬜️ | 2-128 caracteres |
SkillItemSchema
Valida una habilidad o capacidad técnica.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
level | Level | ✅ | Debe estar en level options |
name | string | ✅ | 2-128 caracteres |
keywords? | string[] | ⬜️ | Cada ítem 1-32 caracteres |
VolunteerItemSchema
Valida una experiencia de voluntariado o servicio comunitario.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
organization | string | ✅ | 2-128 caracteres |
position | string | ✅ | 2-128 caracteres |
startDate | string | ✅ | ver date schema |
summary | string | ✅ | ver summary schema |
endDate? | string | ⬜️ | ver date schema |
url? | string | ⬜️ | URL válida, máximo 256 caracteres |
WorkItemSchema
Valida una experiencia laboral o puesto.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
name | string | ✅ | 2-128 caracteres |
position | string | ✅ | 2-128 caracteres |
startDate | string | ✅ | ver date schema |
summary | string | ✅ | ver summary schema |
endDate? | string | ⬜️ | ver date schema |
keywords? | string[] | ⬜️ | Cada ítem 1-32 caracteres |
url? | string | ⬜️ | URL válida, máximo 256 caracteres |
LocaleSchema
Valida la configuración regional para internacionalización y localización.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
language? | LocaleLanguage | ⬜️ | Debe estar en opciones de idioma local |
LayoutsSchema
Define la configuración general de validación del layout.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
layouts[] | HtmlLayoutSchema | LatexLayoutSchema | MarkdownLayoutSchema | ⬜️ | Array de configuraciones layout |
Esquemas de Layout Comunes
MarginsSchema
Valida los márgenes de página.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
top? | string | ⬜️ | ver margin size schema |
bottom? | string | ⬜️ | ver margin size schema |
left? | string | ⬜️ | ver margin size schema |
right? | string | ⬜️ | ver margin size schema |
SectionsSchema
Valida la configuración de personalización de secciones.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
aliases? | Record<SectionID, string> | ⬜️ | Claves deben ser IDs de sección válidos, valores strings (2-128 ch) |
order? | OrderableSectionID[] | ⬜️ | Array de IDs de sección ordenables válidos |
HtmlLayoutSchema
Valida la configuración del layout HTML.
| Prop | Tipo | Requerido |
|---|---|---|
engine | 'html' | ✅ |
sections? | SectionsSchema | ⬜️ |
template? | HtmlTemplateSchema | ⬜️ |
typography? | HtmlTypographySchema | ⬜️ |
HtmlTemplateSchema
Valida la configuración de plantilla HTML.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
template | HtmlTemplate | ⬜️ | Debe ser una de las opciones de plantilla |
HtmlTypographySchema
Valida la configuración de tipografía HTML.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
fontSize? | HtmlFontSize | ⬜️ | Debe ser una de las opciones de tamaño de fuente |
LatexLayoutSchema
Valida la configuración del layout LaTeX.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
advanced? | LatexAdvancedSchema | ⬜️ | Ver esquema avanzado |
engine | 'latex' | ✅ | Debe ser "latex" |
page? | LatexPageSchema | ⬜️ | Ver esquema de página |
sections? | SectionsSchema | ⬜️ | Ver esquema de secciones |
template? | LatexTemplate | ⬜️ | Debe estar en opciones de plantilla |
typography? | LatexTypographySchema | ⬜️ | Ver esquema de tipografía |
LatexAdvancedSchema
Valida opciones de configuración avanzada de LaTeX.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
fontspec? | { numbers?: LatexFontspecNumbers } | ⬜️ | Debe estar en opciones de números fontspec |
LatexPageSchema
Valida opciones a nivel de página para la presentación.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
margins? | MarginsSchema | ⬜️ | Ver esquema de márgenes |
showPageNumbers? | boolean | ⬜️ | true/false |
LatexTypographySchema
Valida opciones tipográficas para el formato del documento.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
fontSize? | string | ⬜️ | Debe estar en opciones de tamaño de fuente |
links? | { underline?: boolean } | ⬜️ | true/false |
MarkdownLayoutSchema
Valida la configuración del layout Markdown.
| Prop | Tipo | Requerido | Reglas de validación |
|---|---|---|---|
engine | 'markdown' | ✅ | Debe ser "markdown" |
sections? | SectionsSchema | ⬜️ | Ver esquema de secciones |
Enum Validation Schemas
Country
Tipo unión que incluye todos los posibles países y regiones del mundo.
Reglas de validación:
- Debe ser una de las opciones de país predefinidas
- Ejemplos:
United States,China,United Kingdom,Germany
Degree
Tipo unión que incluye todos los posibles grados académicos.
Reglas de validación:
- Debe ser uno de:
Associate,Bachelor,Diploma,Doctor,High School,Master,Middle School
Fluency
Tipo unión que incluye todos los posibles niveles de competencia lingüística.
Reglas de validación:
- Debe ser uno de:
Elementary ProficiencyFull Professional ProficiencyLimited Working ProficiencyMinimum Professional ProficiencyNative or Bilingual Proficiency
Language
Tipo unión que incluye todos los idiomas soportados.
Reglas de validación:
- Debe ser una de las opciones de idioma predefinidas
- Ejemplos:
English,Chinese,Spanish,French,German
Level
Tipo unión que incluye todos los posibles niveles de dominio de habilidades.
Reglas de validación:
- Debe ser uno de:
Advanced,Beginner,Expert,Intermediate,Master,Novice
Network
Tipo unión que incluye todas las posibles opciones de redes sociales.
Reglas de validación:
- Must be one of the predefined network options
- Examples:
GitHub,LinkedIn,Twitter,Facebook,Instagram
HtmlFontSize
Tipo unión que incluye todas las posibles opciones de tamaño de fuente HTML.
Reglas de validación:
- Debe ser uno de:
10px,11px,12px,13px,14px,15px,16px,17px,18px,19px,20px,21px,22px,23px,24px - El motor HTML soporta tamaños de fuente de 10px a 24px
16pxes el tamaño de fuente por defecto
HtmlTemplate
Tipo unión que incluye todas las posibles opciones de plantilla HTML.
Reglas de validación:
- Debe ser uno de:
calm - Ver también: templates
LatexTemplate
Tipo unión que incluye todas las posibles opciones de plantilla.
Reglas de validación:
- Debe ser uno de:
moderncv-banking,moderncv-casual,moderncv-classic - Ver también: templates
LocaleLanguage
Tipo unión que incluye todos los posibles códigos de lenguaje local.
Reglas de validación:
- Debe ser uno de:
en,es,zh-hans,zh-hant-hk,zh-hant-tw - Ver también: multi-languages
LatexFontspecNumbers
Tipo unión que incluye todas las posibles opciones de números de fontspec de LaTeX.
Reglas de validación:
- Debe ser uno de:
Auto- permite que el estilo se determine automáticamente según elLocaleLanguageseleccionado (por defecto)Lining- cifras lining estándar (por defecto para idiomas CJK)OldStyle- cifras old style con alturas variables (por defecto para idiomas latinos)
LatexFontSize
Tipo unión que incluye todas las posibles opciones de tamaño de fuente.
Reglas de validación:
- Debe ser uno de:
10pt,11pt,12pt 10ptes el tamaño de fuente por defecto
Last updated on