テンプレートに沿ったマークダウンファイルをコマンドから簡単に作成できるようにする
Published Dec 17, 2024
⋅
Updated Jan 13, 2025
前回の投稿に書いたように、このブログは Sylph というスターターを使って作成しています。
Sylph では、 .mdx
ファイルを使って投稿を作成し、次のようにフロントマターにタイトルや日付を記述します。
このように決まったテンプレートが必要な場合、手動でファイルを作成するのは面倒です。
なので、 npm スクリプトを追加し、コマンドで簡単に新規投稿を作成できるようにします。
スクリプト用のファイルを作成する
例えば、 /scripts/create-post.js
というファイルを作成します。
create-post.js
のコードは次のようになります。
ちなみにこのコードはほとんど AI に作成してもらいました。
上のコードはこのブログの構造に沿った内容になっていますが、 template
の内容や postDir
のパスを変更すれば他のプロジェクトでも使えるかと思います。
あと、ファイル作成後に Cursor で開くようにしていますが、その部分も適宜変更してください。
package.json
への追加
npm script として使えるように、 mdx:create
というスクリプトを package.json
に追加します。
実際に使ってみる
次のコマンドを実行します。引数としてファイル名を渡します。
ファイルが作成されると次のように出力されます。
そして、Cursor で作成したファイルが開きます。
作成されたファイルの内容は次のようになっています。
素晴らしい✨
スクリプトの概要
スクリプトの概要は次のようになっています。
process.argv[2]
でコマンドライン引数を取得しファイル名にする
- ファイル名を指定していない場合はエラーを出す
new Date().toISOString()
で現在時刻を ISO 形式で取得し、テンプレートに追加
path.join()
を使って filepath
を用意
fs.existsSync()
で同じファイルが既に存在する場合はエラーを出す
fs.writeFileSync()
でファイルを作成
exec()
を使って Cursor でファイルを開く
これで簡単に投稿を作成できるようになりました。
今回のような簡単なスクリプトであれば、一瞬で AI に作成してもらえるのでいい時代になりましたね。
余談ですが、この投稿は Cursor を使って作成しています。記事の内容もわりといい感じにサジェストされるので、投稿の作成がはかどりそうな予感です。
参考