Bubo Reader เป็นโปรแกรมอ่านฟีดแบบไฮเปอร์มินิมอล (RSS, Atom, JSON) ที่คุณสามารถปรับใช้บนเซิร์ฟเวอร์ของคุณเอง Netlify ได้ในไม่กี่ขั้นตอน หรือ Glitch ในขั้นตอนที่น้อยลง! เป้าหมายของโครงการคือการสร้างหน้าเว็บที่แสดงรายการลิงก์จากคอลเลกชันฟีดที่จัดเรียงตามหมวดหมู่และเว็บไซต์ แค่นั้นแหละ.
ตั้งชื่อตามหุ่นยนต์นกฮูกจอมโง่จากเรื่อง Clash of the Titans (1981)
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับโครงการนี้ได้ในบล็อกของฉัน:
npm install เพื่อติดตั้งการขึ้นต่อกันfeeds.json เพื่อรวมหมวดหมู่และลิงก์ไปยังฟีดที่คุณต้องการดูnpm run build:bubo แค่นั้นแหละ! ตอนนี้คุณควรมีเพจแบบคงที่พร้อมลิงก์ไปยังเนื้อหาล่าสุดจากฟีดของคุณในโฟลเดอร์ public ที่พร้อมให้บริการ
ชิ้นส่วนคงที่:
conf/feeds.json - ไฟล์ JSON ที่มี URL ฟีดของคุณแยกเป็นหมวดหมู่config/template.html - เทมเพลต Nunjucks ที่ให้คุณเปลี่ยนวิธีการแสดงฟีด สิ่งนี้สามารถเปลี่ยนเป็นสิ่งอื่นที่คุณต้องการได้— ดูด้านล่างpublic/style.css - ไฟล์ CSS เพื่อปรับแต่งเอาต์พุตฟีดของคุณpublic/index.html - ไฟล์ HTML ที่ถูกสร้างขึ้นโดยอัตโนมัติเมื่อเรียกใช้ Buboเครื่องยนต์:
src/index.ts - สคริปต์หลักที่คุณเรียกใช้เมื่อคุณต้องการสร้าง Bubo เวอร์ชันใหม่ มันจะดึงเนื้อหาล่าสุดจากฟีดของคุณโดยอัตโนมัติและสร้างไฟล์คงที่ใหม่ที่ public/index.htmlsrc/renderer.ts — ตัวเรนเดอร์ที่โหลด Nunjucks ซึ่งเป็นเทมเพลตและเข้าใจวิธีการประมวลผลข้อมูลฟีดขาเข้า ชอบอย่างอื่นไหม? นี่คือสถานที่ที่จะเปลี่ยนมัน!src/utilities.ts — ยูทิลิตี้การแยกวิเคราะห์และการปรับมาตรฐานที่หลากหลายสำหรับ Bubo ซึ่งซ่อนไว้เพื่อพยายามรักษาความสะอาด ในไฟล์ index.ts หลัก คุณจะพบค่า 2 ค่าที่ช่วยให้คุณสามารถแบทช์และควบคุมคำขอฟีดของคุณได้:
MAX_CONNECTIONS กำหนดจำนวนคำขอสูงสุดที่แบตช์สามารถดำเนินการได้ในคราวเดียวDELAY_MS กำหนดจำนวนเวลาหน่วงระหว่างแต่ละชุด การกำหนดค่าเริ่มต้น ไม่มีการแบทช์หรือการควบคุมปริมาณ เนื่องจาก MAX_CONNECTIONS ถูกตั้งค่าเป็น Infinity หากคุณต้องการเปลี่ยน Bubo ให้ดึงข้อมูลเพียงหนึ่งฟีดต่อครั้งทุก ๆ วินาที คุณสามารถตั้งค่าเหล่านี้เป็น:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;หากคุณต้องการจำกัดสิ่งต่าง ๆ ไว้ที่ 10 คำขอพร้อมกันทุก ๆ 2.5 วินาที คุณสามารถตั้งค่าดังนี้:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ; ในทางปฏิบัติ ฉันไม่เคยประสบปัญหา เลยจริงๆ โดยปล่อยให้ MAX_CONNECTIONS ตั้งค่าเป็น Infinity แต่นี่ให้ความรู้สึกเหมือนเป็นการป้องกันที่สมเหตุสมผลในการออกแบบ
วิธีที่เร็วที่สุดคือการรีมิกซ์โปรเจ็กต์บน Glitch: https://glitch.com/edit/#!/bubo-rss
นอกจากนี้ยังมีข้อ glitch ใน repo นี้หากคุณต้องการเริ่มต้นที่นั่น
เพียงเปลี่ยนฟีดบางส่วนในไฟล์ ./config/feeds.json เท่านี้ก็เรียบร้อย! หากคุณต้องการแก้ไขสไตล์หรือเทมเพลต คุณสามารถเปลี่ยนไฟล์ ./public/style.css หรือไฟล์ ./config/template.html ตามลำดับ
config/feeds.json เพื่อจัดการฟีดและหมวดหมู่ของคุณ การตั้งค่าการปรับใช้ควรนำเข้าจากไฟล์ netlify.toml โดยอัตโนมัติ สิ่งที่คุณต้องทำคือยืนยันและคุณก็พร้อมที่จะไป!
เพื่อให้ฟีดของคุณอัปเดตอยู่เสมอ คุณจะต้องตั้งค่า Build Hook สำหรับไซต์ Netlify ของคุณและใช้บริการอื่นเพื่อ ping บ่อยครั้งเพื่อทริกเกอร์การสร้างใหม่ ฉันขอแนะนำให้ดู:
หากคุณมีเซิร์ฟเวอร์ที่ใช้ Linux อยู่แล้วและมีประสบการณ์เกี่ยวกับบรรทัดคำสั่ง การตั้งค่างาน cron อาจง่ายกว่า
คุณสามารถดูการสาธิตสดได้ที่นี่:
หากคุณพบว่าสิ่งนี้มีประโยชน์ โปรดพิจารณาสนับสนุนฉันหรือโครงการนี้
หากคุณต้องการเรียกใช้สิ่งนี้บนเซิร์ฟเวอร์ของคุณเอง โปรดพิจารณาใช้ลิงก์พันธมิตรลิงก์ใดลิงก์หนึ่งเหล่านี้เพื่อตั้งค่าอินสแตนซ์ขนาดเล็กบน Linode, Digital Ocean หรือ Vultr
นี่คือบางเว็บไซต์ที่ใช้ Bubo Reader:
กรุณาแบ่งปันหากคุณต้องการที่จะนำเสนอ!