自分の投稿記事をRSSで集約するサイトを作った(Next.js)
noteやはてなブログ、Qiitaなど投稿する記事をどこかで1つにまとめられたら嬉しいなと思っていたところ catnoseさん がチーム個々人のテックブログをRSSで集約するサイトを作った(Next.js) を作ってくれました。
チーム向けのブログ集約サイトだったため、こちらをForkし、個人用の記事集約サイトになるようにしました。
RSSの登録
こちらに my-post-hub/author.ts 自分が使用しているサイトを記載します。
{
name: 'note',
userName: "shitake4_",
url: 'https://note.com/shitake4_',
rss: {
url: 'https://note.com/shitake4_/rss',
}
},
特定の記事を取り除きたい or 取り込みたい場合には、使用しているサイト毎に、正規表現で抽出可能です。
{
name: 'note',
userName: "shitake4_",
url: 'https://note.com/shitake4_',
rss: {
url: 'https://note.com/shitake4_/rss',
excludeUrlRegex: '',
includeUrlRegex: ''
}
},
SNSアイコンの表示数を増やす
my-post-hub/author.ts に記載すると、アイコンリンクがプロフィールの下に表示されるようにります。
my-post-hubのRSS取得
各サイトから集約した記事をまとめてRSSで配信できるようになっています。
- https://{domain}/feed.xml
- https://{domain}/feed.json
- https://{domain}/atom.xml
デプロイ
デモサイト はVercelでデプロイしましたが、私はGitHub Pagesを利用しています。
GitHub PagesへのデプロイはGitHub Actionsで行っており、こちらmy-post-hub/.github/workflows/nextjs.ymlをそのまま利用できます。
定期ビルド
表示する記事を更新するためには、ビルドが必要です。
こちらmy-post-hub/.github/workflows/nextjs.yml でpush時とcronで決まった時間にビルドするようになっています。
更新頻度を増やしたい場合などはこちらを変更してください。
リポジトリを作成する
shitake4/my-post-hubをテンプレートとしてリポジトリを作成することができます。
テンプレートからリポジトリを作成する - GitHub Docs 参考に <user>.github.io
リポジトリを作成してください。
Discussion