記事同士を[[パス]]で繋ぐ。複数記事の管理を自動化する「タイトル辞書」の構築

5 分で読めます

目次

ブログでテクニカルな記事を複数書いていると、必ず直面する問題があります。それは 「記事間の相互リンク管理」 です。

特にBloggerのようなプラットフォームでは、記事を「公開」するまで正式なURL(パーマリンク)が確定しません。そのため、「前回の記事(これ)へのリンクを今回の記事(それ)に貼りたい」と思ったとき、一度公開してURLを取得し、手動でコピペして回り、さらにタイトルを変えたらリンクミスに怯える……という、極めて「人間がやるべきではない不毛な作業」が発生してしまいます。

今回は、この摩擦を根本から解決するために構築した 「タイトル辞書」「自動リンク解決」 の仕組みについてまとめます。

背景:URLとタイトルの不一致に悩む

自動投稿システムを自作して快適になったとしても、記事同士の繋がりが増えるほど管理のコストは膨れ上がります。

  • 「詳細は〇〇の記事を参照」と書いたが、後からタイトルを変えてしまった。
  • 公開前の下書き同士でリンクを貼りたいが、URLがわからない。
  • 記事の公開順を入れ替えたら、リンクがすべてデッドリンクになった。

これらの問題は、「記事の内容」と「公開時のURLやタイトル」が、公開する瞬間まで紐付いていない ことから生じます。

解決策:中央集権的な「タイトル辞書」

この「情報のズレ」を解消するために、ローカル環境に titles.yaml という名前の「タイトル辞書」を導入しました。

このファイルは、記事のローカルパス(例:2512/00003)をキーとして、以下の情報を一括管理します。

titles.yamlの構造

記事パスとIDを紐付けるタイトル辞書の管理画面

  • ID: APIから発行された公開先の一意なID
  • Title: その記事の最新タイトル
  • URL: 下書き予約、または公開済みの確定URL

重要なのは、「投稿スクリプトが動くたびに、この辞書を自動でメンテする」 という点です。人間がこのYAMLを手で書く必要はありません。

[[パス]]で繋ぐ、リンクの抽象化

執筆者は、Markdownの中でURLのことは一切考えません。ただ、リンクしたい記事の 「ローカルでの識別パス」 を二重括弧で囲むだけです。

詳細は [[2512/00003]] を参照。

この状態で「公開」コマンドを実行すると、システムが以下のフローを処理します。

  1. Markdownの変換時に [[...]] という記法を探し出す。
  2. 辞書(titles.yaml)から、該当するパスの「最新タイトル」と「確定URL」を引いてくる。
  3. 自動的にHTMLの <a> タグ( <a href="確定URL">最新タイトル</a> )に置換して、ブログへアップロードする。

メリット:公開フローの「摩擦ゼロ」化

この仕組みがもたらす最大の恩恵は、「まだ公開されていない記事」に対しても自信を持ってリンクを貼れる ということです。

まず、書きたい記事をすべて下書きとしてシステムに登録します。この時点で辞書にIDとタイトルが溜まります。あとは記事を書き、必要な場所でパスを指定してリンクを貼るだけです。

順次「公開」ボタンを押していけば、その瞬間に最新のURLが辞書に刻まれ、次に公開される記事のリンクは自動的にそのURLを指すようになります。URLのコピペという作業自体が、執筆フローから完全に消滅しました。

まとめ

リンク管理という単純作業をプログラムに任せることで、執筆者の脳内リソースを「内容の構成」だけに集中させることができます。

独自の辞書を持つことは、単なるブログを、相互に参照し合う強固な「知識のネットワーク(Wiki)」へと進化させます。道具を自分に合わせて研ぎ澄ますことで、執筆という行為から重力を取り除いていく。これが私の理想とする執筆環境の姿です。

コメント

コメントは無効になっています。