Jika anda membangun website anda menggunakan Strapi atau dari sumber source markdown yang lain maka kalian akan mengetahui bahwa data yang kita ambil dari untuk menampilkan content adalah dalam bentuk rich-text, namun secara default Markdown tidak mendukung untuk syntax hightlighting.
Sehingga jika anda ingin menambahakan sintaks highlighting pada artikel yang anda buat maka anda perlu menambahakan beberapa package tambahan agar tampilan sintaks pada blog anda menjadi lebih menarik.
Apa saja yang dibutuhkan
kita membutuhkan react-markdown
dan react-syntax-hightlighter
. React markdown kita gunakan untuk rendering dari markdown ke HTML dan react syntax highlighter untuk menangani highlighting.
atau
Basic React Markdown
Untuk menampilkan sebuah konten dalam bentuk markdown agar dapat tampil, anda dapat mengirim data content anda kedalam ReactMarkdown seperti berikut
Menambahkan code
Component
Sekarang anda dapat menambahkan syntaks highlighting dengan menambahkan value pada prop components
seperti berikut.
Prop components
pada markdown menerima beberapa key
dan value
, salah satu keynya yaitu code
, dan kita bisa beri value berupa CodeBlock
yang telah kita buat.
Disini saya menggunakan tema materialDark
, anda bisa explore Color Scheme sesuai dengan project anda sendiri.
Saya juga menggunakan tailwind.css
untuk styling beberapa elemen seperti pada tag code
. Selain itu saya juga override untuk beberapa style pada tailwind typography. Jika kalian menggunakan metode styling yang lain anda bisa skip kode dibawah.
Pada kode diatas kita hanya mereset beberapa style seperti override style nya agar menghilangkan margin, hapus tanda petik pada blok kode dll.
Tampilkan nama bahasa pemrograman yang digunakan.
Untuk menampilkan nama bahasa pemrograman sesuai dengan blok kode kita kita dapat memodifikasi code
yang telah kita buat. Kita dapat melakukan ini dengan membungkus SyntaxHightlighter dengan sebuah div dan beri posisi relative lalu didalam div tersebut buatlah suatu paragraf dengan posisi absolute. Paragraf inilah yang nantinya akan menampilkan bahasa pemrograman yg kita gunakan.
Disini saya menggunakan component Language
untuk menampilkan nama extension pada syntax highlight kita.
Berikut merupakan component Language.js
Pada Language.js
kita mengimpor languageMap
dan shortNameMap
. file languageMap
berisi style classname untuk masing-masing bahasa pemrograman, sedangkan shortNameMap
berfungsi untuk mengconvert beberapa bahasa permrograman menjadi nama file extensinya saja.
Untuk contoh diatas saya menggunakan tailwindcss untuk melakukan styling. di file inilah kita melakukan customisasi warna text & background
Sekarang blok code
anda akan terlihat lebih menarik dengan syntax hightlighting yang telah kita terapkan.
Terima kasih 🙂