Hello Hugo!

Tags: Hugo

hugo

新たにHugoでブログを始めることにした。はたして何度目のブログになるのかな。今度こそ継続させたいとは思うものの、どうなることやら。

ブログ遍歴

今まで何度もブログを始めては、だんだんやる気がなくなってやめるのを繰り返していた。振り返ってみるとこんなところか。

  • blosxom
    • ブログを最初に書き始めた時に使ったのはblosxomというPerl製のツールで、これも静的生成ツールだった。当時ホスティングに使っていたサーバーではCGIも動くしDBも使えたので、別に動的生成のツールでもよかったけど、分かりやすさと手離れの良さを重視してこれに決めたような記憶が。
    • 記憶が曖昧だけど、プラグインを入れてWiki記法で書けるようにしていたはず。
    • しばらく書かない時期が続いた後、再開しようと思ったけど、記事の出力方法や公開方法を忘れてしまい、止めてしまったのではなかったかな……。
  • iKnow!の日記機能
    • かつて英語学習サイトのiKnowでは自前のSNSサービスを用意していて、そこの日記機能を使って何かしらの文章を(時には英語で)書いていた時期があった。
    • たしかそのサイトではTextileをベースに独自拡張を入れたような記法を採用していたはず。“はず”、というのは、サイト内には日記機能についての詳しい説明が用意されておらず、どんな記法がサポートされているのか明確に文書化されていなかったため。
    • Textileは表現力が高くていろいろできるものの、それが災いしてか普通の文章中に出てくる記号や表記がTextileの記法とかち合うことも多く、思い通りに制御するのに苦労した覚えがある。
  • Blogger
    • 前述のiKnowが運営方針をがらっと変更した結果、SNS的要素が撤廃されてしまい、日記機能もなくなってしまった。当時はGoogleのサービスをメインで利用していたので、とりあえずBloggerを使うことに。
    • しかしながら、当時の(今も?)Bloggerは軽量マークアップ言語の類をサポートしておらず、いろいろ横車を押して、はてな記法だかなんだったかを使って投稿できるようにした記憶が。
    • こういうふうに、投稿する際にちょっとした手間を要するようなワークフローにしてしまうと、少し間が空いた後に再開しようとする際に、やり方を思い出せずにそのままフェードアウトすることになりがち。
  • Tumblr
    • Markdownをサポートしていることと、気軽に書けそうなところを重視して、Tumblrを選択。
    • 確かにちょっとした(かつ140文字には収まらない)ことをさらっと書くのにはいいけど、ある程度まとまったブログの記事を書く場としては「なんか違う」感を常に感じていた。

今回ブログを再開するにあたってHugoを選んだ理由だが、実のところ「なんとなく流行ってるなー」くらいの軽い気持ちだったりする。ただ、BloggerやTumblr等の外部サービスを使っていた頃も、自分のPCでファイルに下書きした上で投稿画面のフォームに貼り付けてポストしていたわけで、だったら最初からローカル側でリソースをすべて管理する静的生成ツールに回帰するのもいいかな、といった気分もあった。

Hugoを触ってみての印象

「速い」という話は事前に聞いていて、使う前はさほど重要とは思っていなかったものの、これがLiveReloadと組み合わさるとかなりの威力を発揮すると感じた。Hugoにはlocalhostで動くWebサーバー機能があって、生成したサイトをローカルで確認できるが、この場合ローカルファイルの更新を検知して自動的にリロードされるようになっている。エディタ上でテキストをセーブして1秒後にはブラウザの画面に反映される、というのは、実際に体感してみるとインパクトが強い。単に「速いから快適」というレベルの話ではなく、速さによってユーザー体験が質的に向上している感じ。公式サイトにこんなことを書いているのは伊達ではない。

Hugo may not be the first static site generator to utilize LiveReload technology, but it’s the first to do it right.

The combination of Hugo’s insane build speed and LiveReload make crafting your content pure joy. Virtually instantly after you hit save your rebuilt content will appear in your browser.

当初はブログ再開を機にMarkdownプレビュー機能のあるエディタでも導入しようかと思っていたけれども、少なくともこのブログの記事を書くためには必要なさそうかなあ。いつも使っているエディタといつも使っているブラウザで十分っぽい。

ちょっと困っているのは、Tumblrでは使えたMarkdownの拡張機能が一部使えない点。上のリストは、本当は定義リスト(<dl><dt><dd>)を使いたかったところではある。Hugo内部で使っているMarkdownパーサーの設定を変えるとか、あるいは差し替えることとかはできるのかな。後で調べておかないと。

あとは、見出し要素に自動でidが振られるのはいいんだけど、その属性値が「見出し文字列をUTF-8でそのまま + : + md5文字列」というのは個人的にはちょっときつい。HTML5からはid属性値の制限がほとんど取っ払われたらしいので、日本語文字列が混じってもvalidなんでしょうけど、URLの一部にもなる文字列なのでもう少し穏やかな感じにしたい。これも調べておかないと。