関連記事表示機能を追加しました(GitHubのIssueによるブログ記事管理)

目次

なんとなくやってみたかったのでやりました。 まだ記事数が少ないので少ししか利用していない機能ですが、後々便利かも。

こんな感じ

記事の下部に表示されます。

「参照」、「記事」という単語がたくさん出てきてしまうので、見出しの文言にかなり悩みました。

Image

方法

remarkjs/remark-githubがMarkdownからIssueのリンク形式の文字列を探すロジックを利用して、参照しているIssue番号を取得しています。 これを全てのIssueに対して実行し、参照関係をまとめて、それを元に表示する記事を決めます。

GitHubのAPIでIssueのタイムラインイベントを見て何から参照されたかを取得する事も出来ますが、参照の解除(Issueを後から編集して参照した部分を削除等)をした場合に対応するのが難しいのとAPIアクセスも発生してしまうので、Markdownを解析する方法にしました。

実際のコード https://github.com/waonpad/blog/blob/5d9320511516b0a9c27427e920af0829ad56d68f/src/lib/issue/reference.ts https://github.com/waonpad/blog/blob/5d9320511516b0a9c27427e920af0829ad56d68f/scripts/compute-issue-references.ts