🗓️

Markwhenよさそう

2024/12/12に公開

概要

https://docs.markwhen.com/

Markwhenはmarkdownっぽいテキストでスケジュールを書いて、カレンダーやタイムラインの形式で見ることができるツールです。

こういったツールの類に漏れずオンラインエディタがありますし、VSCodeの拡張もあります。
私は基本的にはVSCodeで使っていこうと思っています。

基本的な記法

Markwhenのテキストはヘッダーとイベントのリストで構成されます。
イベントは日付の範囲、コロン、イベントの説明から構成されます。

こんな感じ。

title: 何かの開発

2024-01-01/2024-01-14: 要件の整理 #requirements_definition
2024-01-15/2024-02-04: 設計 #design
2024-02-05/2024-02-25: 実装 #implement
2024-02-26/2024-03-17: テスト #test
2024-03-18/2024-03-31: デプロイ #deployment
2024-04-01: リリース #release

タイムライン形式や

カレンダー形式で表示できます。

日付の範囲

日付の範囲はいくつもの形式がサポートされていますが、私はISO 8601形式とdaysキーワードが好きです。
daysキーワードは期間を表現できます。例えば10 daysと書けば10日間を表します。
今を表すnowキーワードも使えます。

また、イベントにIDを設定してそのIDを参照することで相対的なスケジュールを設定できます。
イベントIDは!に名前を続ける形式です。

2024-12-12/5 days: イベント1 #foo !event1
after !event1/2 days: イベント2 #bar
after !event1/7 days: イベント3 #baz

というか、これ書きながら気付いたけれどafterキーワードだけ書けば直前のイベントに続いてくれますね。

2024-12-12/5 days: イベント1 #foo
after/2 days: イベント2 #bar
after/5 days: イベント3 #baz

繰り返し予定

繰り返し予定も書けるみたいです。

every 1 week: 1週間ごとに繰り返す #foo
2025-06-01/3 days every 1 month x10: 1ヶ月ごとに3日間を10回繰り返す #bar

タスクリスト

イベントの説明を書く箇所に- [ ] タスクの形式でタスクリストを書けます。
タイムラインで進捗状況が可視化されます。

2024-12-02/3 days: イベント1 #foo

- [x] タスク1
- [x] タスク2
- [ ] タスク3

2024-12-02/3 days: イベント2 #bar

- [x] タスク4
- [x] タスク5

タグ

しれっと書いていますが、イベントにはタグを付けられます。
タグを付けると自動で色が割り当てられます。タグのないイベントは色が付きません。

2 days: イベント1 #foo
2 days: イベント2 #bar
2 days: イベント3 #baz
2 days: イベント4 #qux
2 days: イベント5
2 days: イベント6
2 days: イベント7
2 days: イベント8

あと、オンラインエディタだとタグでフィルタリングできます。
VSCodeでは現時点でフィルタリングできないようです(実装してほしい)。

セクションとグループ

イベントをグループ化できます。グループはネストもできます。

グループ化するためのキーワードにはgroupsectionがあります。
これらの違いは可視化した際のスタイルです。

section セクション1
  group グループ1
    2 days: イベント1 #foo
    2 days: イベント2 #bar
  endGroup
  group グループ2
    2 days: イベント3 #baz
    2 days: イベント4 #qux
  endGroup
endSection
section セクション2
  group グループ3
    2 days: イベント5
    2 days: イベント6
    group グループ4
      2 days: イベント7
      2 days: イベント8
    endGroup
  endGroup
endSection

グループやセクションは折り畳めます。
グループ2とセクション2を畳んだ状態がこちら。

終わりに

とりあえず備忘的に自分が使いそうな機能に絞って書きました。

テキストでタスク管理をしつつ、スケジュールを可視化できるのが嬉しいのでしばらく使ってみようと思います。

Discussion