ブログ始め

Share on:

Hugoでブログ書くためにはこんな感じで書く必要があって。日付設定するのも、タグコピペするのも、draftを変更するのも面倒だよね。ということで下記スクリプトを作成。これらを~/bin/ に置いて利用することに。

  • 新記事雛形作成するスクリプト: new_blog.sh
  • view確認するスクリプト: view_blog.sh
  • hugo server落とすスクリプト: kill_hugo.sh

new_blog.shの方は、(1) 事前にhugoのcloneリポジトリを用意しておく、(2) gsedを使う、(3)エディタはAtom、という方針で。こんな感じ。

 1#!/bin/sh
 2
 3git_clone=${HOME}'/GIT-clone/ie-web-tnal/'
 4pushd ${git_clone}
 5category="afterhugo"
 6basename=`date "+%Y%m%d"`
 7filename=${basename}.md
 8hugo new ${category}/${filename}
 9gsed -i -e "3atags: [日記]" content/${category}/${filename}
10gsed -i -e "s/true/false/" content/${category}/${filename}
11open -a atom content/${category}/${filename}
12popd

これで記事編集して保存したら、view_blog.shで確認。サーバをバックグラウンド実行させて、コンテンツ生成されるのを待ってからopen。

1#!/bin/sh
2
3git_clone=${HOME}'/GIT-clone/ie-web-tnal/'
4pushd ${git_clone}
5hugo server &
6sleep 10
7open http://localhost:1313/tnal/
8popd

問題なければ kill_hugo.sh でサーバを落とす。ps, grep でジョブ確認して、cutでid取得。取得結果に応じてkill実行。

1#!/bin/sh
2process_id=`ps x | grep "hugo server" | grep -v grep | cut -f1 -d" "`
3if [ -z "${process_id}" ]; then
4    echo "dosn't work hugo server"
5else
6    kill ${process_id}
7fi

この後git add, commit, pushするんだけど、その手前だけでもこれだけあるのでそこを自動化するだけでも便利だな。