ここで書いていることはあくまで自分専用のものです。
AstroではGatsbyJSと比べてMarkdownファイルから見た画像の相対パスが違っていたり、Markdownファイルごとにlayoutファイルの指定が必要などの相違点がある。 そのためMarkdownファイルのfrontmatter書き換えが必須となる。
注意点として 以下の方法では改行コードが LF であるファイルのみが対象になる。
frontmatter の例
ここで扱うMarkdownはfrontmatter先頭がtitleになっていること前提です。
---title: ブログタイトルdate: featured: ./img/res.jpgフォルダ内の markdown ファイルの frontmatter の先頭行に layout をいれる
pcregrep は標準でインストールされていないのでインストールする
カレントディレクトリ内のすべてのファイルを置き換え対象かどうか検索し、 対象が変換された場合は置き換え後に。bakファイルを生成する。
pcregrep のオプション
-M 複数行対象検索-l 検索該当ファイルをリスト表示sed のオプション
GNU版sedでのみ可能。Linuxではデフォルトで入っているので大丈夫。
-z 複数行対象layouts を title の上に挿入する
| featured のパスから『.』を消す
GatsbyではMarkdownファイルのあるディレクトリからサブディレクトリやカレントディレクトリにある画像が読み出せたがAstroは基本publicフォルダにアクセスしてしまうためパスを書き換える必要がある。
コマンド
| 最後に
正常に書き換えがされたならば .bak ファイルを削除する。
