🖥

Mac限定ですまん。煩わしいZenn CLI操作を一気にまとめる

2020/10/24に公開

メロスは激怒した。必ず、かのnpx zenn previewを省かなければならぬと決意した。メロスにはnpmがわからぬ。メロスは、村の牧人である。笛を吹き、羊と遊んで暮して来た。けれども怠惰に対しては、人一倍に敏感であった。

概要

npmを普段使いでないとnpx zenn previewというコマンドが覚えられずにこの記事を自分のzenn用githubレポジトリから飛んで読んで「あー、これだー」ってなる。つまり操作的にはこう:

## 新しいターミナルを開く
$ cd Zenn
$ gh repo view --web
## マウスで[https://zenn.dev/zenn/articles/zenn-cli-guide]をクリック
## マウスで[プレビューする]をクリックする
$ npx zenn preview
## 新しいターミナルを(タブで)開く
$ npx zenn new:article --slug xxxxx

下書きも入れて、この記事で5本目のzenn?もう5回も同じこと繰り返してるの?それ自動化できないの?というのが動機です。

スクリプトが完成してから記事を作成し、topicsを決める段階で、明らかにこちらの方が便利だなぁというのを検索して見つけてしまったので執筆のテンションはガタ落ちなのだがあくまでもCLIで完結したい人のためのTIPSとして記事とスクリプトの方向性を大きく変えて生き残ることにしたので頼む、読んでくれ。ちなみに最初につけたtitleは「端折れメロス」でした。

スクリプト

全文はこちら

初めはShellScriptだけで書こうとしたんですけど、ターミナルのウィンドウをターミナルから開く方法がAppleScriptになることが分かり「マジかよ」ってなって[1]書き直しました。
プロトタイプは意外とすんなりできたのですが、バラバラとウィンドウポップアップさせるのが我慢できなくてタブで開けないか調べこの辺この辺を参考にして修正しました。

ま、その後はせっかく先行する事例があったので、ブラウザでプレビューを開く挙動とVSCodeを自動で開く挙動はパクる貰ったよね。

使い方

スクリプトが~/にあるものとして

## 新しいターミナルを開く
~/ > $ sh zennEdit.sh
~/Zenn > $ npx zenn new:article --slug xxxxx

全8工程が3工程になりました。やったね。

ToDo

  • ここまで来たら、ブラウザもVSCodeもスラグを指定して開きたいですね。
    スラグは12文字〜50文字という制限があるのでその辺を検査する機構[2]をAppleScriptで作らないといけないのが私的には時間切れ。また来週。
  • そしたら自動で$ git addできるのにね。
    $ npx zenn new:articleした後に自動的に$ git add articles/slug.mdしたい。本音いうとそれくらいはZenn CLIの方でやって欲しい
  • 頭の$ shのタイプを省き、コマンドとして実行したい
    実行可能なシェルスクリプトにしてパスを通せばいいのだろうけど、自分のホームディレクトリにパス通すってどうなのよ?って思って保留。
  • それともAppleScript純正にしちゃう
    今回、数時間いじってみて仕組みと文法はわかったので、Shellにこだわる理由がなくなったかも。ドックやファインダーからダブルクリックでターミナル立ち上がってはあとは記事書いてcommitpushするだけ、というところまで見えている。見えているけどそれ需要ある?

あれ?私CLIで完結するって言ってなかったっけ?使いやすいのはどっちだ?

脚注
  1. 当方、AppleScriptに触るのはこれが初めて ↩︎

  2. それはこちらにもない機能です ↩︎

Discussion