Ajukan pertanyaan Anda dan dapatkan ringkasan dokumen dengan merujuk halaman ini dan penyedia AI pilihan Anda
Riwayat Versi
- "Mengizinkan pra-parsing AST Markdown untuk SSR / hidrasi"v8.11.028/5/2026
- "Menambahkan dukungan untuk file `.content.md`"v8.10.019/5/2026
- "Menambahkan objek plugin `intlayerMarkdown`; gunakan `app.use(intlayerMarkdown)` sebagai ganti `app.use(installIntlayerMarkdown)`"v8.5.024/3/2026
- "Memindahkan impor dari `{{framework}}-intlayer` ke `{{framework}}-intlayer/markdown`"v8.5.024/3/2026
- "Menambahkan utilitas MarkdownRenderer / useMarkdownRenderer / renderMarkdown dan opsi forceInline"v8.0.022/1/2026
- "Dekorasi otomatis dari konten markdown, dukungan MDX dan SSR"v8.0.018/1/2026
- "Inisialisasi riwayat"v5.5.1029/6/2025
Konten halaman ini diterjemahkan menggunakan AI.
Lihat versi terakhir dari konten aslinya dalam bahasa InggrisJika Anda memiliki ide untuk meningkatkan dokumentasi ini, silakan berkontribusi dengan mengajukan pull request di GitHub.
Tautan GitHub ke dokumentasiSalin Markdown dokumentasi ke clipboard
Markdown / Konten Teks Kaya
Intlayer mendukung konten teks kaya yang didefinisikan menggunakan sintaks Markdown. Ini memungkinkan Anda dengan mudah menulis dan memelihara konten berformat kaya seperti blog, artikel, dan lainnya.
Mendeklarasikan Konten Markdown
Anda dapat mendeklarasikan konten Markdown menggunakan fungsi md atau cukup sebagai string (jika mengandung sintaks Markdown).
Mulai dari versi 8.10.0, Anda dapat mendeklarasikan konten Markdown langsung di dalam file .content.md. Intlayer akan secara otomatis mendeteksi dan mem-parsing konten Markdown.
Salin kode ke clipboard
Bidang locale pada front-matter adalah bidang yang mendefinisikan bahasa konten. Ini bersifat opsional. Jika tidak diberikan, Intlayer akan menggunakan bahasa default, yang juga digunakan sebagai bahasa cadangan jika tidak ada terjemahan yang tersedia untuk bahasa tertentu.
Contoh struktur file:
Salin kode ke clipboard
Anda dapat menambahkan properti apa pun yang didefinisikan dalam Definisi Kamus ke dalam front-matter
Gunakan fungsi md untuk mendeklarasikan konten Markdown secara eksplisit. Ini berguna jika Anda ingin memastikan sebuah string diperlakukan sebagai Markdown bahkan jika tidak mengandung sintaks yang jelas.
Salin kode ke clipboard
Impor file .md secara langsung menggunakan fungsi file.
Salin kode ke clipboard
Jika string mengandung indikator Markdown umum (seperti judul, daftar, tautan, dll.), Intlayer akan secara otomatis mengubahnya.
Salin kode ke clipboard
Merender Markdown
Intlayer menyediakan dua cara independen untuk merender Markdown:
Melalui
useIntlayer— Intlayer secara otomatis mengubah simpulmdmenjadi keluaran asli kerangka kerja (JSX, VNode, string HTML).- Frontmatter diparsing dan diekspos sebagai
.metadata. Anda dapat mengesampingkan rendering pada dua tingkat — secara global denganMarkdownProvider(atau yang setara di kerangka kerja) dan secara lokal per simpul dengan.use(). Keduanya dapat digabungkan;.use()diutamakan daripadaMarkdownProvider, yang pada gilirannya diutamakan daripada nilai default.
- Frontmatter diparsing dan diekspos sebagai
Utilitas Pembantu —
<MarkdownRenderer />,useMarkdownRenderer(), danrenderMarkdown()adalah alat mandiri yang menerima hanya string Markdown mentah. Alat-alat ini independen dariuseIntlayerdan tidak bekerja dengan simpul dekoratif yang dikembalikannya.
Rendering Markdown mendukung MDX — gunakan komponen JSX/kerangka kerja apa pun berdasarkan namanya langsung di dalam Markdown Anda.
1. Rendering Otomatis (melalui useIntlayer)
Simpul Markdown dapat dirender langsung sebagai JSX.
Salin kode ke clipboard
Jika MarkdownProvider tidak ada, Intlayer akan merender markdown menggunakan parser default Markdown ke JSX.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Simpul Markdown dapat dirender langsung sebagai JSX.
Salin kode ke clipboard
Jika MarkdownProvider tidak ada, Intlayer akan merender markdown menggunakan parser default Markdown ke JSX.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Di Vue, konten Markdown dapat dirender menggunakan tag component bawaan atau langsung sebagai sebuah simpul.
Salin kode ke clipboard
Konfigurasikan secara global melalui plugin intlayerMarkdown (mendukung komponen kustom MDX):
Salin kode ke clipboard
Jika plugin intlayerMarkdown tidak diinstal, Intlayer akan merender menggunakan kompilator default.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Svelte merender Markdown sebagai string HTML secara default. Gunakan {@html} untuk merendernya.
Salin kode ke clipboard
Jika MarkdownProvider tidak ada, Intlayer akan merender markdown menggunakan kompilator default.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Preact mendukung simpul Markdown secara langsung di JSX.
Salin kode ke clipboard
Jika MarkdownProvider tidak ada, Intlayer akan merender markdown menggunakan parser default Markdown ke JSX.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Solid mendukung simpul Markdown secara langsung di JSX.
Salin kode ke clipboard
Jika MarkdownProvider tidak ada, Intlayer akan merender markdown menggunakan parser default Markdown ke JSX.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
Angular menggunakan direktif [innerHTML] untuk merender konten Markdown.
Salin kode ke clipboard
Jika penyedia IntlayerMarkdown tidak dikonfigurasi, Intlayer akan merender menggunakan kompilator default.
Anda juga dapat memberikan pengesampingan lokal untuk simpul tertentu menggunakan metode .use():
Salin kode ke clipboard
Anda dapat mengambil Markdown sebagai sebuah string:
Salin kode ke clipboard
Dan Anda dapat mengakses metadata markdown Anda seperti ini:
Salin kode ke clipboard
2. Utilitas Pembantu (Hanya String Markdown)
Utilitas ini merender hanya string Markdown mentah dan independen dari useIntlayer. Gunakan utilitas ini saat Anda perlu merender Markdown dari sumber selain dari kamus Anda.
Komponen <MarkdownRenderer />
Merender string Markdown dengan opsi tertentu.
Salin kode ke clipboard
Hook useMarkdownRenderer()
Mendapatkan fungsi perender yang sudah dikonfigurasi sebelumnya.
Salin kode ke clipboard
Utilitas renderMarkdown()
Utilitas mandiri untuk rendering di luar komponen.
Salin kode ke clipboard
Komponen <MarkdownRenderer />
Merender string Markdown dengan opsi tertentu.
Salin kode ke clipboard
Hook useMarkdownRenderer()
Mendapatkan fungsi perender yang sudah dikonfigurasi sebelumnya.
Salin kode ke clipboard
Utilitas renderMarkdown()
Utilitas mandiri untuk rendering di luar komponen.
Salin kode ke clipboard
Komponen <MarkdownRenderer />
Salin kode ke clipboard
Komponen <MarkdownRenderer />
Salin kode ke clipboard
Hook useMarkdownRenderer()
Salin kode ke clipboard
Utilitas renderMarkdown()
Salin kode ke clipboard
Komponen <MarkdownRenderer />
Salin kode ke clipboard
Hook useMarkdownRenderer()
Salin kode ke clipboard
Utilitas renderMarkdown()
Salin kode ke clipboard
Komponen <MarkdownRenderer />
Salin kode ke clipboard
Hook useMarkdownRenderer()
Salin kode ke clipboard
Utilitas renderMarkdown()
Salin kode ke clipboard
Layanan IntlayerMarkdownService
Merender string Markdown menggunakan layanan.
Salin kode ke clipboard
Konfigurasi Global dengan MarkdownProvider
MarkdownProvider (atau padanan kerangka kerjanya) mengonfigurasi jalur rendering Markdown untuk seluruh aplikasi Anda. Ini berlaku baik untuk rendering useIntlayer otomatis maupun utilitas pembantu. Opsi yang ditetapkan di sini adalah default — .use() mengesampingkannya di tingkat simpul.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Salin kode ke clipboard
MDX didukung — nama komponen apa pun yang digunakan di dalam Markdown Anda (misalnya<MyCustomJSXComponent />) diselesaikan terhadap petacomponents.
Anda juga dapat menggunakan perender markdown Anda sendiri:
Salin kode ke clipboard
Mengimpor perender Markdown Anda secara dinamis adalah cara yang bagus untuk mengurangi ukuran bundel aplikasi Anda.
Suspense
Perender Markdown Intlayer dimuat secara dinamis. Meskipun dioptimalkan, ukuran parser dasarnya sekitar 55kb. Memuat ini secara sinkron menunda perenderan halaman awal dan menurunkan First Contentful Paint (FCP).
Untuk mencegah pemblokiran UI, Intlayer terintegrasi dengan API Suspense dari React. Ia mengambil parser di latar belakang dan melempar Promise selama pengunduhan.
Bungkus komponen apa pun yang merender Markdown Intlayer di dalam batasan <Suspense>. Ini menampilkan status fallback yang dilokalkan saat chunk diunduh, memungkinkan sisa DOM Anda segera dirender.
Peringatan: Jika Anda tidak menyediakan batasan <Suspense>, React akan ditangguhkan pada tingkat root atau memblokir seluruh pohon komponen dari perenderan hingga chunk 55kb dimuat sepenuhnya.
Di Next.js App Router, Anda dapat menggunakan Suspense React untuk komponen klien atau file loading.tsx untuk komponen server.
Komponen Klien:
Salin kode ke clipboard
Komponen Server dengan loading.tsx:
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Vue memiliki komponen <Suspense> bawaan. Bungkus komponen yang merender konten Markdown dalam batasan <Suspense>.
Salin kode ke clipboard
Svelte tidak memiliki API Suspense yang setara. Gunakan blok {#await} untuk menangani perenderan asinkron dari konten Markdown.
Salin kode ke clipboard
Preact mendukung API Suspense React melalui preact/compat.
Salin kode ke clipboard
Solid memiliki komponen <Suspense> sendiri dari solid-js.
Salin kode ke clipboard
Angular tidak memiliki API Suspense. Gunakan tampilan yang ditangguhkan (@defer) milik Angular untuk menangani konten Markdown yang dimuat secara lambat (membutuhkan Angular 17+).
Salin kode ke clipboard
Rendering Sisi Server (SSR) dan Hidrasi
Dibandingkan dengan parser Markdown lainnya seperti remark / rehype, Intlayer Markdown bebas ketergantungan dan berjalan di sisi klien maupun server.
Namun Intlayer mengoptimalkan parsing untuk framework Server-Side Rendering (SSR) (seperti Next.js App Router, React Router, Nuxt, SvelteKit, dll.).
Hidrasi di browser memakan waktu, sehingga Intlayer memungkinkan Anda untuk mem-parsing Markdown terlebih dahulu ke dalam Abstract Syntax Tree (AST) di server, lalu mengirimkannya sebagai objek JSON yang dapat diserialisasi ke frontend.
Anda dapat menggunakan fungsi parseMarkdown dari paket Intlayer framework Anda di sisi server untuk menghasilkan AST yang dapat diserialisasi (objek ParsedMarkdown), dan meneruskannya secara langsung ke frontend. Semua utilitas rendering Intlayer (seperti <MarkdownRenderer>, useMarkdownRenderer, dll.) secara otomatis menerima objek AST ini dan merendernya dengan lancar.
Contoh dalam Arsitektur Server/Klien
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Salin kode ke clipboard
Angular SSR biasanya menyelesaikan data di server selama pemuatan awal dan menghidrasi di klien. Anda dapat menggunakan resolver untuk meneruskan AST.
Salin kode ke clipboard
Salin kode ke clipboard
Pola ini memastikan bahwa logika parsing Markdown dieksekusi sepenuhnya di server, secara signifikan mengurangi waktu eksekusi di sisi klien dan meningkatkan kecepatan hidrasi awal.
Referensi Opsi
Opsi ini dapat diteruskan ke MarkdownProvider, MarkdownRenderer, useMarkdownRenderer, dan renderMarkdown.
Buka tabel dalam modal untuk melihat semua isi data dengan jelas
| Option | Type | Default | Deskripsi |
|---|---|---|---|
forceBlock | boolean | false | Memaksa output untuk dibungkus dalam elemen tingkat blok (mis., <div>). |
forceInline | boolean | false | Memaksa output untuk dibungkus dalam elemen sebaris (mis., <span>). |
tagfilter | boolean | true | Mengaktifkan GitHub Tag Filter untuk keamanan yang ditingkatkan dengan menghapus tag HTML berbahaya. |
preserveFrontmatter | boolean | false | Jika true, frontmatter di awal string Markdown tidak akan dihapus. |
components | Overrides | {} | Peta tag HTML ke komponen kustom (mis., { h1: MyHeading }). |
wrapper | Component | null | Komponen kustom untuk membungkus Markdown yang dirender. |
renderMarkdown | Function | null | Fungsi perenderan kustom untuk sepenuhnya menggantikan kompilator Markdown default. |
