RSSフィードが表示できるようになりました

前回の投稿から20日くらい経ってしまいましたが、ようやくSvelteKit製のサイト側にRSSフィードを表示することができるようになりました。

npmで見つけたfeed-extractorというパッケージを使ったらRSSフィード自体の取得は簡単にできたので、あとはページにどんな感じに表示するかを考えるだけだった気がします。

www.npmjs.com

SvelteKit側では$libに以下の2つのファイル(feed.js / feed.d.ts)を置いて、route側のブログ記事一覧のページから呼び出して使っています。

import { extract } from '@extractus/feed-extractor';


/** @type {(feed_url:string) => FeedList} */
export async function getFeedList(feed_url) {
    const result = await extract(feed_url);

    return result;
}
export type FeedItem = {
    id: string,
    title: string,
    link: string,
    description: string,
    published: string
}

export type FeedList = {
    title: string,
    link: string,
    description: string,
    generator: string,
    language: string,
    published: string,
    entries: FeedItem[]
}

export async function getFeedList(string: feed_url): FeedList;

とはいえサイト側はまだ他のコンテンツが揃っていないので、まずそっちを片付けないといけないかな。

このブログをはじめるにあたって

社内システムのマニュアルを静的サイトで起ち上げようという話が出た際にいくつかのSSG(Static SIte Generator: 静的サイトジェネレーター)を試してみたのですが、個人的に気に入ったのはSvelteKitでした。結局そのサイトはJekyllで作ることになったのですが、その時の経験を活かして自分のサイトをSvelteKitで作ってみることにしました。

SvelteKitを使った静的サイトを作るにあたり、当然ブログの記事もソース内のドキュメントとして扱うのが普通の考え方だとは思うのですが、割り切ってブログの部分は外部のブログサイトに作って、サイト側にはRSSフィードを使って更新情報だけを掲載していくのも一つの考え方なのではないかと思い始めました。

WordPressサイトに例えるなら、投稿の本体はブログサイトに置いて投稿一覧ページをRSSフィードから作り、固定ページはサイト内にマークダウンで書いたり外部サイトから取得したソースで図やグラフなどを作ってその中に埋め込んでみたりするといった感じです。

投稿本体のページもフィードから作れそうではありますが、そこはブログサイトにお任せしておきたいと考えています(当然そこには何の知名度もない自分のドメインに全部を置いておくよりは少しでも導線を繋いでおきたいという気持ちも正直あります)。

何はともあれ、しばらくは静的サイトの制作に関することがメインになると思いますが、その他にも何か投稿できればいいかなと考えています。