Repositori ini berisi skrip dan aplikasi web untuk search.nixos.org
.
Ide awalnya adalah mengganti paket NixOS dan pencarian opsi yang mengambil satu file JSON yang berisi semua paket (atau opsi). Pendekatan ini bagus untuk pengaturannya yang sederhana, namun mulai menunjukkan masalahnya ketika jumlah paket semakin besar. Saya yakin kami dapat mengoptimalkannya lebih jauh, namun gagasan tentang apa yang bisa kami lakukan jika ada database di belakang membuat kami tergoda untuk tidak mencobanya.
Untuk backend kami menggunakan instance Elasticsearch yang disponsori oleh bonsai.io. Di frontend kami menggunakan Elm.
Kasus penggunaan yang ingin kami selesaikan adalah pengunjung ingin melihat apakah suatu paket ada atau mencari detail paket tertentu.
Seorang pengguna ingin menyatu ke satu hasil jika memungkinkan. Semakin banyak karakter yang ditambahkan ke permintaan pencarian, semakin sempit pencariannya dan kita akan menampilkan lebih sedikit hasil.
Yang sangat penting juga adalah peringkat hasil pencarian. Hal ini akan membawa hasil pencarian yang lebih relevan ke posisi teratas, karena seringkali sulit untuk menghasilkan permintaan pencarian yang hanya akan menampilkan satu item hasil.
Yang kurang penting, namun memberikan pengalaman pengguna yang lebih baik. adalah saran untuk menulis permintaan pencarian yang lebih baik. Fitur saran harus memandu pengguna untuk menulis pertanyaan yang lebih baik yang pada gilirannya akan memberikan hasil yang lebih baik.
Untuk mulai mengembangkan, buka terminal dan jalankan:
env --chdir=frontend nix develop -c yarn dev
Anda dapat mengarahkan browser Anda ke http://localhost:3000
dan mulai mengembangkan. Perubahan apa pun pada file sumber ( ./frontend/src
) akan memicu hot reload aplikasi.
main
, Tindakan GitHub dipicu.yarn prod
../dist
) kemudian disebarkan ke Netlify.Untuk menambahkan serpihan Anda sendiri ke indeks pencarian, edit ./flakes/manual.toml.
Jenis yang mungkin adalah github
, gitlab
, sourcehut
, dan git
(yang merupakan cadangan untuk semua jenis repositori git tetapi saat ini perlu menyetel kunci revisi secara manual).
Untuk menguji apakah flake Anda kompatibel dengan nix flake-info, Anda dapat mencoba menjalankan flake-info
terhadapnya
$ nix run github:nixos/nixos-search#flake-info -- flake <your flake handle>