Bubo Reader adalah pembaca feed hiper-minimalis (RSS, Atom, JSON) yang dapat Anda terapkan di server Anda sendiri, Netlify dalam beberapa langkah atau Glitch dalam langkah yang lebih sedikit! Tujuan dari proyek ini adalah untuk menghasilkan halaman web yang menampilkan daftar link dari kumpulan feed yang disusun berdasarkan kategori dan situs web. Itu saja.
Namanya diambil dari robot burung hantu konyol dari Clash of the Titans (1981).
Anda dapat membaca lebih lanjut tentang proyek ini di blog saya:
npm install
untuk menginstal dependensi.feeds.json
untuk menyertakan kategori dan tautan ke feed yang ingin Anda lihat.npm run build:bubo
Itu saja! Anda sekarang seharusnya memiliki halaman statis dengan link ke konten terbaru dari feed Anda di folder public
, siap ditayangkan.
Potongan statis:
conf/feeds.json
- file JSON yang berisi URL feed Anda dipisahkan ke dalam kategori.config/template.html
- templat Nunjucks yang memungkinkan Anda mengubah cara feed ditampilkan. Ini dapat diubah ke apa pun yang Anda suka— lihat di bawah.public/style.css
- file CSS untuk mengatur gaya keluaran feed Anda.public/index.html
- File HTML yang dihasilkan secara otomatis saat Bubo dijalankan.Mesin:
src/index.ts
- Skrip utama yang Anda jalankan saat ingin membuat Bubo versi baru. Ini akan secara otomatis mengambil konten terbaru dari feed Anda dan membuat file statis baru di public/index.html
.src/renderer.ts
— Penyaji yang memuat Nunjucks, templatnya, dan memahami cara memproses data umpan yang masuk. Lebih suka yang lain? Ini adalah tempat untuk mengubahnya!src/utilities.ts
— Berbagai utilitas penguraian dan normalisasi untuk Bubo, disembunyikan untuk mencoba dan menjaga semuanya tetap bersih. Dalam file index.ts
utama Anda akan menemukan dua nilai yang memungkinkan Anda mengelompokkan dan membatasi permintaan feed Anda:
MAX_CONNECTIONS
menentukan jumlah maksimum permintaan yang dapat dilakukan suatu batch sekaligus.DELAY_MS
menentukan jumlah waktu tunda antara setiap batch. Konfigurasi defaultnya adalah tanpa batching atau throttling karena MAX_CONNECTIONS
disetel ke Infinity
. Jika Anda ingin mengubah Bubo agar hanya mengambil satu feed dalam satu waktu setiap detik, Anda dapat menyetel nilai berikut menjadi:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
Jika Anda ingin membatasi hingga 10 permintaan simultan setiap 2,5 detik, Anda dapat mengaturnya seperti ini:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
Dalam praktiknya, saya tidak pernah mengalami masalah jika MAX_CONNECTIONS
disetel ke Infinity
namun ini terasa seperti perlindungan yang masuk akal untuk desain.
Cara tercepat adalah dengan me-remix proyek di Glitch: https://glitch.com/edit/#!/bubo-rss
Ada juga cabang glitch
pada repo ini jika Anda lebih memilih untuk memulai dari sana.
Ubah saja beberapa feed di file ./config/feeds.json
dan Anda sudah siap! Jika Anda ingin mengubah gaya atau templat, Anda dapat mengubah file ./public/style.css
atau file ./config/template.html
.
config/feeds.json
untuk mengelola feed dan kategori Anda Pengaturan penerapan akan secara otomatis diimpor dari file netlify.toml
. Yang perlu Anda lakukan hanyalah mengonfirmasi dan Anda siap berangkat!
Agar feed Anda selalu terbarui, Anda sebaiknya menyiapkan Build Hook untuk situs Netlify Anda dan menggunakan layanan lain untuk melakukan ping sesering mungkin guna memicu pembangunan kembali. Saya sarankan untuk melihat ke dalam:
Jika Anda sudah memiliki server yang menjalankan Linux dan memiliki pengalaman baris perintah, mungkin lebih mudah untuk menyiapkan tugas cron.
Anda dapat melihat demo langsung di sini:
Jika menurut Anda ini berguna, harap pertimbangkan untuk mensponsori saya atau proyek ini.
Jika Anda lebih suka menjalankan ini di server Anda sendiri, harap pertimbangkan untuk menggunakan salah satu tautan afiliasi ini untuk menyiapkan instance mikro di Linode, Digital Ocean, atau Vultr.
Berikut beberapa situs web yang menggunakan Bubo Reader:
Silakan bagikan jika Anda ingin ditampilkan!