g00ceyの技術ブログ

ブログをHUGOに切り替える

目次

Hugo

HUGO

goで書かれたCMS的なもの、markdownでブログがかけて、書いたものは、すべて静的なHTMLに変換されて出力されます。

導入方法

環境周り

  • サーバー環境
    • Raspberry Pi zero
  • MW
    • nginx
    • HUGO

MW周りのセットアップ

nginx

sudo apt install nginx

超簡単

Anyenv

何故か、aptで入るHUGOは動かなかったので以下の通りanyenvからインストールする。
GitHub - anyenv/anyenv: All in one for **env

go

anyenv install goenv
goenv install 1.12.4

HUGO

ようやくインストールできるね。
GitHub - gohugoio/hugo: The world’s fastest framework for building websites.
基本的には公式のmanual インストールに従う。

mkdir $HOME/src
cd $HOME/src
git clone https://github.com/gohugoio/hugo.git
cd hugo
go install

実際に投稿するまで

サイトを作るまで

下記のQuick Startまで行おう Quick Start | Hugo

投稿する

hugo new posts/filename.md

これで記事が一つ作成される。

確認する

そして、

hugo server -D --buildDrafts --watch

このあとにブラウザでhugo でアクセスするとアクセス可能。
別のサーバーで実行している場合は以下の通り

hugo server -D -b domain --bind ip --buildDrafts --watch

hugoは超軽いので、作業マシンに入れておくのが吉かも。
出先で文書を作成して、ファイルを収集して配置することも可能だし、作業性が良い。(無駄に何度もブログサイトに更新かけないでいいので、結果的にデータを送信する頻度が減る)

公開する

hugo serverで公開しても良いのだけど、nginxがあるのだし速度早そうなnginxに任せたいので以下のようなスクリプトを作成

#!/bin/bash
sudo chown -R luna:luna /var/www/html/tluna-work
cd /mnt/Src/tluna-work
git pull
hugo --config=/mnt/Src/tluna-work/config.toml -s /mnt/Src/tluna-work -d /var/www/html/tluna-work/ -b http://work-blog.tluna.ga
sudo chown -R www-data:www-data /var/www/html/tluna-work

nginx側の設定は以下の通り

server {
  #listen 443 ssl;
  listen 80;
  server_name work-blog.tluna.ga;
  client_max_body_size 20M;

  location / {
    root /var/www/html/tluna-work;
    autoindex on;
  }
}

スクリプトを実行すると、nginxのドキュメントルートに対して必要なファイルが吐き出されるっていう寸法。
で、hugoで書いた記事はgit管理するのがベストソリューションぽいので、それもRaspberry Piに構築したgitサーバーに対してpushしておく。

これで使い慣れたエディタで記事が書けるので、記事を書くためだけにブラウザとエディタを行ったり来たりする必要もない。
変にHTMLをガッツリ意識して記事を書く必要がない、差分管理もできる、簡易なブログサイトの出来上がりというわけ。

ただ、ブログサイトであったほうが良いなっていうものは上記だけでは完備できないので、そのへんはどこかをいじっていけば作れるんだろうな。

  • 月ごとの記事まとめ
  • タグ

その他で言えば、google analyticsとかを追加したらもうやることはないと思う。
何より、スタイルを切り替えるにしても、ブログサービス(ホスティングされているもの)って、すごい調査しないとできなかったりするので、これくらいスリムな環境が良いなと思って切り替えました。

最後に

HUGOは

  • スリムだよ
  • DB用意しなくてもいいよ
  • あまり便利機能はないよ
  • markdownでかけるよ
  • 軽いよ

Share

comments powered by Disqus