ブログ作り直した
Table of Contents
Hugoで快適な執筆環境を整える話。
経緯
自宅鯖がお釈迦になった話
3年くらい前、自宅鯖でブログやってた頃はWordPress
を使ってブログを運営していた。
しかしある時バックアップに失敗(dd
の引数をミスった)、記事が全て吹き飛んだことがある。
この事件より少し前にOSイメージごとバックアップをとっていたので、全ての記事が吹き飛んだわけではないが、 WordPressの都合上記事データはDB上で管理されているので復旧が面倒 →そのまま放置する流れに。
どういう風の吹き回しか今になってようやく一念発起して、今後の運用が楽になるよう、そもそもの構成を変更した。という経緯。
技術選定
今の所自分がブログに対してMustに感じる要素として、
- 記事はMarkdownで書けること
- GitHub上でバージョン管理できること(DBや画像等バイナリはのっけたくない)
- 好きなエディタで書けること
があった。
Mustというほどでもないけど、
- 無料枠に限りのあるサービスにできる限り依存したくない
という願望もあった。
以上を踏まえて、以下のような構成にした。
構成
- hugo: go製の静的サイトジェネレータ
- nginx: webサーバ
- Github Actions: pushにフックしてbuild後、
public/
配下をラズパイにrsync
する - Raspberry Pi 3 Model B
蛇足だけど、 最近、半導体不足の影響でラズパイが全然手に入らないっぽい。そろそろラズパイ3の寿命も近いと思うので、 もう少しだけ頑張ってほしい
neovim
で記事を書いてpushするだけで勝手にデプロイしてくれるので、すごく快適。
SSGなので表示も速い。
問題点
navigation barの表示崩れ
利用しているHugoテーマhello-friendをスマホ実機(iOS)で確認したとき、 navbar右側のアイコンがPCと同様の表示になっていることに気づく。(本当はレスポンシブ対応していてほしい)
どうやら直近のcss→scss移行の際にデグレしてしまっていたらしい。
PRを送ったら、即日マージされたので解決。
テーマの追従が面倒
テーマはtheme
ディレクトリ配下にsubmoduleとして配置しているが、
本家リポジトリをforkして色々手を加えてしまっているので、本家のアップデートに追従するのが面倒。
一応本家masterマージをgithub actionsで日次で自動で行うワークアラウンドがあるらしいが、conflictしたら面倒なので没。
テーマに直接変更を加えず機能拡張がしたいけど、なにか良い方法はないものか。
これからやりたいこと
(すでに実装したものもあるが)これから徐々に機能を充実させていきたい
- 記事のサマリーが巨大なのでなんとかする
- RSSフィードをマシにする
- パーマリンク設定(記事名じゃなくて、ハッシュにしたい)
- SEO関連
- UML使えるようにする
- TeX記法で数式書けるようにする
- 生成されるリンクをデフォルトで別タブに
- コードブロックのファイル名表示&行ハイライト&差分表示ハイライト
- ReadingTimeのロジック見直し
- Tagsセクション作成
- 記事の全文検索をできるように
- Google AdSense登録
- asciidoc対応
- markdown内での単一改行が半角スペースになるのを回避したい
- →goldmarkのオプションで実現できるので、Hugo側の実装を待つ
- 追従する目次作る
- 各種shortcodes作る
- infoやwarning等の脚注
- ブログカード
- GitHubリポジトリのカード