K's blog icon. Kamon

K's Blog

Workspace setups, Mac, life

Start Blog Using Hugo

Hugoを使ってBlogを始める手順

K

1 分で読めます

Hugoを使ってBlogをはじめてみる

自分のWEBサイトをもつことや、ブログを運営することなどこれっぽっちも興味なかったのですが、新型コロナの影響で自宅にいる時間が増えたのではじめてみようかなと思いました。

内容・ジャンルは様々です。

最初の一発目はどのようにBlogを運営するかについてつらつらと書こうと思います。

たくさんホスティングサービスはあるわけですが、Hugoを選択しました。 理由は、

  • 無料で始める
  • コンテンツはMarkdownで記述したい
  • オサレな感じなテーマ・テンプレートを簡単に選択・適用したい 自分で作るのはメンド
  • 静的サイトジェネレータ(Static Site Generator)を使ってみたかった

11tyとも思いましたが、11thのHP見て速攻ないなと。HugoのHPのほうがすぐに何ができるのかがわかりやすくスマートな印象をもったからです。 golangでできているので生成は早いに決まってますし。

使い方はHugoのQuick Startをみるのが早いのですが、ざっと手順を紹介したいと思います。

尚、以降の手順はMacでの手順となります。

大まかな流れ

  • goのインストール
  • hugoのインストール
  • サイト作成
  • テーマの追加
  • ローカルサーバーを起動してみる
  • 設定を変更する

goのインストール

anyenv, goenvをインストールします。 anyenvは、anyenvのgithubを参照すれば問題なくインストールできると思います。僕はbrewではなく、Manualでインストールしました。anyenvのインストールに加えてanyenv-updateのインストールもしておきます。 anyenvをインストールしてシェルを再起動したら、goenvのインストールは簡単です。

$ anyenv install goenv
$ exec $SHELL -l

goのバージョンは最新のstableをインストールします。

$ anyenv update
$ goenv install -l # リリース可能なバージョンを確認する。
$ goenv install 1.14.2 # 執筆時点での最新バージョン

anyenvのインストールで、eval $(anyenv init - zsh)を.zshrcなりなんなりに追記していると思いますが、この実行により、GOPATH環境変数が設定されます。 が、PATHに$GOPATH/binが含まれていないので、eval $(anyenv init - zsh)の後に、PATHに$GOPATH/binを追加しておきましょう。

# ~/.zshrc
export PATH="~/.anyenv/bin:$PATH"
eval "$(anyenv init - zsh)"
export PATH="$GOPATH/bin:$PATH"

Hugoのインストール

HugoホームページのInstall Hugoを参照してインストールします。僕はbrewを使用せずにgithubからcloneしインストールしました。

$ mkdir ~/src/github.com/gohugoio
$ cd ~/src/github.com/gohutoio
$ git clone https://github.com/gohugoio/hugo.git
$ cd hugo
$ go install --tags extended

サイト作成

HugoのQuick Startを参照しサイトを作成します。

$ cd ~/src/github.com/<自分のアカウント>
$ hugo new site blog

テーマの追加

Hugoのテーマ一覧からお好きなものを選びます。 一覧をみておわかりの通り、本Blogは、Hugo Future Imperfect Slimを使用させてもらっています。そのうち自分で作ろうかなと思いますが、デザインセンスはないので。多分つくらない。

$ cd blog
$ git init
$ git submodule https://github.com/pacollins/hugo-future-imperfect-slim.git

さくっと、テーマを適用して動かしたいのでテーマで用意されているサンプルサイトをコピーして適用してしまいます。

$ cp -r themes/hugo-future-imperfect-slim/exampleSite/* ./

ローカルサーバーを起動してみる

試しに、ローカルサーバーを起動してどのような見た目になるか確認します。

$ hugo server

http://localhost:1313 にアクセスするとご自分が採用したテーマのサンプルサイトが閲覧できるはずです。

設定を変更する

コンテンツを整理したり投稿していくのですがそのまえに、config.tomlを修正して、自分のBlog用の設定にします。

あとは、投稿を増やして静的サイト生成してどこかサーバーにデプロイしていく流れになりますが、githubでコンテンツ管理、マスターにマージしたらNetlifyにデプロイという流れにしようかなと思います。 githubでのコンテンツ管理は、ちゃんと運用していないのでなんとも言えないですが、

posts/ で投稿ブランチを、<br /> (design|arch)/<feature_title> でデザインやつくりをカスタマイズしていく感じかなと考えています。</p> <p>下書きは、iA Writeを試しています。emacsに戻るかもですが、iA WriterはiCloudで同期しているので、PC, iPad, iPhoneでデバイス横断で編集できるので草稿作成には向いていると思います。</p> <p>デザイナーの方やエンジニアの方はこういうのでブログを構築するのもありかなと思います。</p> </div> <footer> <ul class="stats"> <li class="categories"> <ul> <li><a class="article-category-link" href="https://blog.whizek.com/categories/tech">Tech</a></li> </ul> </li> <li class="tags"> <ul> <li><a class="article-category-link" href="https://blog.whizek.com/tags/hugo">Hugo</a></li> </ul> </li> </ul> </footer> </article> <div class="pagination"> <a href="/blog/home-work-environment/" class="button"><div class="next"><div>自宅の作業環境</div></div></a> </div> </main> <section id="site-sidebar"> <section id="recent-posts"> <header> <h1>最近の投稿</h1> </header> <article class="mini-post"> <section> <a href="/blog/hammerspoon/" class="image featured"> <img src="/" alt=""> </a> </section> <header> <h1><a href="/blog/hammerspoon/">Hammerspoonをつかう</a></h1> <time class="published" datetime="">2020-05-03</time> </header> </article> <article class="mini-post"> <section> <a href="/blog/terminal_shell/" class="image featured"> <img src="/img/2020/05/terminal.jpg" alt=""> </a> </section> <header> <h1><a href="/blog/terminal_shell/">Macのターミナル、シェル環境</a></h1> <time class="published" datetime="">2020-05-03</time> </header> </article> <article class="mini-post"> <section> <a href="/blog/kinesis_keycaps/" class="image featured"> <img src="/img/2020/05/kinesis_advantage2_chgkeycaps.jpeg" alt=""> </a> </section> <header> <h1><a href="/blog/kinesis_keycaps/">Kinesis Advantage 2 キーキャップ</a></h1> <time class="published" datetime="">2020-05-02</time> </header> </article> <article class="mini-post"> <section> <a href="/blog/pc-keyboards/" class="image featured"> <img src="/img/2020/05/space_saver.jpg" alt=""> </a> </section> <header> <h1><a href="/blog/pc-keyboards/">Pc Keyboards</a></h1> <time class="published" datetime="">2020-05-01</time> </header> </article> <article class="mini-post"> <section> <a href="/blog/home-work-environment/" class="image featured"> <img src="/img/2020/04/naturescapes.jpeg" alt=""> </a> </section> <header> <h1><a href="/blog/home-work-environment/">自宅の作業環境</a></h1> <time class="published" datetime="">2020-04-30</time> </header> </article> <footer> <a href="/blog/" class="button">続きを見る</a> </footer> </section> <section id="categories"> <header> <h1><a href="/categories">カテゴリー</a></h1> </header> <ul> <li> <a href="/categories/tech/">Tech<span class="count">4</span></a> <li> <a href="/categories/workspace/">Workspace<span class="count">1</span></a> <li> <a href="/categories/workspace/">workspace<span class="count">1</span></a> </li> </ul> </section> <section id="mini-bio"> <header> <h1>About</h1> </header> <p>K</p> <footer> <a href="/about" class="button">もっと知る</a> </footer> </section> </section> <footer id="site-footer"> <ul class="socnet-icons"> <li><a href="//github.com/whize" target="_blank" rel="noopener" title="GitHub" class="fab fa-github"></a></li> <li><a href="//instagram.com/whize__k" target="_blank" rel="noopener" title="Instagram" class="fab fa-instagram"></a></li> <li><a href="//twitter.com/whize_k" target="_blank" rel="noopener" title="Twitter" class="fab fa-twitter"></a></li> <li><a href="//pinterest.com/whize" target="_blank" rel="noopener" title="Pinterest" class="fab fa-pinterest-p"></a></li> </ul> <p class="copyright"> © 2020 K's Blog . <br> Theme: <a href='https://github.com/pacollins/hugo-future-imperfect-slim' target='_blank' rel='noopener'>Hugo Future Imperfect Slim</a><br>A <a href='https://html5up.net/future-imperfect' target='_blank' rel='noopener'>HTML5 UP port</a> | Powered by <a href='https://gohugo.io/' title='0.54.0' target='_blank' rel='noopener'>Hugo</a> </p> </footer> <a id="back-to-top" href="#" class="fas fa-arrow-up fa-2x"></a> <script src="/js/highlight.pack.js"></script> <script>hljs.initHighlightingOnLoad();</script><script src="/js/bundle.min.1bf18373a7475c755a961b32f67425a7fb007e6ee0b9d565ff0c73aa707ed4cd.js" integrity="sha256-G/GDc6dHXHValhsy9nQlp/sAfm7gudVl/wxzqnB+1M0="></script> <script src="/js/add-on.js"></script> <script type="application/javascript"> var doNotTrack = false; if (!doNotTrack) { window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date; ga('create', 'UA-154341466-1', 'auto'); ga('send', 'pageview'); } </script> <script async src='https://www.google-analytics.com/analytics.js'></script> </div> </body> </html>