YAMLResume

Zod Schema

YAMLResume menggunakan zod untuk memvalidasi data resume pada runtime.

Dokumen ini menguraikan semua schema zod yang digunakan dalam YAMLResume. Jika Anda tertarik dengan detail implementasi, Anda dapat menemukan kode sumbernya di sini.

Resume Schema

Mendefinisikan validasi struktur resume keseluruhan, termasuk validasi konten dan tata letak.

KolomTipeWajib
contentContentSchema
layouts?LayoutsSchema
locale?LocaleSchema

ContentSchema

Mendefinisikan struktur validasi untuk seluruh konten resume.

KolomTipeWajib
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

Memvalidasi satu penghargaan, kehormatan, atau pengakuan yang diterima.

KolomTipeWajibAturan Validasi
awarderstring2-128 karakter
titlestring2-128 karakter
date?stringlihat skema tanggal
summary?stringlihat skema ringkasan

BasicsItemSchema

Memvalidasi informasi inti pribadi dan kontak.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
email?stringlihat skema email
headline?string2-128 karakter
phone?stringlihat skema telepon
summary?stringlihat skema ringkasan
url?stringlihat skema url

CertificateItemSchema

Memvalidasi satu sertifikasi, kredensial, atau kualifikasi profesional.

KolomTipeWajibAturan Validasi
issuerstring2-128 karakter
namestring2-128 karakter
date?stringlihat skema tanggal
url?stringlihat skema url

EducationItemSchema

Memvalidasi satu pengalaman pendidikan atau program gelar.

KolomTipeWajibAturan Validasi
areastring2-64 karakter
degreeDegreeHarus dari opsi gelar yang telah ditentukan
institutionstring2-128 karakter
startDatestringlihat skema tanggal
courses?string[]Setiap item 2-128 karakter
endDate?stringlihat skema tanggal
summary?stringlihat skema ringkasan
score?string2-32 karakter
url?stringlihat skema url

InterestItemSchema

Memvalidasi satu minat, hobi, atau aktivitas pribadi.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
keywords?string[]lihat skema kata kunci

LanguageItemSchema

Memvalidasi satu item kemampuan bahasa.

KolomTipeWajibAturan Validasi
fluencyFluencyHarus dari opsi fluency yang telah ditentukan
languageLanguageHarus dari opsi bahasa yang telah ditentukan
keywords?string[]Setiap item 1-32 karakter

LocationItemSchema

Memvalidasi informasi lokasi dan alamat.

KolomTipeWajibAturan Validasi
citystring2-128 karakter
address?string2-128 karakter
country?CountryHarus dari opsi negara yang telah ditentukan
postalCode?string2-128 karakter
region?string2-128 karakter

ProfileItemSchema

Memvalidasi satu profil online atau kehadiran media sosial.

KolomTipeWajibAturan Validasi
networkNetworkHarus dari opsi jaringan yang telah ditentukan
usernamestring2-128 karakter
url?stringURL valid, maks 256 karakter

ProjectItemSchema

Memvalidasi satu proyek, karya portofolio, atau karya teknis.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
startDatestringlihat skema tanggal
summarystringlihat skema ringkasan
description?string4-128 karakter
endDate?stringlihat skema tanggal
keywords?string[]Setiap item 1-32 karakter
url?stringURL valid, maks 256 karakter

PublicationItemSchema

Memvalidasi satu publikasi, karya penelitian, atau makalah akademik.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
publisherstring2-128 karakter
releaseDate?stringlihat skema tanggal
summary?stringlihat skema ringkasan
url?stringURL valid, maks 256 karakter

ReferenceItemSchema

Memvalidasi satu referensi profesional atau rekomendasi.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
summarystringlihat skema ringkasan
email?stringlihat skema email
phone?stringFormat telepon valid
relationship?string2-128 karakter

SkillItemSchema

Memvalidasi satu keterampilan, kompetensi, atau kemampuan teknis.

KolomTipeWajibAturan Validasi
levelLevelHarus dari opsi level yang telah ditentukan
namestring2-128 karakter
keywords?string[]Setiap item 1-32 karakter

VolunteerItemSchema

Memvalidasi satu pengalaman volunteer atau layanan komunitas.

KolomTipeWajibAturan Validasi
organizationstring2-128 karakter
positionstring2-128 karakter
startDatestringlihat skema tanggal
summarystringlihat skema ringkasan
endDate?stringlihat skema tanggal
url?stringURL valid, maks 256 karakter

WorkItemSchema

Memvalidasi satu pengalaman kerja atau posisi pekerjaan.

KolomTipeWajibAturan Validasi
namestring2-128 karakter
positionstring2-128 karakter
startDatestringlihat skema tanggal
summarystringlihat skema ringkasan
endDate?stringlihat skema tanggal
keywords?string[]Setiap item 1-32 karakter
url?stringURL valid, maks 256 karakter

LocaleSchema

Memvalidasi pengaturan locale untuk internasionalisasi dan lokalisasi.

KolomTipeWajibAturan Validasi
language?LocaleLanguageHarus dari opsi bahasa locale yang telah ditentukan

LayoutsSchema

Mendefinisikan konfigurasi validasi tata letak keseluruhan.

KolomTipeWajibAturan Validasi
layouts[]HtmlLayoutSchema | LatexLayoutSchema | MarkdownLayoutSchemaArray konfigurasi tata letak.

Common Layout Schemas

MarginsSchema

Memvalidasi pengaturan margin halaman untuk tata letak dokumen.

KolomTipeWajibAturan Validasi
top?stringlihat skema ukuran margin
bottom?stringlihat skema ukuran margin
left?stringlihat skema ukuran margin
right?stringlihat skema ukuran margin
SectionsSchema

Memvalidasi pengaturan kustomisasi bagian.

KolomTipeWajibAturan Validasi
aliases?Record<SectionID, string>Key harus ID bagian yang valid, nilai harus string (2-128 karakter)
order?OrderableSectionID[]Array ID bagian yang dapat diurutkan yang valid

HtmlLayoutSchema

Memvalidasi konfigurasi tata letak HTML.

KolomTipeWajib
engine'html'
advanced?HtmlAdvancedSchema
sections?SectionsSchema
template?HtmlTemplateSchema
typography?HtmlTypographySchema
HtmlAdvancedSchema

Memvalidasi opsi konfigurasi HTML lanjutan.

KolomTipeWajibAturan Validasi
showIcons?booleantrue/false
title?string-
footer?string-
description?string-
keywords?string-
HtmlTemplateSchema

Memvalidasi konfigurasi template HTML.

KolomTipeWajibAturan Validasi
templateHtmlTemplateHarus dari opsi template yang telah ditentukan
HtmlTypographySchema

Memvalidasi pengaturan tipografi HTML.

KolomTipeWajibAturan Validasi
fontSize?HtmlFontSizeHarus dari opsi ukuran font yang telah ditentukan
fontFamily?stringDaftar keluarga font yang dipisahkan koma.

LatexLayoutSchema

Memvalidasi konfigurasi tata letak LaTeX.

KolomTipeWajibAturan Validasi
advanced?LatexAdvancedSchemaLihat skema lanjutan
engine'latex'Harus "latex"
page?LatexPageSchemaLihat skema halaman
sections?SectionsSchemaLihat skema bagian
template?LatexTemplateHarus dari opsi template yang telah ditentukan
typography?LatexTypographySchemaLihat skema tipografi
LatexAdvancedSchema

Memvalidasi opsi konfigurasi LaTeX lanjutan.

KolomTipeWajibAturan Validasi
fontspec?{ numbers?: LatexFontspecNumbers }Harus dari opsi nomor fontspec yang telah ditentukan
showIcons?booleantrue/false
LatexPageSchema

Memvalidasi pengaturan tingkat halaman untuk presentasi dokumen.

KolomTipeWajibAturan Validasi
margins?MarginsSchemaLihat skema margins
paperSize?PaperSizeHarus dari opsi ukuran kertas yang telah ditentukan
showPageNumbers?booleantrue/false
LatexTypographySchema

Memvalidasi pengaturan tipografi untuk pemformatan dokumen.

KolomTipeWajibAturan Validasi
fontSize?stringHarus dari opsi ukuran font yang telah ditentukan
fontFamily?stringDaftar keluarga font yang dipisahkan koma.
links?{ underline?: boolean }true/false

MarkdownLayoutSchema

Memvalidasi konfigurasi tata letak Markdown.

KolomTipeWajibAturan Validasi
engine'markdown'Harus "markdown"
sections?SectionsSchemaLihat skema sections

Skema Validasi Primitif

Email Schema

Memvalidasi alamat email dengan persyaratan format yang ketat.

Aturan Validasi:

  • Harus format email yang valid
  • Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$
  • Contoh: hi@ppresume.com, first.last@company.org, test+tag@domain.co.uk

Phone Schema

Memvalidasi nomor telepon dengan dukungan format fleksibel.

Aturan Validasi:

  • Pattern: ^[+]?[(]?[0-9\\s-]{1,15}[)]?[0-9\\s-]{1,15}$
  • Dapat menyertakan kode negara, tanda kurung, spasi, dan tanda hubung
  • Contoh: 555-123-4567, +44 20 7946 0958, (555) 123-4567

Summary Schema

Memvalidasi teks ringkasan dengan batasan panjang.

Aturan Validasi:

  • Harus antara 16 dan 1024 karakter
  • Contoh:
    • "Experienced software engineer with 5+ years in full-stack development."
    • "Creative designer passionate about user experience and modern design principles."
    • "Dedicated project manager with proven track record of delivering complex projects on time and budget."

URL Schema

Memvalidasi URL dengan batasan panjang.

Aturan Validasi:

  • Harus format URL yang valid
  • Panjang maksimum 256 karakter
  • Contoh: https://yamlresume.dev, https://ppresume.com, https://github.com/yamlresume/yamlresume

Keywords Schema

Memvalidasi array kata kunci dengan batasan item individual.

Aturan Validasi:

  • Array dari string
  • Setiap kata kunci harus antara 1 dan 32 karakter
  • Contoh: ["Javascript", "React", "Typescript"], ["Design", "UI", "UX"]

Date Schema

Memvalidasi string tanggal dengan persyaratan format.

Aturan Validasi:

  • Harus antara 4 dan 32 karakter
  • Harus dapat di-parse oleh Date.parse()
  • Contoh: 2025-01-01, Jul 2025, July 3, 2025, 2025-02-02T00:00:03.123Z

Margin Size Schema

Memvalidasi string ukuran margin dengan persyaratan unit.

Aturan Validasi:

  • Harus antara 2 dan 32 karakter
  • Pattern: ^\\d+(\\.\\d+)?(cm|pt|in)$
  • Harus angka positif diikuti unit yang valid: cm, pt, atau in
  • Contoh: 2.5cm, 1in, 72pt, 0.5cm, 12pt

Skema Validasi Enum

Country

Union type untuk semua negara dan wilayah possible di dunia.

Aturan Validasi:

  • Harus salah satu dari opsi negara yang telah ditentukan
  • Contoh: United States, China, United Kingdom, Germany

Degree

Union type untuk semua gelar possible.

Aturan Validasi:

  • Harus salah satu dari: Associate, Bachelor, Diploma, Doctor, High School, Master, Middle School

Fluency

Union type untuk semua level kefasihan bahasa possible.

Aturan Validasi:

  • Harus salah satu dari:
    • Elementary Proficiency
    • Full Professional Proficiency
    • Limited Working Proficiency
    • Minimum Professional Proficiency
    • Native or Bilingual Proficiency

Language

Union type untuk semua bahasa yang didukung.

Aturan Validasi:

  • Harus salah satu dari opsi bahasa yang telah ditentukan
  • Contoh: English, Chinese, Spanish, French, German

Level

Union type untuk semua level keterampilan possible.

Aturan Validasi:

  • Harus salah satu dari: Advanced, Beginner, Expert, Intermediate, Master, Novice

Network

Union type untuk semua opsi jaringan sosial possible.

Aturan Validasi:

  • Harus salah satu dari opsi jaringan yang telah ditentukan
  • Contoh: GitHub, LinkedIn, Twitter, Facebook, Instagram

HtmlFontSize

Union type untuk semua opsi ukuran font HTML possible.

Aturan Validasi:

  • Harus salah satu dari: 10px, 11px, 12px, 13px, 14px, 15px, 16px, 17px, 18px, 19px, 20px, 21px, 22px, 23px, 24px
  • Mesin HTML mendukung ukuran font dari 10px hingga 24px
  • 16px adalah ukuran font default

HtmlTemplate

Union type untuk semua opsi template HTML possible.

Aturan Validasi:

  • Harus salah satu dari: calm
  • Lihat juga: templates

LatexTemplate

Union type untuk semua opsi template LaTeX possible.

Aturan Validasi:

  • Harus salah satu dari: moderncv-banking, moderncv-casual, moderncv-classic
  • Lihat juga: templates

PaperSize

Union type untuk semua opsi ukuran kertas LaTeX possible.

Aturan Validasi:

  • Harus salah satu dari: a4, letter

LatexFontSize

Union type untuk semua opsi ukuran font LaTeX possible.

Aturan Validasi:

  • Harus salah satu dari: 10pt, 11pt, 12pt
  • 10pt adalah ukuran font default

LatexFontspecNumbers

Union type untuk semua opsi nomor fontspec latex possible.

Aturan Validasi:

  • Harus salah satu dari:
    • Auto - memungkinkan gaya ditentukan secara otomatis berdasarkan LocaleLanguage yang dipilih (default)
    • Lining - angka lining standar (default untuk bahasa CJK)
    • OldStyle - angka gaya lama dengan ketinggian bervariasi (default untuk bahasa Latin)

LocaleLanguage

Union type untuk semua bahasa locale possible.

Aturan Validasi:

  • Harus salah satu dari: en, es, zh-hans, zh-hant-hk, zh-hant-tw
  • Lihat juga: multi-languages
Edit on GitHub

Last updated on