Lewati ke konten
aithordev.my.id

Indeks Pencarian

Struktur berkas JSON yang dipakai pencarian instan, dan cara memanfaatkannya sendiri.

Di halaman ini

Lokasi

Indeks ditulis sebagai berkas statis agar dilayani langsung oleh server web:

Teks
https://situs.id/wp-content/uploads/gitdocs/search-index.json?v=8f3a1c9e2b40

Parameter v adalah sidik jari isi berkas β€” URL berubah setiap indeks diperbarui, sehingga aman disimpan di cache selamanya.

Bila folder uploads tidak dapat ditulisi, data yang sama disajikan melalui:

Teks
GET https://situs.id/wp-json/gitdocs/v1/search-index

Endpoint ini publik dan hanya memuat halaman yang sudah diterbitkan.

Struktur

JSON
{
    "generated": 1758300000,
    "spaces": {
        "panduan": { "n": "Panduan", "u": "/docs/panduan/", "i": "πŸ“˜" }
    },
    "records": [
        {
            "id": 22,
            "s": "panduan",
            "t": "Instalasi",
            "p": "Memulai",
            "u": "/docs/panduan/memulai/instalasi/",
            "d": "Persyaratan server dan cara memasang tema.",
            "c": "GitDocs tidak membutuhkan plugin page builder…",
            "i": "πŸ“¦"
        },
        {
            "id": 22,
            "s": "panduan",
            "t": "Instalasi",
            "h": "Persyaratan",
            "a": "persyaratan",
            "p": "Memulai",
            "u": "/docs/panduan/memulai/instalasi/#persyaratan",
            "c": "WordPress 6.5, PHP 8.0, permalink selain polos…"
        }
    ]
}

Kunci rekaman

Kunci Arti
id Id halaman (dipakai untuk mengelompokkan hasil)
s Slug space
t Judul halaman
h Judul bagian (hanya pada rekaman bagian)
a Anchor bagian
p Jalur remah roti (Induk β€Ί Anak)
u URL relatif
d Deskripsi halaman
c Isi teks (dipotong)
i Ikon halaman

Setiap halaman menghasilkan satu rekaman halaman plus satu rekaman per judul H2/H3, sehingga hasil pencarian dapat melompat langsung ke bagian yang relevan.

Nama kunci sengaja dipendekkan satu huruf. Pada dokumentasi berisi ratusan halaman, penghematan ini cukup berarti karena berkas diunduh utuh oleh peramban.

Memakai indeks di aplikasi lain

JavaScript
const response = await fetch( '/wp-content/uploads/gitdocs/search-index.json' );
const { records } = await response.json();

const hits = records.filter( ( record ) =>
    `${ record.t } ${ record.h || '' } ${ record.c || '' }`
        .toLowerCase()
        .includes( 'instalasi' )
);

Tema sendiri memakai Fuse.js dengan token search β€” lihat Pencarian & Navigasi di space Panduan.

Membangun ulang

Bash
wp gitdocs reindex

Indeks juga dibangun ulang otomatis setiap kali halaman disimpan, dipindahkan, dihapus, atau space diubah.

Menyaring isi indeks

PHP
<?php
/**
 * Mengeluarkan space "internal" dari indeks publik.
 */
add_filter( 'gitdocs_search_index_records', function ( array $records ): array {
    return array_values(
        array_filter( $records, static fn( array $record ): bool => 'internal' !== $record['s'] )
    );
} );

Indeks bersifat publik. Jangan menaruh dokumentasi rahasia di halaman yang diterbitkan β€” pakai status draf, kata sandi halaman, atau space yang Anda saring seperti contoh di atas.

Cari dokumentasi

    Ketik untuk mulai mencari.