Setiap developer membutuhkan curriculum vitae kecuali Anda adalah profesional ter terkenal di dunia. Menulis curriculum vitae mungkin tidak sulit, tetapi pasti tidak menyenangkan dan membosankan. Banyak orang menghabiskan hari-hari untuk menyusun curriculum vitae mereka, mengejar curriculum vitae yang 100% bebas typo, telah diperiksa tata bahasa, dengan tata letak dan typesetting profesional.
YAMLResume memungkinkan Anda membuat dan mengontrol versi curriculum vitae Anda menggunakan YAML dan menghasilkan PDF yang terlihat profesional dengan typesetting yang indah dengan mudah.
YAMLResume dimulai sebagai mesin typesetting inti untuk PPResume—sebuah LaTeX-based, komersial, pixel perfect resume builder yang sudah membantu ribuan orang membuat curriculum vitae dengan typesetting yang indah. Tanpa banyak keraguan, kami memutuskan untuk membuka sumbernya sehingga orang-orang selalu dapat berkata tidak untuk vendor lock-in.

Quick Start
YAMLResume menyediakan CLI tool, selain itu, ia memiliki dependensi wajib pada mesin typesetting untuk menghasilkan PDF. Dengan kata lain, Anda harus menginstal mesin typesetting terlebih dahulu jika ingin menghasilkan PDF.
Memasang CLI yamlresume sangat mudah. Anda dapat menginstalnya menggunakan
package manager Node.js favorit Anda:
npm install -g yamlresumepnpm add -g yamlresumeyarn global add yamlresumebun add -g yamlresumeVerifikasi bahwa yamlresume berhasil dipasang:
$ yamlresume help
Usage: yamlresume [options] [command]
YAMLResume — Resume as Code in YAML
__ __ _ __ __ _ ____
\ \ / // \ | \/ | | | _ \ ___ ___ _ _ ___ ___ ___
\ V // _ \ | |\/| | | | |_) / _ \/ __| | | / _ \/ _ \ / _ \
| |/ ___ \| | | | |___| _ < __/\__ \ |_| | | | | | | __/
|_/_/ \_\_| |_|_____|_| \_\___||___/\____|_| |_| |_|\___|
Options:
-V, --version output the version number
-v, --verbose verbose output
-h, --help display help for command
Commands:
new [filename] create a new resume
build <source> build a resume to LaTeX and PDF
languages i18n and l10n support
templates manage resume templates
help [command] display help for commandKami juga merekomendasikan Anda untuk menginstal font Linux Libertine untuk mendapatkan PDF yang terlihat terbaik.
Terakhir tetapi tidak kalah penting, jika Anda ingin membuat curriculum vitae CJK, kami juga merekomendasikan untuk menginstal Google Noto fonts untuk cakupan unicode terbaik.
Membuat Curriculum Vitae Baru
Anda dapat membuat curriculum vitae baru dengan satu baris perintah:
$ yamlresume new my-resume.yml
✔ Created my-resume.yml successfully.Di baliknya, yamlresume new akan mengkloning contoh curriculum vitae dari
tautan
ini.
Kemudian Anda bisa mendapatkan PDF dengan satu baris perintah lagi:
$ yamlresume build my-resume.yml
◐ Generating resume PDF with command: xelatex -halt-on-error my-resume.tex...
✔ Generated resume PDF successfully.Selesai! Periksa PDF curriculum vitae yang dihasilkan:

Anda dapat melihat PPResume Gallery untuk contoh lainnya yang menggunakan YAMLResume sebagai mesin typesetting.
Pemecahan Masalah
CLI YAMLResume menyediakan flag verbose -v/--verbose untuk menampilkan
informasi logging yang lebih detail. Jika Anda mengalami masalah dalam membuat
curriculum vitae, Anda dapat mencoba menjalankan perintah lagi dengan flag
verbose ini dan paste output ke github
issues, saya akan
memeriksa dan merespons Anda.
Bagaimana Cara Kerjanya?
Di baliknya, YAMLResume bekerja seperti compiler mini, yaitu mengambil input, mem-parsing-nya ke AST dan kemudian menghasilkan output.
Prinsip desain inti dari YAMLResume adalah separation of concerns. Salah satu contoh paling terkenal yang mengikuti prinsip ini adalah HTML & CSS, yang merupakan fondasi web modern—HTML digunakan untuk mengorganisir konten di halaman web, CSS digunakan untuk mendefinisikan gaya presentasi konten.
Mengikuti prinsip inti, YAMLResume dirancang berdasarkan persyaratan berikut:
- konten curriculum vitae harus ditulis dalam plain text, yang ramah untuk version control
- plain text harus menggunakan format yang sepenuhnya terstruktur, yang memberikan lebih banyak kontrol dan fleksibilitas
- YAML lebih baik daripada JSON karena lebih mudah dibaca dan ditulis oleh manusia
- plain text YAML kemudian di-render menjadi PDF dengan mesin typesetting yang dapat diubah-ubah
- tata letak yang opinionated harus disediakan secara default, sambil tetap memungkinkan orang untuk menyesuaikan opsi sesuai kebutuhan seperti ukuran font, margin halaman, dll.
Mengapa YAML?
JSON Resume adalah proyek lain yang memungkinkan orang untuk membuat curriculum vitae dalam format terstruktur. Namun, sebagian besar pengembang akan setuju bahwa YAML lebih baik dari JSON dalam hal keterbacaan dan kemampuan menulis oleh manusia. Misalnya, sangat tidak nyaman untuk merepresentasikan string multi-baris di JSON, sementara YAML memiliki dukungan native untuknya.
Bandingkan cuplikan curriculum vitae di JSON dan YAML:
{
"content": {
"basics": {
"name": "Andy Dufresne",
"headline": "Headed for the Pacific",
"phone": "(213) 555-9876",
"email": "hi@ppresume.com",
"url": "https://ppresume.com/gallery",
"summary": "- Computer Science major with strong foundation in data structures, algorithms, and software development\n- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites\n- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)\n- Team player, with detail-oriented mindset and a keen eye for design and user experiences"
}
}
}content:
basics:
name: Andy Dufresne
headline: Headed for the Pacific
phone: "(213) 555-9876"
email: hi@ppresume.com
url: https://ppresume.com/gallery
summary: |
- Computer Science major with strong foundation in data structures, algorithms, and software development
- Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
- Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiencesMana yang lebih mudah dibaca dan ditulis? Jawabannya jelas.
JSON Resume tidak peduli tentang tata letak curriculum vitae. Di dunia nyata, Anda tidak bisa hanya mengirim file JSON ke perekrut bukan? Format curriculum vitae terstruktur perlu dikonversi ke format dokumen yang dapat dibaca manusia seperti docx, PDF, dll. YAMLResume menawarkan konfigurasi tata letak yang opinionated, dan menjamin output PDF yang pixel perfect.
Pada saat penulisan, tata letak opinionated YAMLResume mendukung:
- bahasa lokal
- Inggris
- Mandarin Sederhana
- Mandarin Tradisional
- Spanyol
- margin
- atas
- kiri
- kanan
- bawah
- nomor halaman
- template
- tipografi
- ukuran font
Berikut adalah contoh kode untuk konfigurasi tata letak di YAMLResume:
layout:
locale:
language: en
margins:
top: 2.5cm
left: 1.5cm
right: 1.5cm
bottom: 2.5cm
page:
showPageNumbers: true
template: moderncv-banking
typography:
fontSize: 11ptMengapa Bukan Markdown?
Markdown adalah pilihan populer lainnya untuk menulis curriculum vitae, ada juga beberapa resume builder yang mengadopsi markdown sebagai format input utama. Namun, markdown adalah bahasa markup tujuan umum untuk membuat teks yang terformat, sementara curriculum vitae hanya menggunakan set fitur markdown yang sangat terbatas.
Sebagai contoh, sintaks markdown berikut sangat tidak mungkin digunakan dalam curriculum vitae:
- blockquote
- code block
- horizontal rules
- images
- tables
- html markup
- dll.
Kedua, markdown terlalu fleksibel, sering memberikan pengguna lebih banyak kebebasan daripada yang mereka butuhkan untuk membuat curriculum vitae. Akan sulit untuk dengan andal mem-parse dokumen markdown generik sebagai curriculum vitae.
Ketiga, fitur seperti penggantian template, kontrol tata letak yang tepat
(seperti \hfill dan \hspace di LaTeX) sangat sulit diimplementasikan di
markdown.
Kesimpulannya, menggunakan format yang sepenuhnya terstruktur seperti YAML/JSON memberikan lebih banyak kontrol dan keandalan atas pemformatan dan tata letak curriculum vitae.
Mengapa Tetap LaTeX?
LaTeX adalah mesin typesetting yang sangat
matang dan stabil yang dapat menghasilkan PDF dengan kualitas sangat tinggi.
Namun, banyak pengguna LaTeX, bahkan penggemar LaTeX, akan setuju bahwa bahasa
LaTeX sudah agak ketinggalan zaman—pesan kesalahannya sering cukup membingungkan,
dan ketergantungan pada variabel global sering menyebabkan konflik antar
package, kecepatan kompilasi lambat untuk dokumen besar dan sering cukup
rumit, dan menghasilkan file intermediate yang ugly (.aux, .log, dll.).
Beberapa menyarankan untuk mengganti LaTeX dengan typst, yang merupakan mesin typesetting modern, dengan DX yang jauh lebih baik dan kompilasi yang jauh lebih cepat. Namun, setelah evaluasi dengan hati-hati, saya memutuskan untuk tetap menggunakan LaTeX. Yang menjadi penentu di sini adalah, YAMLResume dirancang untuk mendukung multi bahasa dengan kualitas typesetting terbaik, namun dukungan CJK typst masih tidak stabil dan kurang lengkap.
Nanti mungkin saya akan menambahkan backend renderer baru untuk mendukung typst.
Dukungan Rich Text
Meskipun kami memutuskan untuk tidak menggunakan markdown sebagai format
input curriculum vitae, kami mendukung set terbatas sintaks rich text markdown
untuk kolom summary di berbagai bagian.
Untuk saat ini, kami mendukung sintaks markdown berikut:
**bold***italic*[link](https://www.google.com)- ordered list
- unordered list
- nested list
- paragraphs
Sebagai contoh, ini adalah contoh kode untuk kolom content.basics.summary:
---
content:
# ...
summary: |
This is a sample YAML resume that support limited set of markdown rich text syntax (bold, italics, links, lists):
- Computer Science major with **strong foundation** in data structures, *algorithms*, and software development
1. Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
2. Experiened in databases (SQL, NoSQL), familiar with server-side technologies ([Node.js](https://nodejs.org/en), Express, etc.)
- Team player, with detail-oriented mindset and a keen eye for design and user experiencesDan ini adalah PDF yang dihasilkan:

Anda dapat melihat sintaks rich text dirender dengan benar dengan bold, italics, links, lists, cukup solid, bukan?
Roadmap
Secara keseluruhan proyek masih dalam tahap yang sangat awal, kami memiliki jalan yang panjang untuk ditempuh. Saya sudah merencanakan daftar fitur yang akan dilakukan dalam waktu dekat:
- bahasa lainnya, Jepang, Jerman, Prancis, dll
- template lainnya
- section alias
- section reordering
- schema validation
Untuk masalah apapun, Anda dapat:
- membuat issue
- membuka discussion
- meninggalkan message
Tetap pantau perkembangan terbaru!
Written by
Xiao HanyuAt
Wed May 21 2025