YAMLResume

Schéma Zod

YAMLResume adopte zod pour valider les données de CV en cours d'exécution.

Ce document présente tous les schémas zod utilisés dans YAMLResume. Si vous êtes intéressé par les détails d'implémentation, vous pouvez trouver le code source ici.

Schéma Resume

Définit la validation de la structure globale du CV, incluant la validation du contenu et de la mise en page.

PropTypeRequis
contentResumeContentSchema
layout?ResumeLayoutSchema

ResumeContentSchema

Définit la structure de validation pour l'ensemble du contenu du CV.

PropTypeRequis
basicsBasicsItemSchema
educationEducationItemSchema[]
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

Valide un prix, honneur ou reconnaissance reçu.

PropTypeRequisRègles de Validation
awarderstring2-128 caractères
titlestring2-128 caractères
date?stringvoir schéma de date
summary?stringvoir schéma de résumé

BasicsItemSchema

Valide les informations personnelles et de contact principales.

PropTypeRequisRègles de Validation
namestring2-128 caractères
email?stringvoir schéma d'email
headline?string2-128 caractères
phone?stringvoir schéma de téléphone
summary?stringvoir schéma de résumé
url?stringvoir schéma d'URL

CertificateItemSchema

Valide une certification, référence ou qualification professionnelle.

PropTypeRequisRègles de Validation
issuerstring2-128 caractères
namestring2-128 caractères
date?stringvoir schéma de date
url?stringvoir schéma d'URL

EducationItemSchema

Valide une seule expérience éducative ou programme de diplôme.

PropTypeRequisRègles de Validation
areastring2-64 caractères
degreeDegreeDoit être parmi les options de diplôme prédéfinies
institutionstring2-128 caractères
startDatestringvoir schéma de date
courses?string[]Chaque élément 2-128 caractères
endDate?stringvoir schéma de date
summary?stringvoir schéma de résumé
score?string2-32 caractères
url?stringvoir schéma d'URL

InterestItemSchema

Valide un seul intérêt, hobby ou activité personnelle.

PropTypeRequisRègles de Validation
namestring2-128 caractères
keywords?string[]voir schéma de mots-clés

LanguageItemSchema

Valide un élément de compétence linguistique.

PropTypeRequisRègles de Validation
fluencyFluencyDoit être parmi les options de maîtrise prédéfinies
languageLanguageDoit être parmi les options de langue prédéfinies
keywords?string[]Chaque élément 1-32 caractères

LocationItemSchema

Valide les informations de localisation et d'adresse.

PropTypeRequisRègles de Validation
citystring2-128 caractères
address?string2-128 caractères
country?CountryDoit être parmi les options de pays prédéfinies
postalCode?string2-128 caractères
region?string2-128 caractères

ProfileItemSchema

Valide un seul profil en ligne ou présence sur les réseaux sociaux.

PropTypeRequisRègles de Validation
networkNetworkDoit être parmi les options de réseau prédéfinies
usernamestring2-128 caractères
url?stringURL valide, max 256 caractères

ProjectItemSchema

Valide un seul projet, élément de portfolio ou travail technique.

PropTypeRequisRègles de Validation
namestring2-128 caractères
startDatestringvoir schéma de date
summarystringvoir schéma de résumé
description?string4-128 caractères
endDate?stringvoir schéma de date
keywords?string[]Chaque élément 1-32 caractères
url?stringURL valide, max 256 caractères

PublicationItemSchema

Valide une seule publication, travail de recherche ou article académique.

PropTypeRequisRègles de Validation
namestring2-128 caractères
publisherstring2-128 caractères
releaseDate?stringvoir schéma de date
summary?stringvoir schéma de résumé
url?stringURL valide, max 256 caractères

ReferenceItemSchema

Valide une seule référence professionnelle ou recommandation.

PropTypeRequisRègles de Validation
namestring2-128 caractères
summarystringvoir schéma de résumé
email?stringvoir schéma d'email
phone?stringFormat de téléphone valide
relationship?string2-128 caractères

SkillItemSchema

Valide une seule compétence, expertise ou capacité technique.

PropTypeRequisRègles de Validation
levelLevelDoit être parmi les options de niveau prédéfinies
namestring2-128 caractères
keywords?string[]Chaque élément 1-32 caractères

VolunteerItemSchema

Valide une seule expérience de bénévolat ou service communautaire.

PropTypeRequisRègles de Validation
organizationstring2-128 caractères
positionstring2-128 caractères
startDatestringvoir schéma de date
summarystringvoir schéma de résumé
endDate?stringvoir schéma de date
url?stringURL valide, max 256 caractères

WorkItemSchema

Valide une seule expérience professionnelle ou poste d'emploi.

PropTypeRequisRègles de Validation
namestring2-128 caractères
positionstring2-128 caractères
startDatestringvoir schéma de date
summarystringvoir schéma de résumé
endDate?stringvoir schéma de date
keywords?string[]Chaque élément 1-32 caractères
url?stringURL valide, max 256 caractères

ResumeLayoutSchema

Définit la configuration de validation de la mise en page globale.

ResumeLayoutLocaleSchema

Valide les paramètres de locale pour l'internationalisation et la localisation.

PropTypeRequisRègles de Validation
language?LocaleLanguageDoit être parmi les options de langue locale prédéfinies

ResumeLayoutMarginsSchema

Valide les paramètres de marges de page pour la mise en page du document.

PropTypeRequisRègles de Validation
top?stringvoir schéma de taille de marge
bottom?stringvoir schéma de taille de marge
left?stringvoir schéma de taille de marge
right?stringvoir schéma de taille de marge

ResumeLayoutPageSchema

Valide les paramètres de niveau page pour la présentation du document.

PropTypeRequisRègles de Validation
showPageNumbers?booleantrue/false

ResumeLayoutTypographySchema

Valide les paramètres de typographie pour le formatage du document.

PropTypeRequisRègles de Validation
fontSize?stringDoit être parmi les options de taille de police prédéfinies

ResumeLayoutLaTeXSchema

Valide les options de configuration spécifiques à LaTeX.

PropTypeRequisRègles de Validation
fontspec?{ numbers?: FontspecNumbers }Doit être parmi les options de nombres fontspec prédéfinies

Schémas de Validation Primitifs

Schéma Email

Valide les adresses email avec des exigences de format strictes.

Règles de Validation :

  • Doit être un format d'email valide
  • Pattern : ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$
  • Exemples : hi@ppresume.com, first.last@company.org, test+tag@domain.co.uk

Schéma Téléphone

Valide les numéros de téléphone avec un support de format flexible.

Règles de Validation :

  • Pattern : ^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$
  • Peut inclure un code pays, des parenthèses, des espaces et des tirets
  • Exemples : 555-123-4567, +44 20 7946 0958, (555) 123-4567

Schéma Résumé

Valide le texte de résumé avec des contraintes de longueur.

Règles de Validation :

  • Doit être entre 16 et 1024 caractères
  • Exemples :
    • "Ingénieur logiciel expérimenté avec 5+ ans de développement full-stack."
    • "Designer créatif passionné par l'expérience utilisateur et les principes de design moderne."
    • "Chef de projet dévoué avec un historique prouvé de livraison de projets complexes dans les temps et le budget."

Schéma URL

Valide les URLs avec des contraintes de longueur.

Règles de Validation :

  • Doit être un format d'URL valide
  • Longueur maximale de 256 caractères
  • Exemples : https://yamlresume.dev, https://ppresume.com, https://github.com/yamlresume/yamlresume

Schéma Mots-clés

Valide les tableaux de mots-clés avec des contraintes d'éléments individuels.

Règles de Validation :

  • Tableau de chaînes
  • Chaque mot-clé doit être entre 1 et 32 caractères
  • Exemples : ["Javascript", "React", "Typescript"], ["Design", "UI", "UX"]

Schéma Date

Valide les chaînes de date avec des exigences de format.

Règles de Validation :

  • Doit être entre 4 et 32 caractères
  • Doit être analysable par Date.parse()
  • Exemples : 2025-01-01, Jul 2025, July 3, 2025, 2025-02-02T00:00:03.123Z

Schéma Taille de Marge

Valide les chaînes de taille de marge avec des exigences d'unité.

Règles de Validation :

  • Doit être entre 2 et 32 caractères
  • Pattern : ^\\d+(\\.\\d+)?(cm|pt|in)$
  • Doit être un nombre positif suivi d'unités valides : cm, pt, ou in
  • Exemples : 2.5cm, 1in, 72pt, 0.5cm, 12pt

Schémas de Validation Enum

Country

Un type union pour tous les pays et régions possibles dans le monde.

Règles de Validation :

  • Doit être l'une des options de pays prédéfinies
  • Exemples : United States, China, United Kingdom, Germany

Degree

Un type union pour tous les diplômes possibles.

Règles de Validation :

  • Doit être l'un de : Associate, Bachelor, Diploma, Doctor, High School, Master, Middle School

Fluency

Un type union pour tous les niveaux de maîtrise linguistique possibles.

Règles de Validation :

  • Doit être l'un de :
    • Elementary Proficiency
    • Full Professional Proficiency
    • Limited Working Proficiency
    • Minimum Professional Proficiency
    • Native or Bilingual Proficiency

Language

Un type union pour toutes les langues supportées.

Règles de Validation :

  • Doit être l'une des options de langue prédéfinies
  • Exemples : English, Chinese, Spanish, French, German

Level

Un type union pour tous les niveaux de compétence possibles.

Règles de Validation :

  • Doit être l'un de : Advanced, Beginner, Expert, Intermediate, Master, Novice

Network

Un type union pour toutes les options de réseau social possibles.

Règles de Validation :

  • Doit être l'une des options de réseau prédéfinies
  • Exemples : GitHub, LinkedIn, Twitter, Facebook, Instagram

Template

Un type union pour toutes les options de modèle possibles.

Règles de Validation :

  • Doit être l'un de : moderncv-banking, moderncv-casual, moderncv-classic
  • Voir aussi : templates

LocaleLanguage

Un type union pour toutes les langues de locale possibles.

Règles de Validation :

  • Doit être l'une de : en, es, zh-hans, zh-hant-hk, zh-hant-tw
  • Voir aussi : multi-languages

FontspecNumbers

Un type union pour toutes les options de nombres fontspec latex possibles.

Règles de Validation :

  • Doit être l'une de :
    • Auto - permettant au style d'être automatiquement déterminé basé sur la LocaleLanguage sélectionnée (par défaut)
    • Lining - chiffres standards de ligne (par défaut pour les langues CJK)
    • OldStyle - anciens chiffres de style avec des hauteurs variables (par défaut pour les langues latines)

FontSize

Un type union pour toutes les options de taille de police possibles.

Règles de Validation :

  • Doit être l'une de : 10pt, 11pt, 12pt
  • 10pt est la taille de police par défaut
Edit on GitHub

Last updated on