簡単にHugoのブログポストのテンプレを生成するシェルスクリプトを作った

表題の通り。 いつもコマンドを忘れるので。 ちなみにデプロイもシェルスクリプトで書いてる。

hugoの記事作成

hugo new "path/to/article.md"

コレだけなのだが、記事ソースが配置されるcontent配下にpostと階層が有る場合、 hugo new "content/post/article.md"とやってしまう。

しかしcontent/content/path/to/article.mdに作られてしまう。

正しくはhugo new "post/article.md"だ。content除いておく必要が有る。

「久々にブログ書くか」という時(いつも)こうなる。しんどい。

shellscriptで生成を自動化

ということで自動化しよう。 shellscriptを書く。new_post.shと言う名前にした。

#!/bin/bash

echo -e "\033[0;32mCreating new post...\033[0m"

if [ $# -eq 1 ]; then
  title="_$1"
else
  title=""
fi

formatted_date=$(date "+%Y-%m-%d")

full_path="posts/${formatted_date}${title}.md" 

hugo new "$full_path"

vi "content/$full_path"

タイトルに日付を付けてエディタを起動するまで自動化した。

./new_post.sh title

./content/posts/2017-01-23_title.mdが生成されてviで開く。

これでブログ書き出しの障壁が小さくなった。もっと頻度を上げたい。

ちなみにbashのlintとしてshellcheckを入れてる。
さらにVimのWatchdogsに組み込んで使うと、非同期でチェックを行い、警告を出してくれて大変便利。
変な書き方すると怒ってくれて、自分のような半端者にはたいへん助かる。
使ってない人はぜひインストールしよう。