Referensi Konfigurasi
Mengonfigurasi integrasi starlight
Starlight adalah integrasi yang dibangun di atas web framework Astro. Anda dapat mengonfigurasi proyek Anda di dalam file konfigurasi astro.config.mjs
:
Anda dapat meneruskan opsi-opsi berikut ke integrasi starlight
.
title
(wajib)
type: string | Record<string, string>
Atur judul untuk website Anda. Akan digunakan dalam metadata dan di judul tab browser.
Nilainya dapat berupa string, atau untuk situs multibahasa, objek dengan nilai untuk setiap bahasa yang berbeda.
Saat menggunakan bentuk objek, nama propertinya harus berupa tag BCP-47 (misalnya en
, ar
, atau zh-CN
):
description
type: string
Atur deskripsi untuk website Anda. Digunakan dalam metadata yang dibagikan dengan mesin pencari di tag <meta name="description">
jika description
tidak diatur dalam frontmatter halaman.
logo
type: LogoConfig
Atur gambar logo untuk ditampilkan di bilah navigasi bersamaan dengan atau sebagai pengganti judul website. Anda dapat mengatur properti src
tunggal atau mengatur sumber gambar terpisah untuk mode light
dan dark
.
LogoConfig
tableOfContents
type: false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
default: { minHeadingLevel: 2; maxHeadingLevel: 3; }
Konfigurasi daftar isi yang ditampilkan di sebelah kanan setiap halaman. Secara default, judul <h2>
dan <h3>
akan dimasukkan dalam daftar isi ini.
editLink
type: { baseUrl: string }
Aktifkan tautan “Edit halaman ini” dengan mengatur base URL yang harus digunakan. Tautan akhir akan menjadi editLink.baseUrl
+ path halaman saat ini. Sebagai contoh, untuk mengaktifkan pengeditan halaman di repositori withastro/starlight
di GitHub:
Dengan konfigurasi ini, halaman /introduction
akan memiliki tautan untuk mengedit yang mengarah ke https://github.com/withastro/starlight/edit/main/src/content/docs/introduction.md
.
sidebar
type: SidebarItem[]
Konfigurasikan item navigasi sidebar website Anda.
Sidebar adalah array dari tautan dan grup tautan.
Kecuali item yang menggunakan slug
, setiap item harus memiliki label
dan salah satu properti berikut:
-
link
— tautan tunggal ke URL tertentu, misalnya'/home'
atau'https://example.com'
. -
slug
— referensi ke halaman internal, misalnya'guides/getting-started'
. -
items
— array yang berisikan lebih banyak tautan sidebar dan sub-grup. -
autogenerate
— objek yang menentukan direktori mana di website dokumentasi Anda yang akan digunakan untuk secara otomatis menghasilkan grup tautan.
Tautan internal juga dapat ditentukan sebagai string, bukan objek dengan properti slug
.
Urutan
Grup sidebar yang dihasilkan secara otomatis diurutkan berdasarkan nama file secara alfabetis.
Sebagai contoh, halaman yang dihasilkan dari astro.md
akan muncul di atas halaman untuk starlight.md
.
Grup yang bisa dilipat
Grup tautan dilebarkan secara default. Anda dapat mengubah perilaku ini dengan mengatur properti collapsed
dari grup tersebut menjadi true
.
Sub-grup yang dihasilkan secara otomatis akan mengikuti properti collapsed
dari parent group-nya secara default. Atur properti autogenerate.collapsed
untuk mengganti pengaturan ini.
Menerjemahkan label
Jika website Anda mendukung banyak bahasa, label
dari setiap item dianggap berada dalam bahasa default. Anda dapat mengatur properti translations
untuk menyediakan label dalam bahasa-bahasa lain yang didukung:
SidebarItem
BadgeConfig
locales
type: { [dir: string]: LocaleConfig }
Mengonfigurasi internasionalisasi (i18n) untuk website Anda dengan mengatur locales
yang mana yang didukung.
Setiap entri harus menggunakan direktori di mana file-file bahasa tersebut disimpan sebagai nama propertinya.
LocaleConfig
Anda dapat mengatur opsi berikut untuk setiap bahasa:
label
(wajib)
type: string
Label untuk bahasa ini yang ditampilkan kepada pengguna, misalnya di pemilih bahasa. Biasanya, Anda ingin menggunakan nama bahasa ini seperti yang diharapkan oleh pengguna yang menggunakan bahasa tersebut, contohnya "English"
, "العربية"
, atau "简体中文"
.
lang
type: string
Tag BCP-47 untuk bahasa saat ini, misalnya "en"
, "ar"
, atau "zh-CN"
. Jika tidak diatur, nama direktori bahasa akan digunakan secara default. Tag bahasa dengan subtag regional (misalnya "pt-BR"
atau "en-US"
) akan menggunakan terjemahan UI bawaan untuk bahasa dasarnya jika tidak ada terjemahan khusus untuk wilayah ditemukan.
dir
type: 'ltr' | 'rtl'
Arah penulisan bahasa ini; "ltr"
untuk kiri-ke-kanan (default) atau "rtl"
untuk kanan-ke-kiri.
Bahasa utama
Anda dapat serve bahasa default tanpa direktori /lang/
dengan mengatur bahasa root
:
Sebagai contoh, ini memungkinkan Anda untuk serve /getting-started/
sebagai path untuk Bahasa Inggris dan menggunakan /fr/getting-started/
untuk halaman yang sama dalam Bahasa Prancis.
defaultLocale
type: string
Menetapkan bahasa yang menjadi default untuk website ini.
Nilainya harus cocok dengan salah satu properti objek locales
Anda.
(Jika bahasa default Anda adalah bahasa utama Anda, Anda dapat melewatkannya.)
Bahasa default akan digunakan untuk memberikan konten cadangan ketika terjemahan tidak tersedia.
social
type: Partial<Record<'azureDevOps' | 'backstage' | 'bitbucket' | 'blueSky' | 'codeberg' | 'codePen' | 'discord' | 'discourse' | 'email' | 'facebook' | 'github' | 'gitlab' | 'gitter' | 'hackerOne' | 'instagram' | 'linkedin' | 'mastodon' | 'matrix' | 'microsoftTeams' | 'nostr' | 'openCollective' | 'patreon' | 'pinterest' | 'reddit' | 'rss' | 'signal' | 'slack' | 'stackOverflow' | 'telegram' | 'threads' | 'tiktok' | 'twitch' | 'twitter' | 'x.com' | 'youtube' | 'zulip', string>>
Rincian opsional tentang akun media sosial untuk website ini. Menambahkan salah satu dari ini akan menampilkan mereka sebagai tautan ikon di header website.
customCss
type: string[]
Sediakan file CSS untuk menyesuaikan tampilan dan nuansa website Starlight Anda.
Mendukung file CSS lokal yang bersifat relatif terhadap path proyek Anda, misalnya './src/custom.css'
, dan CSS yang Anda instal sebagai modul npm, misalnya '@fontsource/roboto'
.
expressiveCode
type: StarlightExpressiveCodeOptions | boolean
default: true
Starlight menggunakan Expressive Code untuk merender blok kode dan menambahkan dukungan untuk menyorot bagian contoh kode, menambahkan nama file ke blok kode, dan banyak lagi. Lihat panduan “Blok kode” untuk mempelajari cara menggunakan sintaksis Expressive Code dalam konten Markdown dan MDX Anda.
Anda dapat menggunakan salah satu opsi konfigurasi Expressive Code standar serta beberapa properti khusus Starlight, dengan mengaturnya dalam opsi expressiveCode
Starlight.
Misalnya, gunakan opsi styleOverrides
Expressive Code untuk mengganti CSS default. Ini memungkinkan kustomisasi seperti memberi blok kode Anda sudut membulat:
Jika Anda ingin menonaktifkan Expressive Code, gunakan expressiveCode: false
dalam konfigurasi Starlight Anda:
Selain opsi Expressive Code standar, Anda juga dapat mengatur properti khusus Starlight berikut dalam konfigurasi expressiveCode
Anda untuk lebih menyesuaikan aturan tema untuk blok kode Anda:
themes
type: Array<string | ThemeObject | ExpressiveCodeTheme>
default: ['starlight-dark', 'starlight-light']
Mengatur tema yang digunakan untuk memberi gaya pada blok kode.
Lihat Dokumentasi Expressive Code themes
untuk detail format tema yang didukung.
Starlight menggunakan varian gelap dan terang dari tema Night Owl Sarah Drasner secara default.
Jika Anda menyediakan setidaknya satu tema gelap dan satu tema terang, Starlight akan secara otomatis menjaga tema blok kode aktif tetap sinkron dengan tema situs saat ini.
Konfigurasikan aturan ini dengan opsi useStarlightDarkModeSwitch
.
useStarlightDarkModeSwitch
type: boolean
default: true
Jika true
, blok kode secara otomatis beralih antara tema terang dan gelap saat tema situs berubah.
Jika false
, Anda harus menambahkan CSS secara manual untuk menangani peralihan antara beberapa tema.
useStarlightUiThemeColors
type: boolean
default: true
jika themes
tidak diatur, kalau tidak false
Jika true
, variabel CSS Starlight digunakan untuk warna elemen UI blok kode (latar belakang, tombol, bayangan, dll.), yang sesuai dengan tema warna situs.
Jika false
, warna yang disediakan oleh tema penyorotan sintaksis aktif digunakan untuk elemen-elemen ini.
pagefind
type: boolean
default: true
Tentukan apakah penyedia pencarian situs default Starlight Pagefind diaktifkan.
Atur ke false
untuk menonaktifkan pengindeksan situs Anda dengan Pagefind.
Ini juga akan menyembunyikan UI pencarian default jika digunakan.
Pagefind tidak dapat diaktifkan saat opsi prerender
diatur ke false
.
prerender
type: boolean
default: true
Tentukan apakah halaman Starlight harus dirender terlebih dahulu ke HTML statis atau dirender sesuai permintaan oleh adaptor SSR.
Halaman Starlight dirender terlebih dahulu secara default.
Jika Anda menggunakan adaptor SSR dan ingin merender halaman Starlight sesuai permintaan, tetapkan prerender: false
.
head
type: HeadConfig[]
Tambahkan tag kustom ke <head>
website Starlight Anda.
Bisa berguna untuk menambahkan script analitik dan skrip pihak ketiga lainnya.
Entri dalam head
dikonversi langsung ke elemen HTML dan tidak melewati pemrosesan skrip atau gaya Astro.
Jika Anda perlu mengimpor aset lokal seperti skrip, gaya, atau gambar, ganti komponen Head.
HeadConfig
lastUpdated
type: boolean
default: false
Atur apakah footer menampilkan kapan halaman terakhir diperbarui.
Secara default, fitur ini mengandalkan histori Git repositori Anda dan mungkin tidak akurat pada beberapa deployment platform yang melakukan shallow clones. Halaman dapat mengesampingkan pengaturan ini atau tanggal Git-based menggunakan kolom lastUpdated
pada frontmatter.
pagination
type: boolean
default: true
Tentukan apakah footer harus menampilkan tautan ke halaman sebelumnya dan halaman berikutnya.
Halaman dapat mengesampingkan pengaturan ini atau teks tautan dan/atau URL menggunakan kolom prev
dan next
pada frontmatter.
favicon
type: string
default: '/favicon.svg'
Atur path favicon default untuk website Anda yang harus berada di direktori public/
dan merupakan file ikon yang valid (.ico
, .gif
, .jpg
, .png
, atau .svg
).
Jika Anda perlu mengatur varian tambahan atau favicon cadangan, Anda dapat menambahkan tag menggunakan opsi head
:
titleDelimiter
type: string
default: '|'
Atur pemisah antara judul halaman dan judul website di tag <title>
halaman, yang ditampilkan pada tab browser.
Secara default, setiap halaman memiliki <title>
berupa Judul Halaman | Judul Website
.
Sebagai contoh, halaman ini berjudul “Referensi Konfigurasi” dan website ini berjudul “Starlight”, sehingga <title>
untuk halaman ini adalah “Referensi Konfigurasi | Starlight”.
disable404Route
type: boolean
default: false
Menonaktifkan penyuntikan halaman 404 bawaan Starlight. Untuk menggunakan kustom rute src/pages/404.astro
di proyek Anda, tetapkan opsi ini ke true
.
components
type: Record<string, string>
Berikan path ke komponen untuk mengganti implementasi default Starlight.
Lihat Referensi Penggantian untuk rincian semua komponen yang dapat Anda ganti.
plugins
type: StarlightPlugin[]
Perluas Starlight dengan plugin khusus. Plugin menerapkan perubahan pada proyek Anda untuk mengubah atau menambah fitur Starlight.
Kunjungi pajangan plugin untuk melihat daftar plugin yang tersedia.
Lihat Referensi Plugin untuk detail tentang cara membuat plugin Anda sendiri.
credits
Aktifkan tampilan tautan “Built with Starlight” di footer situs Anda.