こんにちは、@24guchiaです。
題名の通り、 note というサービスから脱却しました。脱却のきっかけは下記です。
【炎上】新型コロナウイルスで経営難の宿から温泉権を買う男「コロナ君のおかげで安く買えそうでラッキー」発言で炎上 / note深津貴之氏も「いいないいな」と同調
あんまりアレな記事なのでちゃんと見なくていいのですが、 note の代表の思想やべえなと思い、脱却することにしました。
そもそも note 書いてないじゃんと思われるかもしれませんが、別アカウントで note に読書感想文をひたすら書きまくっていました(削除済み)。手頃な感じでサーバ管理しなくても記事が書けるので重宝してました。
note の炎上を経て、移行をしなければと考え、せっかくなので勉強を兼ねて静的サイトジェネレーター(Static Site Generator, 以下 SSG)を使って個人でもう一つ作ることにしました。SSG といえば、 JAMStack がデフォルトかと思うのですが、僕は Rust 製の zola を使いました。
Rust の勉強がしたいと考えてるので、zola を選定しました。 zola の選定理由はそれだけです。
zola
Rust を勉強したい理由は下記。
- PHP, JavaScript といったいわゆるスクリプト言語ばっかり書いてるので、幅を広げられそう
- Kotlin, Go あたりはそのうち仕事で使いそう
- Indeed で求人情報を調べたら、件数は少ないけど、給与レンジが高い
まあ正直、 Rust で処理を書かなかったので、 Rust の勉強に適しているかと言うと微妙で、 zola 自体をいじったりしないと勉強にはなりません。
目次
移行先
Netlify にカスタムドメインを設定してます。本( books )を読んで( Input )、読書感想文を書く( Output )ためのブログなので BOOKS I/O にしました。
Netlify 手軽だし、表示めちゃくちゃ速いし、無料で必要十分な機能提供しているし、このブログもそのうち Netlify に移行しようか悩むレベルの完成度。
note からの移行方法
note にはエクスポート機能がありません。そのため、全て手動でやりました。
コピーして、 md ファイルにペーストして、名前をつけて、画像を再度保存し直しと設定を行い、日付を付けています。
みんながみんな今すぐ note 移行する必要はないと思いますが、現状、エクスポートができません。僕は note からの移行を決意した時点で 19 記事しかなかったので、まだマシでしたが、 note に記事を上げている人は予めローカルなどに保存しておくのをおすすめします。
急にサ終したり、アカウントブロックされたりがないとは限りませんからね。
読書感想文を書く理由
本を読むだけだと知識として身につけづらいからです。
アウトプットを前提に読むと、この部分はまとめたいと考えながら読めたり、読み終わってすぐにハイライトした部分をざっと見直すので記憶に定着しやすいです。ググれば出てきますが、インプットだけでは記憶として定着しづらいことは証明されてます。
読むことでインプットを行い、そしゃくして、自分なりに再構築したアウトプットを行う。せっかく時間をかけて本を読むのであれば、効率よく勉強したいのでこういうふうにやっています。
構成
zola + Netlify + GitHub + Markdown
zola 以外は普通。 zola もちゃんと theme とかあるので、そこまで気合い入れずとも、きれいにできます。
GitHub + Markdown も普通ですね。このブログの記事も普段から Markdown で書いて、 Git 管理しているので、読書感想文用リポジトリを切るだけなので今までと書くフローは変わらず。 note は Markdown 対応してないので(2020年4月5日時点)、便利になりました。
テーマ
zola も選択可能なテーマがあります。僕は Ergo を使いました。ほぼノーコードで動きます。
テンプレートを少しだけいじりました。
- 各ページにソーシャルボタン
- アイキャッチ画像を出す
あとは目次も各ページに設定していて、ローカルだと動くけど、デプロイするとなぜか目次生成に必要な情報が渡ってこず、生成に失敗してます。情報が少なすぎて、原因不明で放置してます。
zola ハマりどころ
Netlify の記事はたくさんあるので取り上げませんが、 zola のハマりどころは下記でしょうか。
- 使ってる人が少なすぎて、検索しても情報が出てこない
- テーマが少ない
- テーマごとにディレクトリ構成が違いすぎて、設定変えるだけでは動かない
- Tera というテンプレートエンジンを覚えないといけない(これも情報少ない気がする)
特に困るのが、テーマごとにディレクトリ構成が違う点です。 config.toml に theme を選択し、 git clone すれば OK!というわけにはいかず、各テーマごとに沿ったディレクトリ構成に変更し、ファイルを配置し直さないと動きません。
また、テンプレートエンジンの Tera は名前が短く、ありふれた単語のため、ググラビリティが低いです。オンラインゲームの Tera が検索結果によく混じってきました。
改善したいこと
ディレクトリ整備
今は contents ディレクトリに md ファイルを全部入れてますが、記事が増えるとカオスになるのでディレクトリを分けようと考えてます。特に去年の 2019 年は 50 冊読んだので、ごちゃごちゃするのが目に見えていて身の毛がよだつし、同じ本を読み直すこともあるので、ファイル名が困ると思います。
ディレクトリは下記のようにするつもりです。
contents > yyyy > category > *.md
CircleCI と連携して、日本語校正を行う
読みやすい技術書を書く技術という本を買って読みましたが、各種校正ツールも CI を使うと便利そうですね。僕は一文が長くなりがちなので、機械的に指摘をもらって改善していきたい考えてます。
アフィリンクをいい感じに表示する
note で気に入っていたのがアフィリンクをいい感じに表示してくれることでした。
このぶっきらぼうなアフィリエイトリンクを https://amzn.to/3aLisWs
note だと下記のように表示してくれる。
上記のようなわかりやすく表示できるようにしたいなーと考えています。
ただこれ、どうやって実装してるんだろうか。貼られたリンクを参照して、画像や値段情報などをスクレイピングか API 実行している?けっこうめんどくさそう。
zola のメリット
CLI でかんたんに始められて、ホットウォッチしてくれるので変更をローカルで確認できる点はよかったです。ただ、上にも書いたローカルでは動く目次がなぜかデプロイすると表示されないため、若干信頼度としては低いかも。
後多分、これ zola だけのメリットじゃなくて、他の SSG でも同等のことができると思う。
zola のデメリット
やってる人が少ないので、詰まったらかなり大変。
あと、普通の JAMStack に従って素直に書いたほうが経歴的にはきれいだと思います。なんで zola なの?でツッコまれたときにちゃんと深く考えておかないと、かなり厳しい戦いになります。
まとめ
みんなも note やめたほうがいいよ。
ここまで書いておいてなんですが、 zola をあえて使う必要はないので、下記記事読んで参照して Gatsby とか使うほうがいいと思う。
7年間使ってきたWordPressを捨ててContentful+Gatsby+Netlifyにしたら爆速になったし経緯とか教訓とか語る