2018」の1日目です。selfishly」です。今日は、個人ブログを移管した話をします。僕はこれまで、いくつかのブログサービスを利用してきた。BloggerQiitaはてなブログ今回、次の選択肢として、自分で管理しているWebサイト「nisshiee.org」下にブログを移管することにした。移管したのか「ブログを移管しました」というタイトルのアドベントカレンダーをわざわざ開いていただいた方は、おそらくなぜ移管したのかが気になると思う。いうところで大変申し訳無いが、そんなに大した理由はない。それを書かないと記事にならないので書く。「それはこのサービスでもよくない?」みたいな理由ばかりなので、ツッコミはナシで頼む。ブラウザのタブがくるくる回ってる時間が長い僕が書くブログはだいたいソフトウェアエンジニアリングに関する内容なので、何かを調べたい人がググって記事にたどり着くというケースが多いと考えている。自分の備忘録としての意味合いも兼ねて書いているので、自分で「そういえばブログに書いたなこれ」と思い立って過去記事を漁ったりしている。いうユースケースの場合、課題解決が最優先事項であり、「そのために必要な情報がこの記事に載っているのか」が、閲覧者にとってまず最初に重要な情報である。SERPsのリンクをクリックしてから記事表示後にスムーズにスクロールできるようになるまでの時間が最も大切であると考える。pushしたいえ?したいよね?w僕はブラウザのtextareaより普段使い慣れたキーボードショートカットで操れるエディタの方が良い。テスト勉強してると部屋の掃除したくなる的なやつアドベントカレンダーのネタ考えてたらブログ移管したくなっちゃったんだから仕方ない。ついでにブログ移管した話をアドベントカレンダーに書けて一石二鳥。構築したシステムWebpackでサイトを構築する全てのHTML、JS、CSSを生成するようにした。S3にアップロードし、CloudFront経由で配信するようにした。言いつつ、実はもともと「nisshiee.org」はそうなってたんだけど、以下の点を修正した。nodeを10.13.0に更新CircleCI1を2に更新webpack1を4に更新その他、npmパッケージを全体的に最新化TypeScriptを導入(ただのノリ。JSほぼ書いてないw)markdown-loaderの導入nodeを更新した事による大変さはほとんどなかった。ビルド環境をCircleCI1で動かしており、これをnode10で動かすのに一手間必要だった。そもそもCircleCI1は終了してしまうので2にしなきゃいけないという別の課題もあったので、CircleCI1+node10の手間をスキップしてCicleCI2+node10にした。記事の最後に貼ったwebpack1から4への更新は無理だったので諦めたw2年前に書いたwebpack.config.jsで何やってるかは多少覚えてたし読めばわかったので、webpackのドキュメントを読み直して、同じことをできるようにnpmパッケージを選定し直してwebpack.config.jsを書き直した。難しかったかと言われるとそんなでもなかったけど、他人に「簡単だよ」とは言えないかな。あとは、ブログの記事自体はMarkdownで書きたかったのでmarkdown-loaderを導入した。rendererをいじってビルド時highlightさせたり、headingのHTMLタグが<h3>から始まるようにしたりしている。画像の自動圧縮は、セルマーテナーサックスさんがiioptを開発する際に社内のデザイナーさんと協議して決めた圧縮率を採用させていただいた。「移管した理由」に速度だけはすごい真面目に理由として挙げたので、ちゃんと計測しよう。InsightsのPCページ計測結果がこちら。https://nisshiee.org/blog/2016/004/「インタラクティブになるまでの時間」で自サイトが他を圧倒できたので、ひとまず満足。ま、これはすごい技術を使っているわけではなく、不要なもの(特にブラウザ上で動くJS)をごっそり削ぎ落としているので、当たり前と言えば当たり前なのだが。書き心地もちろんエディタで書きながらプレビューをブラウザでリアルタイムで確認できる仕組みは構築済み。この記事を書いているときの様子ブログ記事もMarkdownで書けるし、コードもハイライトされていい感じ。デメリットがんばればできるだろうけど、今のところindexページの自動生成は実装しておらず、手で書いている。他にも大抵のブログサービスだとやってくれそうなカテゴリ別ページや年月別ページは作ってない。indexページもうちょっと楽に作りたいなぁという気持ちは少しある。GoogleBotにクロールしてもらわないといけないからindexページは必要だ。「記事の内容のコピーが並べられたindexページ」って要らなくない?って思ったりはしていて、模索中。先に述べたように、このブログはググってたどり着く場所なので、カテゴリページとか年月ページは要らないかなと思っている。まとめというわけで、テスト勉強中の部屋掃除的にブログを移管した話を書いた。言ってもまだ1記事しか書いてないので、しばらくこれで続けてみようと思う。config}nisshiee.orgTOPaboutblog。