高度な使い方
基本的な操作に慣れた方向けに、実務で役立つ高度な機能と具体的な活用例を紹介します。
一括処理で効率化
Section titled “一括処理で効率化”記事の一括ダウンロード
Section titled “記事の一括ダウンロード”条件に一致する記事を一括でダウンロードできます。
esa-cli fetch-all --category "開発/設計"
esa-cli fetch-all --tag "API"
# 特定のカテゴリの最新5件をダウンロードesa-cli fetch-all --category "開発/設計" --limit 5
# 特定のタグの最新3件をダウンロードesa-cli fetch-all --tag "重要" --limit 3
# カテゴリと作成者の組み合わせesa-cli fetch-all --category "開発/設計" --user "自分のユーザー名"
# タグと検索ワードの組み合わせesa-cli fetch-all --tag "API" --query "認証"
記事の一括更新
Section titled “記事の一括更新”複数の記事を一括で更新できます。
# 現在のディレクトリの全記事を一括更新esa-cli update-all
# 特定のパターンの記事を一括更新esa-cli update-all "123-*.md"
# 確認なしで一括更新esa-cli update-all --force
効率的な記事管理
Section titled “効率的な記事管理”最新記事の自動ダウンロード
Section titled “最新記事の自動ダウンロード”特定の条件で最新記事を自動的にダウンロードできます。
# 開発カテゴリの最新記事をダウンロードesa-cli fetch --category 開発 --latest
# 自分が作成したAPI関連の最新記事をダウンロードesa-cli fetch --tag API --user 自分のユーザー名 --latest
複数条件での絞り込み
Section titled “複数条件での絞り込み”カテゴリ、タグ、作成者、検索ワードを組み合わせて記事を絞り込めます。
# カテゴリとタグの組み合わせesa-cli list --category 開発 --tag API
# 作成者とカテゴリの組み合わせesa-cli list --category 開発 --user 自分のユーザー名
# 検索ワードとタグの組み合わせesa-cli list --query 認証 --tag API
記事の一括整理
Section titled “記事の一括整理”カテゴリの一括移動
Section titled “カテゴリの一括移動”プロジェクトの進行に合わせて記事を効率的に整理できます。
# 開発完了した記事をドキュメントカテゴリに移動esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名
# 複数条件で絞り込んで移動esa-cli move --category 開発 --tag API --user 自分のユーザー名 --to ドキュメント
自動化とスクリプト化
Section titled “自動化とスクリプト化”確認プロンプトをスキップして自動実行できます。
# 確認なしで強制実行esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --force
# カスタムメッセージ付きで移動esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message リファクタリング完了
実務での活用シナリオ
Section titled “実務での活用シナリオ”シナリオ1: プロジェクト完了時の記事整理
Section titled “シナリオ1: プロジェクト完了時の記事整理”状況: 開発プロジェクトが完了し、関連記事をドキュメントカテゴリに移動したい
# 1. 開発カテゴリの記事を一括ダウンロードesa-cli fetch-all --category 開発 --user 自分のユーザー名
# 2. 記事を確認・編集# (必要に応じて記事の内容を更新)
# 3. 一括でドキュメントカテゴリに移動esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message "プロジェクト完了による移動"
シナリオ2: 定期バックアップの自動化
Section titled “シナリオ2: 定期バックアップの自動化”状況: 毎日の記事バックアップを自動化したい
#!/bin/bashDATE=$(date +%Y%m%d)BACKUP_DIR="./backup/$DATE"mkdir -p "$BACKUP_DIR"
echo "📅 $DATE のバックアップを開始..."
# 全記事をバックアップ(最新100件)esa-cli fetch-all --limit 100
# ダウンロードしたファイルをバックアップディレクトリに移動mv *-*.md "$BACKUP_DIR"
echo "✅ バックアップ完了: $BACKUP_DIR"
シナリオ3: チーム作業での安全な更新
Section titled “シナリオ3: チーム作業での安全な更新”状況: チームで記事を編集する際の競合を防ぎたい
# 1. 作業前に最新状態を取得esa-cli fetch 123
# 2. 記事を編集# (エディタで記事を編集)
# 3. 更新時にリモート変更をチェックesa-cli update 123-article-title.md --message "API仕様を更新"
# 4. 警告が出た場合は最新状態を再取得esa-cli fetch 123# (競合を解決してから再更新)
シナリオ4: タグの一括管理
Section titled “シナリオ4: タグの一括管理”状況: 古いタグを新しいタグに一括変更したい
# 1. 古いタグの記事を一括ダウンロードesa-cli fetch-all --tag "古いタグ"
# 2. 各記事でタグを更新for file in *-*.md; do # ファイル内のタグを置換 sed -i 's/古いタグ/新しいタグ/g' "$file"
# 記事を更新 esa-cli update "$file" --message "タグを更新"done
シナリオ5: 日報のアーカイブ化
Section titled “シナリオ5: 日報のアーカイブ化”状況: 日報カテゴリから自分が書いた記事をアーカイブディレクトリに移動したい
# 日報カテゴリから自分が書いた記事をアーカイブに移動esa-cli move --category 日報 --to Archived/日報 --user 自分のユーザー名 --message "日報のアーカイブ化"
# 確認なしで強制実行esa-cli move --category 日報 --to Archived/日報 --user 自分のユーザー名 --force
📝 注記: 記事の一括削除機能は現在実装されていません。esa.ioのAPIには削除機能がありますが、CLIツールでは安全のため削除機能は提供していません。記事の削除が必要な場合は、esa.ioのWebインターフェースから手動で行ってください。
シナリオ6: 本文の一括修正
Section titled “シナリオ6: 本文の一括修正”状況: 特定の文字列が含まれる記事を一括で修正したい
# 1. 修正対象の記事を一括ダウンロードesa-cli fetch-all --query "古い会社名"
# 2. ファイル内の文字列を一括置換# 必要に応じて記事の内容を更新(例: 古い会社名を新しい会社名に置換)# エディタで一括置換することをお勧めします。
# 3. 修正した記事を一括更新esa-cli update-all --message "会社名を更新"
# 確認なしで強制実行esa-cli update-all --force --message "会社名を更新"
シナリオ7: プロジェクト完了時の記事整理
Section titled “シナリオ7: プロジェクト完了時の記事整理”状況: 開発プロジェクトが完了し、関連記事をドキュメントカテゴリに移動したい
# 1. 開発カテゴリの記事を一括ダウンロードesa-cli fetch-all --category 開発 --user 自分のユーザー名
# 2. 記事を確認・編集# (必要に応じて記事の内容を更新)
# 3. 一括でドキュメントカテゴリに移動esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message "プロジェクト完了による移動"
ベストプラクティス
Section titled “ベストプラクティス”1. 安全な更新のベストプラクティス
Section titled “1. 安全な更新のベストプラクティス”-
更新前に最新状態を確認
Terminal window esa-cli fetch 123 # 最新状態を取得 -
変更履歴を明確に記録
Terminal window esa-cli update 123-article-title.md --message "API仕様を更新" -
WIP状態の適切な管理
Terminal window # 作業中はWIP状態で更新esa-cli update 123-article-title.md# 完了時はWIPを解除esa-cli update 123-article-title.md --no-wip
2. 一括処理のベストプラクティス
Section titled “2. 一括処理のベストプラクティス”-
処理前に確認
Terminal window # 移動対象を確認esa-cli list --category 開発 --user 自分のユーザー名 -
小規模から開始
Terminal window # 最初は少数でテストesa-cli fetch-all --category 開発 --limit 5 -
バックアップを取る
Terminal window # 一括処理前にバックアップesa-cli fetch-all --category 開発
3. チーム作業でのベストプラクティス
Section titled “3. チーム作業でのベストプラクティス”-
定期的な同期
Terminal window # 週次で最新記事を取得esa-cli fetch-all --limit 50 -
変更履歴の活用
Terminal window # 必ずメッセージを付けて更新esa-cli update file.md --message "変更内容の説明" -
競合の早期発見
Terminal window # 更新前に最新状態を確認esa-cli fetch article_number
カスタマイズ・自動化
Section titled “カスタマイズ・自動化”シェルスクリプトでの活用
Section titled “シェルスクリプトでの活用”#!/bin/bash# 開発完了した記事を一括移動するスクリプト
echo "開発完了した記事をドキュメントに移動します..."
# 開発カテゴリで自分が作成した記事をドキュメントに移動esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --force --message "開発完了による移動"
echo "移動が完了しました!"
エディタとの連携
Section titled “エディタとの連携”# VS Codeで記事を開くesa-cli fetch 123 && code 123-*.md
# Cursorで記事を開くesa-cli fetch 123 && open -a Cursor 123-*.md
# Typoraで記事を開くesa-cli fetch 123 && open -a Typora 123-*.md
コマンドの効率化
Section titled “コマンドの効率化”短縮オプションの活用
Section titled “短縮オプションの活用”実務では短縮オプションを使うことで、コマンドをより効率的に実行できます:
# 短縮形(効率的)esa-cli list -c 開発 -t API -u 自分のユーザー名
# 標準形(読みやすい)esa-cli list --category 開発 --tag API --user 自分のユーザー名
短縮オプション一覧:
-c
=--category
(カテゴリ)-t
=--tag
(タグ)-q
=--query
(検索ワード)-u
=--user
(作成者)-l
=--latest
(最新記事) /--limit
(取得件数)-m
=--message
(メッセージ)-n
=--no-wip
(WIP解除)-a
=--add-tags
(タグ追加)-r
=--remove-tags
(タグ削除)-o
=--to
(移動先)-f
=--force
(強制実行)
さらに詳細なコマンド仕様はコマンドリファレンスを参照してください。