Skip to content

KawaNae/Obsidian-task-viewer

Repository files navigation

Obsidian Task Viewer Plugin

事前コミットメントを主体としたタスク管理プラグインです。タスクの開始、終了、締め切りを事前に指定し、タイムラインビューで視覚的に管理できます。

クイックスタート

  1. タスクを作成

    - [ ] 会議 @2026-02-05T14:00>15:00
  2. タイムラインビューを開く

    • コマンドパレット → "Task Viewer: Open Timeline View"
  3. タスクを操作

    • タスクカードをドラッグ&ドロップで移動・調整

インストール

手動インストール

  1. このリポジトリをクローン
  2. npm install で依存関係をインストール
  3. npm run build でビルド
  4. main.jsmanifest.jsonstyles.css をVaultの.obsidian/plugins/obsidian-task-viewer/にコピー

タスクの記述方法

本プラグインでは、2つの方法でタスクを定義できます。

1. インライン記法(推奨)

マークダウンファイルの任意の場所にタスクを記述する方法です。

基本構文

基本構成として@start>end>deadlineという構成をとります。

- [ ] @2001-11-11>2001-11-12>2001-11-13  <!-- 完全な記法(SED型) -->

- [ ] @2001-11-11>2001-11-12  <!-- 締め切りの省略(SE型) -->
- [ ] @2001-11-11>>2001-11-13  <!-- 終了の省略(SD型) -->
- [ ] @>2001-11-12>2001-11-13  <!-- 開始の省略(ED型) -->

- [ ] @2001-11-11  <!-- 開始のみの指定(S-All型) -->
- [ ] @>2001-11-12  <!-- 終了のみの指定(E型) -->
- [ ] @>>2001-11-13  <!-- 締め切りのみの指定(D型) -->

時刻の指定

時刻を指定する場合はYYYY-MM-DDTHH:mmまたはHH:mmの形式で指定します。

- [ ] @2001-11-11T12:00  <!-- 開始のみの指定(S-Timed型) -->
- [ ] @2001-11-11T12:00>13:00  <!-- 同日の場合、日付省略可 -->
- [ ] @2001-11-11T12:00>2001-11-12T12:00
- [ ] @2001-11-11T12:00>2001-11-12T12:00>2001-11-13T12:00

子タスクの扱い

@記法を持つタスクは独立したタスクカードを生成します。インデントされた行は親タスクのカード内に表示されます。

- [ ] 会議 @2026-01-28T15:45>16:30>2026-01-31
    - [ ] 準備 @14:15>15:45      # 親の日付を継承
    - [ ] 片付け @16:30>17:00    # 親の日付を継承
    - [ ] 報告 @>>2026-01-30     # 明示的な締切

日付継承: 子タスクで時刻のみ(HH:mm)を指定すると、親タスクの日付を自動継承します。

2. Frontmatter記法

ファイル全体を1つのタスクとして扱う方法です。プロジェクト管理や日次ノートに便利です。

基本構文

---
tv-start: 2026-02-05
tv-end: 2026-02-07
tv-deadline: 2026-02-10
tv-status: ' '
tv-content: プロジェクト名
---

本文やサブタスクをここに記述
- [ ] サブタスク1
- [ ] サブタスク2

フィールド

フィールド 必須 説明
tv-start ○* 開始日時 2026-02-05 または 2026-02-05T14:00
tv-end 終了日時 2026-02-07 または 2026-02-07T18:00
tv-deadline 締切日時 2026-02-10 または 2026-02-10T23:59
tv-status タスクステータス(省略時は x, -, ! など
tv-content タスク名(省略時は空。表示時はファイル名がフォールバック) プロジェクト名

Note

tv-start, tv-end, tv-deadlineのいずれか1つは必須です。

Warning

時刻のみを記述する場合は、YAMLのsexagesimal記法を回避するため"14:00"のようにクォートで囲んでください。

Note

tv-content を省略した場合、UI表示ではファイル名フォールバックが使われ、AI Indexのcontentも basename で補完されます(inline/frontmatter)。

使用例

プロジェクト管理

---
tv-start: 2026-02-01
tv-end: 2026-02-15
tv-deadline: 2026-02-20
tv-content: ウェブサイトリニューアル
---

## サブタスク
- [ ] デザイン案作成 @2026-02-01>2026-02-05
- [ ] 実装 @2026-02-06>2026-02-12
- [ ] テスト @2026-02-13>2026-02-15

日次ノート

---
tv-start: 2026-02-05
tv-content: 2026-02-05の計画
---

## タスク
- [ ] 朝のミーティング @09:00>10:00
- [ ] ドキュメント作成 @14:00>16:00

Frontmatterタスクの子要素表示ルール(v0.13.1)

frontmatterタスクでは、子要素の表示範囲を次のように定義します。

  1. 対象は設定された見出し(Frontmatter Task Header / Frontmatter Task Header Level)配下のみ
  2. その見出し配下で、最初の連続リストブロックのみ表示対象
  3. リスト項目はチェックボックス付き(- [ ])だけでなく、通常の箇条書き(-)と番号付き(1.)も対象
  4. ネストされた子孫行も表示対象
  5. 空行、またはルートレベルの非リスト行で連続ブロックは終了
  6. 見出し外のリストや後続ブロックは表示対象外

Note

frontmatterカードの子トグルは1セットのみ描画されます(重複表示しません)。


コマンド(繰り返しタスク)

タスク完了時に自動実行されるコマンドを==>の後に記述します。

基本構文

- [ ] タスク名 @日付 ==> コマンド名(引数)

利用可能なコマンド

next(期間)

タスク完了時に、コマンドを削除した新しいタスクを生成します。

- [ ] 週次レビュー @2026-01-01 ==> next(1week)
# 完了後:
- [x] 週次レビュー @2026-01-01 ==> next(1week)
- [ ] 週次レビュー @2026-01-08

repeat(期間)

タスク完了時に、コマンドを維持した新しいタスクを生成します。

- [ ] 毎日の振り返り @2026-01-01 ==> repeat(1day)
# 完了後:
- [x] 毎日の振り返り @2026-01-01 ==> repeat(1day)
- [ ] 毎日の振り返り @2026-01-02 ==> repeat(1day)

move(ファイルパス)

タスク完了時に、タスク行を指定したファイルに移動します。

- [ ] 完了したらログへ @2026-01-01 ==> move([[log.md]])

期間の指定

記法 意味
1day / 1days 1日
1week / 1weeks 1週間(7日)
1month / 1months 1ヶ月
1year / 1years 1年

タイムラインビュー

基本操作

すべてのタスクで共通

  • タスク完了: チェックボックスをクリック
  • 削除: 右クリック → Delete
  • 複製: 右クリック → Duplicate
  • ファイルを開く: 右クリック → Open

タスクカードの移動と編集

タイムライン欄

時刻を持つ24時間未満のタスクを表示します。

  • 移動ハンドル: タスクカードをドラッグして時刻を変更
  • 伸縮ハンドル: 上下の端をドラッグして開始・終了時刻を調整

終日タスク欄/All Day

24時間以上のタスクや、時刻のないタスクを表示します。

  • 移動ハンドル: タスクカードをドラッグして日付を変更
  • 伸縮ハンドル: 左右の端をドラッグして開始・終了日を調整

日付の扱い

「設定された開始時刻」を日付の境界とします。デフォルトでは5:00です。

  • @2026-02-05T05:00 → 2026-02-05のタスク
  • @2026-02-05T04:00 → 2026-02-04のタスク(前日扱い)

設定

主要設定

設定項目 説明 デフォルト
Start Hour 1日の開始時刻(0-23) 5
Frontmatter Task Keys Configurable frontmatter keys for task metadata tv-start / tv-end / tv-deadline / tv-status / tv-content / tv-timer-target-id / tv-color
Pomodoro Work Minutes ポモドーロの作業時間 25
Complete Status Chars 完了を示すステータス文字 ['x', 'X', '-', '!']
Excluded Paths スキャンから除外するパス []

AI Index 出力スキーマ(v6)

AI Indexの1行(NDJSON)は、次のフィールドを持ちます。

フィールド 説明
id 正規化タスクID
contentHash 差分検知用ハッシュ
parser inline / frontmatter など
sourcePath Vault相対パス
locator タスク位置アンカー(ln:<number> / blk:<blockId> / tid:<timerTargetId> / fm-root
status todo / done / cancelled / exception / unknown
content タスク本文(inline/frontmatter で空の場合はファイル basename を補完)
start 開始日時(ISO形式またはnull
end 終了日時(ISO形式またはnull
deadline 締切日時(ISO形式またはnull
tags contentから抽出したタグ配列
raw 元記法文字列(設定で有効時のみ)

更新時刻は行単位ではなく ai-task-index.meta.jsongeneratedAt を参照してください。

allDaydurationMinutesreadOnly はv3で削除され、updatedAt はv4で削除され、sourceLine/sourceCol はv5で locator に統合され、v6で content 空値の basename 補完(inline/frontmatter限定)が追加されました。


トラブルシューティング

同期環境での使用

複数デバイス間でObsidianを同期している場合(obsidian-self-hosted-livesyncなど)、タスク完了時のコマンドはローカル操作を行ったデバイスでのみ実行されます。同期先のデバイスでは重複実行されません。

Note

複数デバイスで同時に同じファイルを操作した場合、誤検出の可能性があります。通常の使用(片方のデバイスで操作、他方は同期のみ)では問題ありません。


開発者向け情報

実装の詳細、タスク型の仕様、CSS命名規則などはDEVELOPER.mdをご覧ください。


ライセンス

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •