ブログ作成時に必要となるファイル等を自動で生成するようにした

最近、ちょっとした面倒事を自動化するようにしている流れで、GatsbyJSで作成したブログのテンプレを作成するシェルを雑に書いた。

1
2
3
4
5
6
7
8
function gen_blog_template() {
    local unixtimes="$(node -e "const date = new Date(); console.log(date, date.getTime());")"
    local unixtime="$(echo $unixtimes | cut -d ' ' -f1)"
    local unixtimestamp="$(echo $unixtimes | cut -d ' ' -f2)"
    local new_blog_directory="$(ghq root)/github.com/hiko1129/blog/content/blog/${unixtimestamp}"
    mkdir ${new_blog_directory}
    echo "---\ntitle: ""\ndate: ${unixtime}\ntags: []\n---" > "${new_blog_directory}/index.md"
}

Netflify CMS使うようにしたいけど、重い腰が上がらない。

下のJSみたいな感じで文字列の分割もっときれいに書きたいが、シェルは環境差あるからちゃんと覚える気になれない。
コマンドオプション違うのに出会うたびに嫌になる。

1
2
3
const [h, f] = 'hoge fuga'.split(' ')
h // "hoge"
f // "fuga"

メモ

1
local unixtimes="$(node -e "const date = new Date(); console.log(date, date.getTime());")"

nodeは-eでスクリプトを評価できるのでそれを利用してる。

1
local new_blog_directory="$(ghq root)/github.com/hiko1129/blog/content/blog/${unixtimestamp}"

ghq rootでghqのrootディレクトリが出力されるのでそれを利用して、新規ディレクトリのパスを作成している。

Built with Hugo
テーマ StackJimmy によって設計されています。