Tritask-sta specification
Tritask-sta の概要や仕様をまとめる。
対象バージョン: v1.7.1
- Tritask-sta specification
- タスクのフォーマット
- タスクの種類
- 各フィールドの実装
- 操作一覧
- TEMPLATE
- ================
- Add Task
- Add Inbox
- Copy Task
- Start Task
- End Task
- Close Task
- ================
- Walk day
- Walk +1 day(Smart-walk)
- Change to Today
- Clear Date
- ================
- Sort
- Jump to Starting-Task
- Open Reference
- Simple Completion
- ================
- Report Today or Selected-Range
- ================
- Programming helper script
- Programming this macro
タスクのフォーマット
1 2--------- 3-- 4---- 5---- 6----------
M YYYY/MM/DD DOW HH:MM HH:MM DESCRIPTION
- 1 マーク(Mark) ソート用マーク。
- 2 実行日(Execution Date) このタスクを実行する日。
- 3 曜日(DOW) 日付に対応する曜日。
- 4 開始時刻(Start Time) このタスクの開始時刻。
- 5 終了時刻(End Time) このタスクの終了時刻。
- 6 タスク内容(Description) タスク内容。後述する 属性(Attribute) も記述可。
タスクの種類
タスクは実行日、開始時刻、終了時刻などの値に応じて種類が分かれる。
有効なタスク
INBOX
4 2017/07/11 Thu 9:52 10:33 YESTERDAY DONE
2 2017/07/12 Wed TODAY TODO
2 2017/07/12 Wed 9:52 TODAY START
1 2017/07/12 Wed 9:52 10:33 TODAY DONE
3 2017/07/13 Thu TOMORROW TODO
種類名 | 略称 | 説明 |
---|---|---|
INBOX | inbo | インボックス。実行日の決まっていないタスク(メモとしても使用可) |
YESTERDAY DONE | ye | 昨日以前に終了したタスク |
TODAY TODO | tt | 今日行うタスク |
TODAY START | ts | 現在実行中のタスク |
TODAY DONE | td | 今日終了したタスク |
TOMORROW TODO | tom | 明日以降のタスク |
無効なタスク
Tritask-sta では「今日のタスク(実行日が今日のタスク)」のみ扱うことを考える。もっと言えば人が過去や未来にタイムスリップできないように、Tritask でも過去のタスクや未来のタスクを開始することはできない。この考えに基づき、Tritask-sta では YESTERDAY TODO, YESTERDAY START, TOMORROW DONE, TOMORROW START を無効なタスクとして扱う。
4 2017/07/11 Thu YESTERDAY TODO <=== 無効
4 2017/07/11 Thu 9:52 YESTERDAY START <=== 無効
2 2017/07/12 Wed TODAY TODO
2 2017/07/12 Wed 9:52 TODAY START
1 2017/07/12 Wed 9:52 10:33 TODAY DONE
3 2017/07/13 Thu 10:00 TOMORROW START <=== 無効
3 2017/07/13 Thu 10:00 10:22 TOMORROW DONE <=== 無効
以下は無効と判断した理由である。
種類名 | 無効である理由 |
---|---|
YESTERDAY TODO | 過去のタスクは目に入らず、見失いやすいから |
YESTERDAY START | 過去のタスクを開始することはありえないから |
TOMORROW START | 未来のタスクを開始することはありえないから |
TOMORROW DONE | 未来のタスクを終了することはありえないから |
無効タスクの対処
Tritask-sta では、無効なタスクについては その実行日を今日に修正する 措置を行う。こうすることでこれら無効なタスクが今日のタスクとして浮上し、目に付くようになる。目に付けば、何らかの対処ができる。
各フィールドの実装
マーク
タスク種別に対するマークは以下のとおりに定める。
マーク値 | タスク種別 |
---|---|
(スペース) | inbo(Inbox) |
1 | td(Today Done) |
2 | tt(Today Todo), ts(Today Start) |
3 | tom(Tomorrow Todo) |
4 | ye(Yesterday Done) |
意図としては、まずメモ領域として使える inbo は最上位に表示させる。また today, tom, ye については、today が一番使うはずなので一番上、次いで明日以降の予定である tom、最後に過去である ye の順にしてある。
日付と曜日
以下のパターンのみ有効とする。
- inbo
- 日付も曜日も空文字列の時のみ有効
- today, tom, ye
- 有効な日付が指定された時のみ有効
以下に例を挙げる。
inbo
2 2017/07/12 Wed tt
2 2017/07/12 tt(曜日部分はソート時に補完される)
2 2017/07/12 WED tt(曜日部分はソート時に補完される)
2 2017/07/12 abc tt(曜日部分はソート時に補完される)
2 Wed 無効なフォーマット(日付がない)
2 2017/07/32 WED 無効なフォーマット(日付が有効でない)
属性
TEMPLATE
(属性の表記方法1)
(属性の表記方法2)
- …
- (表記に関する補足1)
- (表記に関する補足2)
- …
(属性に関する概要や詳細説明)
- 例
(属性の表記例1)
(例1に関する説明)(属性の表記例2)
(例2に関する説明)- …
繰り返し(Repeat)
rep:N
- N は 1 以上の整数
このタスクを終了すると、N日後の tom が複製される。
- 例
rep:1
毎日実行する繰り返し。rep:7
一週間に一度実行する繰り返し。rep:30
(おおよそ)一月に一度実行する繰り返し。
スキップ(Skip)
skip:曜日文字列
- 曜日文字列は
月
火
水
木
金
土
日
休
平
の組み合わせ
このタスクは、ソートされた時、日付が「指定された曜日」だった場合に、日付が +1 される。
- 例
rep:1 skip:休
平日のみ毎日実行する繰り返しrep:1 skip:水日
水曜日と日曜日以外で毎日実行する繰り返し
指定は曜日個別、平日、休日(土曜日と日曜日)の三パターンを指定可能。
全ての曜日が指定された場合、永遠にインクリメントされ続けるため、 ツール側で停止しなければならない。
ホールド(Hold)
hold:N
- N は整数
このタスクは、ソートされた時に、今日を 0
として、その差分の日付が常に設定される。
- 例
hold:0
このタスクは常に日付が今日になるhold:1
このタスクは常に日付が明日になるhold:-1
このタスクは常に日付が昨日になる
リファレンス(Reference)
ref:KEY
- KEY は1文字以上で、かつファイル名として採用できる文字列
このタスクが持つリファレンス KEY を開く。
リファレンスとはキーとファイルからなるメモ領域であり、実体は (tritaファイルのあるディレクトリ)/ref
配下に (キー名).md
という形で保存される。
リファレンスはタスクに関する補足情報を記述するのに便利である。
キーは何でも良いが、tritask-sta では現在日時の YYMMDD_HHMMSS で固定する。
見積もり(Estimate)
m:N
- N は 1 以上の整数
このタスクは N 分で終了予定であることを示す。
この属性を付与しておくと、Report Today 機能で「今日の総見積時間」や「今日すべてのタスクを終えるのにあと何分かかる見込みか」といった情報を算出できるようになる。
操作一覧
注釈
- 「指定タスク」とは現在選択している(キャレットがある)行のタスクを指す
- 「複数選択」とは複数選択している行全てのタスクを指す
- Before/After 内では、キャレットは
I
で表記する
TEMPLATE
(一言説明)
Before
適用前の内容
After
適用前の内容
(詳細説明)
================
Add Task
現在行に tt を追加する。
Before
2017/08/04 Fri タスク1
2017/08/04 Fri Iタスク2
2017/08/04 Fri タスク3
After
2017/08/04 Fri タスク1
2017/08/04 Fri I
2017/08/04 Fri タスク2
2017/08/04 Fri タスク3
Add Inbox
現在行に inbo を追加する。
Before
2017/08/04 Fri タスク1
2017/08/04 Fri Iタスク2
2017/08/04 Fri タスク3
After
2017/08/04 Fri タスク1
I
2017/08/04 Fri タスク2
2017/08/04 Fri タスク3
Copy Task
指定タスクを次行に複製する。その際、開始時刻と終了時刻はクリアする。
Before
2017/08/04 Fri 09:30 09:54 Iタスク2
2017/08/04 Fri タスク3
After
2017/08/04 Fri 09:30 09:54 タスク2
2017/08/04 Fri タスク2I
2017/08/04 Fri タスク3
Start Task
指定タスクに開始時刻を書き込む。
Before
2017/08/04 Fri Iタスク1
After(14:30に開始した場合)
2017/08/04 Fri 14:30I タスク1
既に開始されている場合は開始時刻をクリアする(開始時刻記入のトグル)。
End Task
指定タスクに終了時刻を書き込む。
Before
2017/08/04 Fri 13:31 Iタスク rep:3
After(14:30に終了した場合)
2017/08/04 Fri 13:31 14:30 タスク rep:3
4 2017/08/07 Mon タスク rep:3I
もし repeat 属性がある場合、当該タスクを(日付を指定日後に変更してから)複製する。
開始時刻が書き込まれてない場合は 無効タスク(開始してないのに終了している)となってしまうが、処理の中断や警告は行わない 開始時刻も書き込む(v1.7.1より)。
Close Task
Start と End を同時に行う。
Before
2017/08/04 Fri Iタスク1
After(14:30に開始した場合)
2017/08/04 Fri 14:30 14:30Iタスク1
================
Walk day
指定タスクの日付を指定日だけ増減させる。複数選択可能。
指定可能な増減値は整数値。
- 増減値の例
-3
: 3日前0
: 今日1
: 1日後+1
: 1日後
Walk +1 day(Smart-walk)
rep:N
があれば N 日後を、無ければ 1 日後(+1)を設定する Walk day。複数選択可能。
Change to Today
指定タスクの日付を今日にする。複数選択可能。
Before(二つとも選択しているとする)
4 2017/08/02 Wed タスク
4 タスク
After(今日が 17/08/05 とする)
2 2017/08/05 Sat タスク
2 2017/08/05 Sat タスク
Clear Date
指定タスクの日付を空文字列にする(inboにする)。
Before
2017/08/04 Fri タスクI
After
Iタスク
================
Sort
現在開いている trita ファイルに対してソートを実行する。
ただしソートを実行する前に全行を走査し、以下の前処理を行う。
- 日付に対応するマークを付ける(既にマークが記入されている場合は上書きする)
- 日付に対応する曜日を埋める(既に曜日が記入されている場合は上書きする)
- 属性の解釈を行い、当該タスクの中身を変更する
- 例1: hold がある場合、日付を指定日にホールドする
- 例2: skip がある場合、日付が指定スキップ日であれば、そうならなくなるまで日付を増やす
Jump to Starting-Task
ts のある行にジャンプする。
Before
2017/08/04 Fri タスクI
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri 14:34 タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
After
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
2017/08/04 FriI14:34 タスク
2017/08/04 Fri タスク
2017/08/04 Fri タスク
ts が複数存在する場合、最初に登場する ts にジャンプする。
Open Reference
指定タスクにリファレンスを付与する。
Before
2018/04/26 Thu テストI
After
2018/04/26 Thu テスト ref:180426_131649I
リファレンスキー名は現在日時の YYMMDD_HHSSMM
を自動的に用いる。また、付与後は当該リファレンスファイル( YYMMDD_HHSSMM.md
)を「関連付けられたエディタ」で開く。
Open Commandline
指定タスクが持つコマンドラインを実行する。
コマンドラインは o:(コマンドライン)
のように o (小文字のオー)属性にて指定する。
例:
2019/09/03 Tue ニュース XXXX を見て気になることをメモする o:notepad.exe
注意事項
- 内部的には
start "" "(CommandLine)"
をそのまま実行 (CommandLine)
としてスペースを含む文字列は利用不可
Simple Completion
指定タスクに対して補正(日付情報から正しい曜日文字列を算出する、ソートマークを正しく反映する等)をかける。
Before
2018/11/10IThu テストI
After
3 2018/11/10ISat テスト
ソートを行わずに、タスク一つのみに対して補正を行いたい場合に用いる。特に日付を手動で更新した際に、その日付が何曜日なのかを知りたい場合などに用いる。
================
Report Today or Selected-Range
今日のタスク情報からレポートを作成し、ダイアログにて表示する。
上記は以下を表している。
- 今日は 26 個のタスクが存在する
- 今日はあと 1.25H ですべてのタスクが終了する見込みである
- 今日は 21:03 にすべてのタスクが終了する見込みである
注意事項など:
- 見積もり(見込み)の計算は、見積もり属性
m:(見積もり[分])
を付与したタスクのみ対象となる。付与していないタスクの見積時間は 0 分として扱われる。 - 範囲選択を行っている場合は、今日のレポート(Today)ではなく「選択範囲内のタスク(Selected-Range)に関するレポート」を表示する
================
Programming helper script
ヘルパースクリプト helper.py を秀丸エディタで開く。
Programming this macro
マクロファイル tritask.mac を秀丸エディタで開く。