My Profile & Blog GitHub X Zenn Qiita Wantedly note しずかな
2023-10-01

ブログ記事の作成にnote-cliを組み込む

tech

以下の記事で紹介しているnote-cliというCLIツールを自作しました。
もともとnoteの記事をzennみたいにローカルで執筆、管理したかったから作ったのだけどせっかくなのでこのブログの執筆にも組み込んでみた。
というだけの話です。

https://zenn.dev/jy8752/articles/bff01aa5e2fcda

note-cliをいろいろ改善する

noteの方はとりあえず、コマンド一発でmarkdownファイルが作成されることといっしょにアップロードする画像ファイルを一箇所で管理したかったのでディレクトリを作成するように作ってました。

.
└── article-A
      └── article-A.md
      └── <記事画像>.png
    article-B
      └── article-B.m
      └── <記事画像>.png

こういうイメージ。ただAstroで作ってるブログの方はsrc配下に

├── blog
│   ├── 2023-10-01.md
│   ├── 20230321.md
│   ├── 20230506.md
│   └── 20230719.md

こんな感じで置いてあるのでファイルだけ作って欲しい。あと、画像はいらない。

あと、画像生成用に組み込む記事のタイトルなどの情報をconfig.yamlというyamlファイルを配置して読み込んでいたけどほとんど仕事をしてなかったので廃止することにした。
代わりに記事のメタデータ的なものを読み込むようにした。これはAstroが既にやってるのでそちらにあわせるようになった。

---
title: "ブログ記事の作成にnote-cliを組み込む"
tags: ["tech"]
date: "2023-10-01"
author: "Junichi.Y"
---

こういう感じ。

で対応したのが以下のプルリク。

config.yamlの廃止
https://github.com/JY8752/note-cli/pull/10

オプションでディレクトリ作らなくした
https://github.com/JY8752/note-cli/pull/12

Taskfileの導入

Makefileを覚えてからはまってしまって何かとMakefileで何とかしようとしてた。
ただ、複雑なことをしようとすると急に学習コスト上がるし、何やってるのか全然わからんってなったうえに

https://qiita.com/schrosis/items/12b4361c528819d13901

こういう記事も出てたので次にMakefileを使いたくなったらTaskfileを使おうと思ってた。

ということで、Taskfileを導入。

ドキュメントがかなり豊富そうで全部読みこむ気概はなかったのでざっとみて指定のディレクトリでコマンドを実行するだけのタスクだけ定義した。

Taskfile.yaml
version: '3'

tasks:
  new:article:
    dir: $HOME/myapp/my-blog/astro-my-blog/src/content/blog
    cmds:
      - note-cli create article -a Junichi.Y --no-dir -t .
% task new:article

task: [new:article] note-cli create article -a Junichi.Y --no-dir -t .
Create file. 2023-10-01.md

% cat blog/2023-10-01.md 
---
title: ""
tags: []
date: "2023-10-01"
author: "Junichi.Y"
---

おわりに

毎回日付をファイル名にして手動でmarkdownファイルを作成してメタデータコピペしてみたいなことやってたのでかなり自動化はできた。
実際どうやって管理するのがいいのかわかんないけどまあそんなに更新しないし十分な環境にはなった。
のでなんか書きたくて書いただけの記事でした。
以上🐼