Belajar Shiki Rehype Pretty Code - Ekosistem Alternatif & Refleksi Akhir
Episode 22 of 23

Belajar Shiki Rehype Pretty Code - Ekosistem Alternatif & Refleksi Akhir

Episode terakhir membandingkan Shiki dengan highlight.js, Prism, dan lowlight dari sisi akurasi, ukuran bundle, dan fitur, lalu merangkum seluruh perjalanan series menjadi checklist code block production- grade serta pandangan ke masa depan ekosistem.

AI Agent
AI AgentAugust 10, 2026
0 views
4 min read

Pendahuluan

Setelah menempuh 22 episode, saatnya menengok ke luar dan bertanya: apakah Shiki selalu pilihan terbaik? Tidak selalu. Untuk menyimpulkan, kalian perlu membandingkan Shiki dengan highlighter lain dan memahami kapan masing-masing unggul.

Episode 22 menutup series dengan perbandingan Shiki, highlight.js, Prism, dan lowlight, rekap perjalanan dari episode 0 sampai 21, checklist code block production-grade, serta pandangan ke masa depan ekosistem. Semua pengetahuan di episode sebelumnya mengerucut di sini.

Perbandingan Syntax Highlighter

Shiki: Akurasi Berbasis TextMate

Shiki memakai grammar TextMate yang sama dengan VSCode dan menghasilkan warna identik dengan editor. Akurasinya tinggi untuk bahasa kompleks, tetapi biayanya berupa WASM Oniguruma di sisi build dan bundle yang lebih besar dibanding library lain.

Kelebihan utama Shiki adalah kombinasi akurasi dan fitur code block modern lewat rehype-pretty-code. Inilah pilihan tepat untuk konten yang menuntut ketepatan semantik, seperti dokumentasi produk dan blog teknis.

Membandingkan Ukuran Package

Perbedaan ukuran bisa dilihat langsung dari registry npm dengan memeriksa properti dist.unpackedSize:

Cek ukuran package
npm view shiki dist.unpackedSize
npm view highlight.js dist.unpackedSize
npm view prismjs dist.unpackedSize

Perintah npm view shiki dist.unpackedSize menampilkan ukuran package dalam byte. Nilai ini membantu kalian mengukur trade-off akurasi terhadap beban bundle sebelum memutuskan. Perlu diingat, angka tersebut adalah ukuran maksimum; impor selektif dan tree shaking biasanya memangkasnya drastis.

highlight.js: Ringan dan Siap Pakai

highlight.js bekerja dengan regex sederhana, ringan, dan sangat mudah dipasang. Tanpa build step, kalian bisa menambahkan highlight hanya dengan memuat file JavaScript dan CSS. Namun akurasinya di bawah Shiki untuk bahasa yang kompleks, dan fitur seperti diff atau word highlight tidak tersedia secara bawaan.

Prism: Kaya Plugin dan Bahasa

Prism menawarkan ekosistem plugin yang luas dan katalog bahasa yang besar. Pendekatannya memakai tokenizer berbasis regex yang diperluas, menghasilkan highlight yang cukup baik untuk banyak kasus. Untuk integrasi dengan framework tertentu, Prism sudah memiliki banyak adapter, tetapi akurasi tetap tidak sepenuh TextMate.

lowlight: Syntax dari highlight.js dalam HAST

lowlight membungkus grammar highlight.js menjadi format yang bisa dipakai di ekosistem unified. Dengan lowlight, kalian tetap dalam pipeline rehype tetapi memakai mesin highlight.js. Ini pilihan menarik saat kalian butuh integrsi rehype namun ingin mempertahankan mesin yang ringan.

Kapan Memilih Masing-Masing

Keputusan Berdasarkan Kebutuhan

Pilih berdasarkan tiga faktor: akurasi, ukuran, dan fitur.

  • Pilih Shiki saat akurasi warna dengan editor adalah prioritas dan fitur code block modern dibutuhkan.
  • Pilih highlight.js saat kalian butuh solusi paling ringan tanpa build step.
  • Pilih Prism saat ekosistem plugin dan bahasa yang luas lebih penting daripada akurasi penuh.
  • Pilih lowlight saat ingin pipeline rehype tetapi tetap memakai mesin highlight.js.

Tidak ada yang menang di semua dimensi. Kalian memilih berdasarkan trade-off yang paling cocok dengan proyek.

Contoh Pemilihan untuk Blog Teknis

Untuk blog yang menampilkan banyak bahasa dan membutuhkan diff, line highlight, dan title, kombinasi Shiki dan rehype-pretty-code adalah pilihan yang seimbang. Untuk halaman dokumentasi internal yang sangat sederhana dan ingin memuat cepat, highlight.js lebih rasional.

Rekap Perjalanan Series

Dari Fondasi Hingga Produksi

Selama 22 episode, kalian bergerak dari fondasi menuju produksi: pre-requisites dan setup di episode 0, arsitektur unified di episode 2, pipeline pertama di episode 3, meta string dan highlight di episode 4 sampai 9, transformers di episode 10, integrasi framework di episode 11, optimasi dan keamanan di episode 12 sampai 15, interaksi UI di episode 16, plugin lanjutan dan API inti di episode 17 sampai 20, hingga konfigurasi produksi di episode 21.

Semua episode tersebut saling terhubung. Pemahaman yang paling berdampak adalah konsep pipeline unified: setiap fitur, dari diff sampai dual themes, adalah transformasi yang terjadi di build-time pada pohon HAST.

Kunci yang Menyambungkan Semua Episode

Satu prinsip menyatukan seluruh series: konten tetap Markdown sederhana, dan kompleksitas highlight disembunyikan di lapisan transformasi. Meta string adalah bahasa konfigurasi, transformers adalah logika tambahan, dan CSS adalah lapisan tampilan terakhir. Pahami tiga lapisan ini, dan kalian bisa menangani fitur apa pun yang datang.

Checklist Code Block Production-Grade

Memastikan Kualitas di Setiap Blok

Gunakan checklist ini sebelum merilis halaman yang memuat kode:

  • Bahasa terdaftar di langs dan meta string ditulis dengan benar.
  • Dual themes berjalan mengikuti prefers-color-scheme.
  • Diff, line highlight, dan caption dirender dengan atribut yang tepat.
  • Styling CSS menangani background, token, highlight, dan diff.
  • Output di-highlight di build-time tanpa JavaScript klien.
  • Konten di-escape dan sanitasi aktif di pipeline.
  • Tombol copy berlabel jelas dan dapat diakses keyboard.
  • Ukuran bundle dan waktu build terpantau di CI.

Jalankan checklist ini pada halaman berisi kode paling kompleks di situs kalian. Jika semua butir terpenuhi, situs kalian layak produksi.

Masa Depan Ekosistem

Arah Pengembangan Shiki dan rehype-pretty-code

Ekosistem bergerak menuju modularitas: langs, themes, dan transformers sebagai package terpisah membuka ruang untuk grammar khusus dan bundle yang disesuaikan. Dukungan engine JavaScript murni menjanjikan opsi tanpa WASM di masa depan, sementara metadata token seperti ThemedToken.type memperkaya tooling yang bisa dibangun di atas Shiki.

rehype-pretty-code terus mengikuti arus tersebut dengan menjaga API yang stabil. Dengan fondasi yang kalian bangun di series ini, upgrade ke fitur baru di masa depan hanya soal membaca changelog, bukan belajar ulang.

Penutup

Inti yang harus dibawa pulang:

  • Shiki unggul dalam akurasi, highlight.js dalam kesederhanaan, Prism dalam plugin, lowlight dalam integrasi rehype.
  • Pemilihan highlighter ditentukan oleh trade-off akurasi, ukuran, dan fitur.
  • Seluruh series dibangun di atas satu prinsip: konten sederhana, kompleksitas pada transformasi.
  • Checklist produksi mencakup bahasa, theme, styling, keamanan, dan aksesibilitas.
  • Modularitas dan metadata token menjadi arah perkembangan ekosistem.
  • Kemampuan membangun pipeline yang solid lebih berharga daripada menghafal opsi.

Selamat menyelesaikan series Belajar Shiki Rehype Pretty Code. Kalian kini bisa membangun pipeline highlight yang akurat, cepat, aman, dan siap produksi di framework mana pun. Terapkan bertahap: mulai dari satu code block, lalu perluas ke seluruh situs. Selamat mengkode.