以下の記事で紹介しているnote-cli
というCLIツールを自作しました。
もともとnoteの記事をzennみたいにローカルで執筆、管理したかったから作ったのだけどせっかくなのでこのブログの執筆にも組み込んでみた。
というだけの話です。
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の廃止
オプションでディレクトリ作らなくした
Makefileを覚えてからはまってしまって何かとMakefileで何とかしようとしてた。
ただ、複雑なことをしようとすると急に学習コスト上がるし、何やってるのか全然わからんってなったうえに
こういう記事も出てたので次にMakefileを使いたくなったらTaskfileを使おうと思ってた。
ということで、Taskfileを導入。
ドキュメントがかなり豊富そうで全部読みこむ気概はなかったのでざっとみて指定のディレクトリでコマンドを実行するだけのタスクだけ定義した。
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ファイルを作成してメタデータコピペしてみたいなことやってたのでかなり自動化はできた。
実際どうやって管理するのがいいのかわかんないけどまあそんなに更新しないし十分な環境にはなった。
のでなんか書きたくて書いただけの記事でした。
以上🐼