🎍

Zenn の新居に置きたい Makefile

2020/09/20に公開

Zenn いいですね.GitHub リポジトリでコンテンツ管理できるのは素晴しいです.

ということで,おじさんが新居にまず置くのは,Makefile 盆栽です.とあえずこんな感じ.

$ make preview     # ブラウザでプレビュー
$ make new         # article の雛型を作る
$ make edit        # 最近編集した article を EDITOR で開く
$ make publish     # GitHub に push
$ make init-ignore # .gitignore を作る
$ make init-zenn   # zenn CLI を install
$ make update-zenn # zenn CLI を update

make new でインタラクティブにタイトルを聞いて,日付をプレフィクスにして slug を作ってくれるようにしてみました.

Makefile を作るメリットは,細々とスクリプトを書くのに比べて 1つのファイルで完結することと,ターゲットをシェルが補完してくれるので make TAB でワークフローを思い出せることです.

################################################################
## Makefile for zenn articles -- Yoshinari Nomura

#  Command Guide:
#    https://zenn.dev/zenn/articles/zenn-cli-guide

preview:
	npx zenn preview

new:
	@DATE=$$(date +'%Y-%m-%d'); \
	 printf "Title: %s-" $$DATE; \
	 read TITLE; \
	 npx zenn new:article \
	  --slug $$(echo "$$DATE-$$TITLE" | tr 'A-Z ' 'a-z-') \
	  --title "$$TITLE"

edit:
	@FILE=$$(ls -1t articles/* | head -1); \
	${EDITOR} $$FILE

publish:
	git push origin master

init-ignore:
	@echo -n "Initializing .gitignore..."
	@IGNORE=https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore; \
	( \
	 echo "#"                     ; \
	 echo "# Added from $$IGNORE" ; \
	 echo "#"                     ; \
	 echo ""                      ; \
	 curl -s -L $$IGNORE          ; \
	 echo ""                      ; \
	 echo "################"      ; \
	 echo "# User Settings"       ; \
	 echo ""                      ; \
	 echo ".DS_Store"             ; \
	 echo "*~"                    ; \
	) > .gitignore
	@echo "Done."

init-zenn:
	npm init --yes
	npm install zenn-cli
	npx zenn init

update-zenn:
	npm install zenn-cli@latest

何か思い付いたら足して行こうと思います.

Discussion