Pencarian Situs
Secara default, situs Starlight termasuk pencarian teks lengkap yang didukung oleh Pagefind, yang merupakan alat pencarian cepat dan bandwidth rendah untuk situs statis.
Tidak diperlukan konfigurasi untuk mengaktifkan pencarian. Bangun dan terapkan situs Anda, kemudian gunakan bilah pencarian di header situs untuk menemukan konten.
Sembunyikan konten dalam hasil pencarian
Kecualikan sebuah halaman
Untuk mengecualikan sebuah halaman dari indeks pencarian Anda, tambahkan pagefind: false
ke frontmatter halaman:
---title: Konten yang Disembunyikan dari Pencarianpagefind: false---
Kecualikan bagian dari sebuah halaman
Pagefind akan mengabaikan konten di dalam elemen dengan atribut data-pagefind-ignore
.
Dalam contoh berikut, paragraf pertama akan ditampilkan dalam hasil pencarian, tetapi isi dari <div>
tidak akan:
---title: Halaman yang Diindeks Sebagian---
Teks ini akan ditemukan melalui pencarian.
<div data-pagefind-ignore>
Teks ini akan disembunyikan dari pencarian.
</div>
Penyedia pencarian alternatif
Algolia DocSearch
Jika Anda memiliki akses ke Algolia’s DocSearch program dan ingin menggunakannya sebagai gantinya Pagefind, Anda dapat menggunakan plugin DocSearch Starlight resmi.
-
Install
@astrojs/starlight-docsearch
:Terminal window npm install @astrojs/starlight-docsearchTerminal window pnpm add @astrojs/starlight-docsearchTerminal window yarn add @astrojs/starlight-docsearch -
Tambahkan DocSearch ke konfigurasi
plugins
Starlight Anda diastro.config.mjs
dan taruhappId
,apiKey
, andindexName
Algolia Anda:astro.config.mjs import { defineConfig } from 'astro/config';import starlight from '@astrojs/starlight';import starlightDocSearch from '@astrojs/starlight-docsearch';export default defineConfig({integrations: [starlight({title: 'Situs dengan DocSearch',plugins: [starlightDocSearch({appId: 'ID_APLIKASI_ANDA',apiKey: 'KUNCI_API_ANDA',indexName: 'NAMA_INDEX_ANDA',}),],}),],});
Dengan konfigurasi yang diperbarui ini, bilah pencarian di situs Anda sekarang akan membuka modal Algolia sebagai gantinya modal pencarian bawaan.
Menerjemahkan UI DocSearch
Secara default, DocSearch hanya menyediakan string UI dalam Bahasa Inggris. Tambahkan terjemahan UI modal untuk bahasa Anda menggunakan internationalization system bawaan Starlight.
-
Perluas definisi koleksi konten
i18n
Starlight dengan skema DocSearch disrc/content/config.ts
:src/content/config.ts import { defineCollection } from 'astro:content';import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';import { docSearchI18nSchema } from '@astrojs/starlight-docsearch/schema';export const collections = {docs: defineCollection({ schema: docsSchema() }),i18n: defineCollection({type: 'data',schema: i18nSchema({ extend: docSearchI18nSchema() }),}),}; -
Tambahkan terjemahan ke file JSON Anda di
src/content/i18n/
.Ini adalah default Bahasa Inggris yang digunakan oleh DocSearch:
src/content/i18n/en.json {"docsearch.searchBox.resetButtonTitle": "Clear the query","docsearch.searchBox.resetButtonAriaLabel": "Clear the query","docsearch.searchBox.cancelButtonText": "Cancel","docsearch.searchBox.cancelButtonAriaLabel": "Cancel","docsearch.startScreen.recentSearchesTitle": "Recent","docsearch.startScreen.noRecentSearchesText": "No recent searches","docsearch.startScreen.saveRecentSearchButtonTitle": "Save this search","docsearch.startScreen.removeRecentSearchButtonTitle": "Remove this search from history","docsearch.startScreen.favoriteSearchesTitle": "Favorite","docsearch.startScreen.removeFavoriteSearchButtonTitle": "Remove this search from favorites","docsearch.errorScreen.titleText": "Unable to fetch results","docsearch.errorScreen.helpText": "You might want to check your network connection.","docsearch.footer.selectText": "to select","docsearch.footer.selectKeyAriaLabel": "Enter key","docsearch.footer.navigateText": "to navigate","docsearch.footer.navigateUpKeyAriaLabel": "Arrow up","docsearch.footer.navigateDownKeyAriaLabel": "Arrow down","docsearch.footer.closeText": "to close","docsearch.footer.closeKeyAriaLabel": "Escape key","docsearch.footer.searchByText": "Search by","docsearch.noResultsScreen.noResultsText": "No results for","docsearch.noResultsScreen.suggestedQueryText": "Try searching for","docsearch.noResultsScreen.reportMissingResultsText": "Believe this query should return results?","docsearch.noResultsScreen.reportMissingResultsLinkText": "Let us know."}