東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

このブログをhttps化したぜ!


スポンサードリンク

やっとこのブログをhttps化しました。

混在コンテンツはなんとか無くせたと思うのですが、実際はどうなのかは若干不安です。

で、この記事はhttps化でのノウハウ等を記述しています。

はてなブログ用ツールでの対応は大変

以下のはてなブログ用ツールを使用して、混在コンテンツは事前に対応していましたが、それでも混在コンテンツの対応は手間がかかりました。数が多いのでチェックしたり、再確認したりと時間がかかったのです。

github.com

楽にするためにblogsyncを使った

もう少し楽に混在コンテンツに対応するため、以下のblogsyncというツールを活用しました。

nomusicnolife.hatenablog.com

blogsyncはローカルにファイルとして記事を持てて、gitを活用することができるのが便利です。ローカルで記事を更新して、はてなブログにPUSHするという使い方ができるのです。

blogsyncの使い方やノウハウを以下にメモします。

事前設定

ブログのURLはAPIキーなどを設定します。

blogsyncで記事を取得

以下のように記事をダウンロードします。

/.blogsync pull nomusicnolife.hatenablog.com

ダウンロードは記事数が多いと時間がかかります。そして、これは最後まで待つことが大事です。途中で「どうなっているかな?」と、ctrl+cで終了させたりすると記事がダウンロードされないので注意が必要です。

また、はてなブログ側で更新されると、差分のみがダウンロードされます。

gitで管理

以下のようにgitで管理すると便利です。というのも、一括で置換する場合の確認と、確認がNGだった場合の戻しが楽だからです。実際に、間違えて置換をしてしまい、戻すということが多かったので、gitに助けられたという実感があります。

gitの初期化です。

git init

私はすべてのファイルをgitの管理対象にしました。なので、git addの後はピリオドを指定して全てのファイルを対象にしました。

git add .

更新箇所の確認は以下です。

git diff

更新箇所の戻しは以下のコマンドです。

git chekout

文字列の置換

複数ファイルにまたがって文字列を置換したいため、以下のように確認してから、ファイルを更新しました。

sedによる文字列置換の確認

以下のようにsedで文字列置換を確認します。

find ./ -type f -name \*.md | xargs sed -n "s#http://nomusicnolife.hatenablog.com/#https://nomusicnolife.hatenablog.com/#pg"

sedの「-n」オプションで結果を表示します。

また、変更前文字列と変更後文字列を指定するセパレータは#を使用しました。というのも、URLにスラッシュがあり、これをエスケープすると見にくいと感じたためです。

さらに、pgと入れています。pは変更した箇所を表示するオプション、gは置換をファイルの最後まで実施するオプションです。

sedによる文字列置換の実行

確認できたら、以下のコマンドでファイルを変更します。

find ./ -type f -name \*.md | xargs sed -i "s#http://nomusicnolife.hatenablog.com/#https://nomusicnolife.hatenablog.com/#g"

確認するコマンドからの変更は「-i」と「p」をなくしたことです。

-iのオプションはファイル変換です。

また、pを無くすのは、pがあると変更後の文字列が2行出てくるのを避けるためです。

と、上記のような感じでhttps化をすすめていきました。