Bubo Reader ist ein hyperminimalistischer Feed-Reader (RSS, Atom, JSON), den Sie auf Ihrem eigenen Server, Netlify in wenigen Schritten oder Glitch in noch weniger Schritten bereitstellen können! Das Ziel des Projekts besteht darin, eine Webseite zu erstellen, die eine Liste von Links aus einer Sammlung von Feeds anzeigt, die nach Kategorie und Website geordnet sind. Das ist es.
Es ist nach dieser albernen Robotereule aus Clash of the Titans (1981) benannt.
Mehr zu diesem Projekt können Sie auf meinem Blog lesen:
npm install
aus, um die Abhängigkeiten zu installieren.feeds.json
um Kategorien und Links zu Feeds aufzunehmen, die Sie sehen möchten.npm run build:bubo
Das ist es! Sie sollten jetzt eine statische Seite mit Links zu den neuesten Inhalten aus Ihren Feeds im public
Ordner haben, die bereit zur Bereitstellung ist.
Die statischen Stücke:
conf/feeds.json
– eine JSON-Datei, die Ihre Feed-URLs, unterteilt in Kategorien, enthält.config/template.html
– eine Nunjucks-Vorlage, mit der Sie ändern können, wie die Feeds angezeigt werden. Dies kann beliebig geändert werden – siehe unten.public/style.css
– eine CSS-Datei zur Stilisierung Ihrer Feed-Ausgabe.public/index.html
– Die HTML-Datei, die automatisch generiert wird, wenn Bubo ausgeführt wird.Der Motor:
src/index.ts
– Das primäre Skript, das Sie ausführen, wenn Sie eine neue Version von Bubo erstellen möchten. Es ruft automatisch die neuesten Inhalte aus Ihren Feeds ab und erstellt eine neue statische Datei unter public/index.html
.src/renderer.ts
– Der Renderer, der Nunjucks und die Vorlage lädt und versteht, wie die eingehenden Feed-Daten verarbeitet werden. Bevorzugen Sie etwas anderes? Dies ist der richtige Ort, um es zu ändern!src/utilities.ts
– Eine Vielzahl von Parsing- und Normalisierungsdienstprogrammen für Bubo, die versteckt sind, um die Dinge sauber zu halten. In der Hauptdatei index.ts
finden Sie zwei Werte, mit denen Sie Ihre Feed-Anfragen stapeln und drosseln können:
MAX_CONNECTIONS
bestimmt die maximale Anzahl von Anfragen, die ein Batch gleichzeitig ausführen kann.DELAY_MS
bestimmt die Verzögerungszeit zwischen den einzelnen Stapeln. Die Standardkonfiguration sieht keine Stapelverarbeitung oder Drosselung vor, da MAX_CONNECTIONS
auf Infinity
festgelegt ist. Wenn Sie Bubo so ändern möchten, dass jede Sekunde jeweils nur ein Feed abgerufen wird, können Sie die folgenden Werte festlegen:
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
Wenn Sie die Anzahl der gleichzeitigen Anfragen alle 2,5 Sekunden auf 10 beschränken möchten, können Sie dies wie folgt festlegen:
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
In der Praxis bin ich nie wirklich auf ein Problem gestoßen, wenn ich MAX_CONNECTIONS
auf Infinity
gesetzt habe, aber dies scheint eine sinnvolle Schutzmaßnahme für das Design zu sein.
Der schnellste Weg ist, das Projekt auf Glitch zu remixen: https://glitch.com/edit/#!/bubo-rss
Es gibt auch einen glitch
Zweig in diesem Repo, falls Sie lieber dort beginnen möchten.
Ändern Sie einfach einige Feeds in der Datei ./config/feeds.json
und schon sind Sie fertig! Wenn Sie den Stil oder die Vorlage ändern möchten, können Sie die Datei ./public/style.css
bzw. die Datei ./config/template.html
ändern.
config/feeds.json
um Ihre Feeds und Kategorien zu verwalten Die Bereitstellungseinstellungen sollten automatisch aus der Datei netlify.toml
importiert werden. Alles, was Sie tun müssen, ist zu bestätigen und schon kann es losgehen!
Um Ihre Feeds auf dem neuesten Stand zu halten, sollten Sie einen Build Hook für Ihre Netlify-Site einrichten und einen anderen Dienst verwenden, um sie von Zeit zu Zeit anzupingen, um eine Neuerstellung auszulösen. Ich würde vorschlagen, Folgendes zu untersuchen:
Wenn Sie bereits über einen Server verfügen, auf dem Linux ausgeführt wird, und über Erfahrung mit der Befehlszeile verfügen, ist es möglicherweise einfacher, einen Cron-Job einzurichten.
Live-Demos können Sie hier ansehen:
Wenn Sie dies nützlich fanden, denken Sie bitte darüber nach, mich oder dieses Projekt zu sponsern.
Wenn Sie dies lieber auf Ihrem eigenen Server ausführen möchten, ziehen Sie bitte die Verwendung eines dieser Affiliate-Links in Betracht, um eine Mikroinstanz auf Linode, Digital Ocean oder Vultr einzurichten.
Hier sind einige Websites, die Bubo Reader verwenden:
Bitte teilen Sie es mit, wenn Sie vorgestellt werden möchten!