Bubo Reader は、独自のサーバーに導入できる超ミニマリストのフィード リーダー (RSS、Atom、JSON) です。Netlify は数ステップで、Glitch はさらに少ないステップで導入できます。このプロジェクトの目標は、カテゴリおよび Web サイトごとに整理されたフィードのコレクションからのリンクのリストを表示する Web ページを生成することです。それでおしまい。
この名前は、『タイタンの戦い』(1981 年)に登場するこの愚かなロボット フクロウにちなんで付けられました。
このプロジェクトについて詳しくは、私のブログをご覧ください。
npm install
実行して依存関係をインストールします。feeds.json
更新して、表示したいカテゴリとフィードへのリンクを含めます。npm run build:bubo
実行します。それでおしまい!これで、 public
フォルダー内のフィードの最新コンテンツへのリンクを含む静的ページが作成され、配信できるようになりました。
静的な部分:
conf/feeds.json
- カテゴリに分けられたフィード URL を含む JSON ファイル。config/template.html
- フィードの表示方法を変更できる Nunjucks テンプレート。これは好きなものに変更できます。以下を参照してください。public/style.css
- フィード出力のスタイルを設定する CSS ファイル。public/index.html
- Bubo の実行時に自動的に生成される HTML ファイル。エンジン:
src/index.ts
- Bubo の新しいバージョンを構築するときに実行する主要なスクリプト。フィードから最新のコンテンツを自動的に取得し、 public/index.html
に新しい静的ファイルを構築します。src/renderer.ts
— Nunjuck、テンプレートをロードし、受信フィード データの処理方法を理解するレンダラー。他のものをお好みですか?ここが変更する場所です!src/utilities.ts
— Bubo 用のさまざまな解析および正規化ユーティリティ。クリーンな状態を保つために隠されています。メインのindex.ts
ファイルには、フィードリクエストのバッチ処理とスロットリングを可能にする2つの値があります。
MAX_CONNECTIONS
バッチで一度に実行できるリクエストの最大数を指定します。DELAY_MS
各バッチ間の遅延時間の量を指定します。 MAX_CONNECTIONS
がInfinity
に設定されているため、デフォルト構成ではバッチ処理やスロットルは行われません。 Bubo を 1 秒ごとに 1 つのフィードのみを取得するように変更したい場合は、これらの値を次のように設定できます。
const MAX_CONNECTIONS = 1 ;
const DELAY_MS = 1000 ;
2.5 秒ごとに 10 件の同時リクエストに制限したい場合は、次のように設定できます。
const MAX_CONNECTIONS = 10 ;
const DELAY_MS = 2500 ;
実際には、 MAX_CONNECTIONS
Infinity
に設定したままにしても実際に問題に遭遇したことはありませんが、これは設計上の賢明な安全策のように感じられます。
最も簡単な方法は、Glitch でプロジェクトをリミックスすることです: https://glitch.com/edit/#!/bubo-rss
そこから始めたい場合は、このリポジトリにglitch
ブランチもあります。
./config/feeds.json
ファイル内のフィードをいくつか変更するだけで準備完了です。スタイルまたはテンプレートを変更したい場合は、 ./public/style.css
ファイルまたは./config/template.html
ファイルをそれぞれ変更できます。
config/feeds.json
を編集してフィードとカテゴリを管理しますデプロイ設定はnetlify.toml
ファイルから自動的にインポートされます。確認するだけで準備完了です。
フィードを最新の状態に保つには、Netlify サイトのビルド フックをセットアップし、別のサービスを使用して頻繁に ping を実行し、再構築をトリガーします。次のことを検討することをお勧めします。
すでに Linux を実行しているサーバーがあり、コマンドラインの経験がある場合は、cron ジョブをセットアップする方が簡単かもしれません。
ここでライブデモをご覧いただけます:
これが役立つと思われた場合は、私またはこのプロジェクトのスポンサーになることを検討してください。
これを独自のサーバーで実行したい場合は、これらのアフィリエイト リンクのいずれかを使用して、Linode、Digital Ocean、または Vultr でマイクロ インスタンスをセットアップすることを検討してください。
Bubo Reader を使用している Web サイトをいくつか紹介します。
紹介してほしい方はぜひシェアしてください!