zennの記事作成を開始するコマンド作った

1 min read読了の目安(約800字

↓こんな内容のスクリプトでタイトルを引数に実行すると slag の入力になってそのままテンプレで新規mdファイルを作成して vim が開く的なやつ。
既存記事の絞り込み検索とか、コミットメッセージのテンプレ化とかも出来たらもう少し楽になりそう。

zenn-article.sh

#!/usr/bin/env bash
set -e
set -o pipefail
cd "$(dirname "$(readlink -s --canonicalize-existing "$(type -P ~/bin/zenn-article.sh "$0")" )" )"

die() {
  printf '%s\n' "$*"
  exit 1
}

[[ -z $* ]] && die "記事タイトルを指定してください"

title=$*
slag=$(perl -pe's/[^a-z0-9-]/ /g;s/\s+/-/g' <<< "${title,,}")
read -r -e -p "Article slag: " -i "${slag%-}" slag
file="./articles/$slag.md"
echo "File: $file"

if [[ ! -f $file ]]; then
  cat >"$file" <<EOF
---
title: "$title"
emoji: "🐸"
type: "tech" # tech: 技術記事 / idea: アイデア
topics: ["${slag//-/\",\ \"}"]
published: false
---
EOF
fi

vim "$file"

~/bin/zenn-article.sh にシンボリックリンクを作っておけばどこからでも記事が書ける。