Skip to content

高度な使い方

基本的な操作に慣れた方向けに、実務で役立つ高度な機能と具体的な活用例を紹介します。

条件に一致する記事を一括でダウンロードできます。

Terminal window
esa-cli fetch-all --category "開発/設計"

複数の記事を一括で更新できます。

Terminal window
# 現在のディレクトリの全記事を一括更新
esa-cli update-all
# 特定のパターンの記事を一括更新
esa-cli update-all "123-*.md"
# 確認なしで一括更新
esa-cli update-all --force

特定の条件で最新記事を自動的にダウンロードできます。

Terminal window
# 開発カテゴリの最新記事をダウンロード
esa-cli fetch --category 開発 --latest
# 自分が作成したAPI関連の最新記事をダウンロード
esa-cli fetch --tag API --user 自分のユーザー名 --latest

カテゴリ、タグ、作成者、検索ワードを組み合わせて記事を絞り込めます。

Terminal window
# カテゴリとタグの組み合わせ
esa-cli list --category 開発 --tag API
# 作成者とカテゴリの組み合わせ
esa-cli list --category 開発 --user 自分のユーザー名
# 検索ワードとタグの組み合わせ
esa-cli list --query 認証 --tag API

プロジェクトの進行に合わせて記事を効率的に整理できます。

Terminal window
# 開発完了した記事をドキュメントカテゴリに移動
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名
# 複数条件で絞り込んで移動
esa-cli move --category 開発 --tag API --user 自分のユーザー名 --to ドキュメント

確認プロンプトをスキップして自動実行できます。

Terminal window
# 確認なしで強制実行
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --force
# カスタムメッセージ付きで移動
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message リファクタリング完了

シナリオ1: プロジェクト完了時の記事整理

Section titled “シナリオ1: プロジェクト完了時の記事整理”

状況: 開発プロジェクトが完了し、関連記事をドキュメントカテゴリに移動したい

Terminal window
# 1. 開発カテゴリの記事を一括ダウンロード
esa-cli fetch-all --category 開発 --user 自分のユーザー名
# 2. 記事を確認・編集
# (必要に応じて記事の内容を更新)
# 3. 一括でドキュメントカテゴリに移動
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message "プロジェクト完了による移動"

シナリオ2: 定期バックアップの自動化

Section titled “シナリオ2: 定期バックアップの自動化”

状況: 毎日の記事バックアップを自動化したい

daily-backup.sh
#!/bin/bash
DATE=$(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: チーム作業での安全な更新”

状況: チームで記事を編集する際の競合を防ぎたい

Terminal window
# 1. 作業前に最新状態を取得
esa-cli fetch 123
# 2. 記事を編集
# (エディタで記事を編集)
# 3. 更新時にリモート変更をチェック
esa-cli update 123-article-title.md --message "API仕様を更新"
# 4. 警告が出た場合は最新状態を再取得
esa-cli fetch 123
# (競合を解決してから再更新)

状況: 古いタグを新しいタグに一括変更したい

Terminal window
# 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: 日報のアーカイブ化”

状況: 日報カテゴリから自分が書いた記事をアーカイブディレクトリに移動したい

Terminal window
# 日報カテゴリから自分が書いた記事をアーカイブに移動
esa-cli move --category 日報 --to Archived/日報 --user 自分のユーザー名 --message "日報のアーカイブ化"
# 確認なしで強制実行
esa-cli move --category 日報 --to Archived/日報 --user 自分のユーザー名 --force

📝 注記: 記事の一括削除機能は現在実装されていません。esa.ioのAPIには削除機能がありますが、CLIツールでは安全のため削除機能は提供していません。記事の削除が必要な場合は、esa.ioのWebインターフェースから手動で行ってください。

状況: 特定の文字列が含まれる記事を一括で修正したい

Terminal window
# 1. 修正対象の記事を一括ダウンロード
esa-cli fetch-all --query "古い会社名"
# 2. ファイル内の文字列を一括置換
# 必要に応じて記事の内容を更新(例: 古い会社名を新しい会社名に置換)
# エディタで一括置換することをお勧めします。
# 3. 修正した記事を一括更新
esa-cli update-all --message "会社名を更新"
# 確認なしで強制実行
esa-cli update-all --force --message "会社名を更新"

シナリオ7: プロジェクト完了時の記事整理

Section titled “シナリオ7: プロジェクト完了時の記事整理”

状況: 開発プロジェクトが完了し、関連記事をドキュメントカテゴリに移動したい

Terminal window
# 1. 開発カテゴリの記事を一括ダウンロード
esa-cli fetch-all --category 開発 --user 自分のユーザー名
# 2. 記事を確認・編集
# (必要に応じて記事の内容を更新)
# 3. 一括でドキュメントカテゴリに移動
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --message "プロジェクト完了による移動"

1. 安全な更新のベストプラクティス

Section titled “1. 安全な更新のベストプラクティス”
  1. 更新前に最新状態を確認

    Terminal window
    esa-cli fetch 123 # 最新状態を取得
  2. 変更履歴を明確に記録

    Terminal window
    esa-cli update 123-article-title.md --message "API仕様を更新"
  3. 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. 一括処理のベストプラクティス”
  1. 処理前に確認

    Terminal window
    # 移動対象を確認
    esa-cli list --category 開発 --user 自分のユーザー名
  2. 小規模から開始

    Terminal window
    # 最初は少数でテスト
    esa-cli fetch-all --category 開発 --limit 5
  3. バックアップを取る

    Terminal window
    # 一括処理前にバックアップ
    esa-cli fetch-all --category 開発

3. チーム作業でのベストプラクティス

Section titled “3. チーム作業でのベストプラクティス”
  1. 定期的な同期

    Terminal window
    # 週次で最新記事を取得
    esa-cli fetch-all --limit 50
  2. 変更履歴の活用

    Terminal window
    # 必ずメッセージを付けて更新
    esa-cli update file.md --message "変更内容の説明"
  3. 競合の早期発見

    Terminal window
    # 更新前に最新状態を確認
    esa-cli fetch article_number
#!/bin/bash
# 開発完了した記事を一括移動するスクリプト
echo "開発完了した記事をドキュメントに移動します..."
# 開発カテゴリで自分が作成した記事をドキュメントに移動
esa-cli move --category 開発 --to ドキュメント --user 自分のユーザー名 --force --message "開発完了による移動"
echo "移動が完了しました!"
Terminal window
# 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

実務では短縮オプションを使うことで、コマンドをより効率的に実行できます:

Terminal window
# 短縮形(効率的)
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 (強制実行)

さらに詳細なコマンド仕様はコマンドリファレンスを参照してください。