#thebossblog

ブログを Gatsby で作り直し&独自ドメイン化

February 16, 2018

これまで HexoGitHub Pages でブログを書いていたが、 GatsbyNetlify で作り直した。

Gatsby は Hexo と同じく静的サイトジェネレータなんだけど、 React ベースなので学ぶのに丁度よい。あと Jekyll, Hugo, Hexo に次いで人気 らしい。

ホスティングはカスタムドメインと SSL が無料で使える Netlify を使った。

ちなみに Hexo のつらみとして、ググって出てくる情報が中国語のものが多い、 GitHub 上で 脆弱性警告が表示される (static なファイルを出力する分には影響を受けることはないようだが) 、などがあった。

今はまだテンプレートそのままで、 Mastodon シェアボタンがなくなっていたり、タグやカテゴリが表示されなかったりするが、追って対応する。この記事では、移行作業のメモを記録する。

初期作成

gatsby-starter-blog を fork し、設定変更を行う。

フォーマット修正

記事の移行はいくつかあるが、一括で行えるところはシェルで直し、あとは表示確認しながらちまちま手で直した。このシェルスクリプトは以下を行う。

  • ディレクトリ構成の変更

    • 変更前: 記事名.md
    • 変更後: yyyy/MM/dd/記事名/index.md
  • date のフォーマット変更

    • 変更前: date: 2017-10-19 00:10:27
    • 変更後: date: "2017-10-19T00:10:27+0900"
#!/bin/bash

for f in *.md; do
  DATETIME=$(grep '^date:' $f | awk '{print $2,$3}')
  DATE=${DATETIME:0:10}
  TIME=${DATETIME:11}

  TITLE=${f:0:-3}
  YEAR=${DATE:0:4}
  MON=${DATE:5:2}
  DAY=${DATE:8}

  ENTRY_DIR=$YEAR/$MON/$DAY/$TITLE

  GATSBY_TS=${YEAR}-${MON}-${DAY}T${TIME}+0900
  ruby -i.bk -pe "gsub /^date:.+/, 'date: \"$GATSBY_TS\"'" $f

  mkdir -p $ENTRY_DIR
  mv $f $ENTRY_DIR/index.md

  diff -u $f.bk $ENTRY_DIR/index.md
done

以下の記事も参考にした。

あと前のブログからリダイレクトさせたいんだけど、 GitHub Pages では .htaccess 的なあれが使えず、 Jekyll のリダイレクトプラグイン使えとのことで、めんどい。まだやってない。


THE BOSS

THE BOSS
Mastodon で活動しています。