CORU2 LABO
プロダクト一覧に戻る
relat11ve
Library

2026年8月18日

relat11ve

11tyの pathPrefix 書き換えを不要にするプラグイン

プロジェクト概要

Eleventy(11ty)で静的サイトをビルドする際、HTMLやCSS内のルート絶対パス(/assets/...など)を、出力されるディレクトリ階層に応じて自動的に正しい相対パス(../assets/...など)へ変換するプラグインです。 GitHub Pagesのサブディレクトリへのデプロイや、ローカルでの直接表示の際に発生するリンク切れのストレスを解消します。


主な特徴と機能

  1. パスの自動相対化: HTML属性(href, src, data-*)や、styleタグ内・style属性内の url() を自動的に相対パスへ変換します。
  2. コードブロック保護(マスキング): pre や code タグ内のサンプルコードが誤って書き換わらないよう、一時的に退避・復元する仕組みを搭載しています。
  3. ゼロ依存関係(No Dependencies): Cheerioなどの重いHTMLパーサーは使用せず、正規表現を用いてピンポイントで変換するため軽量で安全です。
  4. 手動無視機能: 例外的に変換したくない箇所は、専用のHTMLコメント(<!-- RELATIVE_IGNORE_START -->)で囲むことで保護できます。

開発に至った背景

従来、11tyで複数のテスト環境や本番環境へアップロードする際、その都度設定ファイルの pathPrefix を書き換えてビルドし直す必要がありました。 この pathPrefix の設定漏れによるリンク切れや古い環境へのパス参照を防ぐため、どこにデプロイしても、あるいは直接フォルダを開いても動く「ポータブルな静的サイト」をビルド時から実現したいと考え、本プラグインを開発しました。

ZENNにも投稿しました!

https://zenn.dev/coru2/articles/4cb4446a48998b