Tritask-sta specification
Tritask-sta の概要や仕様をまとめる。
対象バージョン: v1.11.0
- Tritask-sta specification
- タスクのフォーマット
- タスクの種類
- 各フィールドの実装
- 操作一覧
- TEMPLATE
- ================
- Add Task
- Add Inbox
- Copy Task
- Start Task
- End Task
- Close Task
- End Task(Posteriori End)
- Edit Task
- ================
- Walk day
- Walk +1 day(Smart-walk)
- Change to Today
- Clear Date
- ================
- Sort
- Jump to Starting-Task
- Open Reference
- Open Commandline
- 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) |
意図としては、まずメモ領域として使える Inbox は最上位に表示させる。また Today, Tomorrow, Yesterday については、Today が一番使うはずなので一番上、次いで明日以降の予定である Tomorrow、最後に(過去の記録を参照したい以外は普段は使わないであろう)Yesterday、という順にしてある。
日付と曜日
以下のパターンのみ有効とする。
- Inbox の場合
- 日付も曜日も空文字列の時のみ有効
- Today, Tomorrow, Yesterday の場合
- 有効な日付が指定された時のみ有効
以下に例を挙げる。
有効(Inboxの場合)
2 2017/07/12 Wed 有効
2 2017/07/12 有効(曜日部分はソート時に補完される)
2 2017/07/12 WED 有効(曜日部分はソート時に補完される)
2 2017/07/12 abc 有効(曜日部分はソート時に補完される)
2 Wed 無効なフォーマット(日付がない)
2 2017/07/32 WED 無効なフォーマット(日付が有効でない)
属性
TEMPLATE
(属性の表記方法1)
(属性の表記方法2)
- …
- (表記に関する補足1)
- (表記に関する補足2)
- …
(属性に関する概要や詳細説明)
- 例
(属性の表記例1)
(例1に関する説明)(属性の表記例2)
(例2に関する説明)- …
繰り返し(Repeat)
rep:N
- N は 1 以上の整数
このタスクを終了すると、N日後の Tomorrow Todo が複製される。
- 例
rep:1
毎日実行する繰り返し。rep:7
一週間に一度実行する繰り返し。rep:30
(おおよそ)一月に一度実行する繰り返し。
スキップ(Skip)
skip:曜日文字列
- 曜日文字列は
月
火
水
木
金
土
日
休
平
の組み合わせ
このタスクは、ソートされた時、日付が「指定された曜日」だった場合に、日付が +1 される。
- 例
rep:1 skip:休
平日のみ毎日実行する繰り返しrep:1 skip:水日
水曜日と日曜日以外で毎日実行する繰り返し
指定は曜日個別、平日、休日(土曜日と日曜日)の三パターンを指定可能。
全ての曜日が指定された場合、永遠にインクリメントされ続けるため、 ツール側で停止しなければならない。Tritask-sta では処置済。
ホールド(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 機能で「今日の総見積時間」や「今日すべてのタスクを終えるのにあと何分かかる見込みか」といった情報を算出できるようになる。
クローン(Clone)
clone:N
- N は 0 または 1 以上の整数
N が 0 の時、このタスクは何もしない。
N が 1 以上の時、このタスクはソート時、自身から clone:N
を省いたタスクを N 個だけ増やす。また自身は日付を +1 する(このとき N の値も 0 に戻す)。
もしソート時に clone:0
を持つタスクの日付が今日だった場合、そのタスクが増やしたと思われるタスクはすべて削除する。これは前日やり残した「増やしたタスク」をクリアするためである。
- 例
clone:3
3個増やす
操作一覧
注釈:
- 「指定タスク」とは現在選択している(キャレットがある)行のタスクを指す
- 「複数選択」とは複数選択している行全てのタスクを指す
- ただし後述の「Multi と Find In Today について」も参照
- Before/After 内では、キャレットは
I
で表記する
TEMPLATE
(一言説明)
Before
適用前の内容
After
適用前の内容
(詳細説明)
================
Add Task
現在行に Today Todo を追加する。
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
現在行に Inbox を追加する。
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より) 何もしない(v1.8.0より)
Close Task
Start と End を同時に行う。
Before
2017/08/04 Fri Iタスク1
After(14:30に開始した場合)
2017/08/04 Fri 14:30 14:30Iタスク1
(主な用途) 「書いてはいたが、する必要がなくなった(不発したタスク)」を一気に終了することができる。愚直に Start して、End して、だと少々面倒である。ちなみに「記述そのものを消せばいいのでは?」と思われるかもしれないが、一般的にタスクは(不発したものであっても)なるべく記録として残した方が良い。残しておけば、あとで読み返せる。
End Task(Posteriori End)
指定タスクを報告的終了する(v1.10.0より)。
報告的終了とは「さっきまで~~をやっていた」を記録すること。報告的終了を実行すると、指定タスクは「”最も直近に終了したタスク” の直後から現在日時まで行っていた」と解釈され、開始時間と終了時間が記入される。
Before
1 2017/08/04 Fri 12:22 12:34 タスク
1 2017/08/04 Fri 12:34 12:37 タスク
2017/08/04 Fri コーヒー飲んでたI
After(12:55に報告的終了した場合)
1 2017/08/04 Fri 12:22 12:34 タスク
1 2017/08/04 Fri 12:34 12:37 タスク
2017/08/04 Fri 12:37 12:55 コーヒー飲んでたI
ただし「最も直近に終了したタスク」が無い場合は何もしない。
Edit Task
指定タスクのタスク内容部分を範囲選択する。
Before
2017/08/04 Fri 12:34I タスク1
After
2017/08/04 Fri 12:34 タスク1I
^^^^^^^
この部分が範囲選択される
(主な用途) タスクの Description 部分を素早く編集したい場合に用いる。
================
Walk day
指定タスクの日付を指定日だけ増減させる。複数選択可能。Find In Today可能。
指定可能な増減値は整数値。
- 増減値の例
-3
: 3日前0
: 今日1
: 1日後+1
: 1日後
Walk +1 day(Smart-walk)
rep:N
があれば N 日後を、無ければ 1 日後(+1)を設定する Walk day。複数選択可能。Find In Today可能。
Change to Today
指定タスクの日付を今日にする。複数選択可能。Find In 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
Today Start のある行にジャンプする。
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 タスク
Today Start が複数存在する場合、最初に登場する Today Start にジャンプする。
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
今日のタスク情報からレポートを作成し、ダイアログにて表示する。
ただし範囲選択を行っている場合は、今日のレポート(Today)ではなく「選択範囲内のタスク(Selected-Range)に関するレポート」を表示する。
注意事項:
- 見積もり(見込み)の計算は、見積もり属性
m:(見積もり[分])
を付与したタスクのみ対象となる。付与していないタスクの見積時間は 0 分として扱われる。
================
Programming helper script
ヘルパースクリプト helper.py を秀丸エディタで開く。
Programming this macro
マクロファイル tritask.mac を秀丸エディタで開く。
その他挙動などの解説
複数選択(Multi)と Find In Today について
一部の操作は「指定タスク」として「複数(行)のタスク」を指定できる。
指定方法として以下がある。
- Multi …… 複数行(2行以上)範囲選択されたタスクすべて
- Find In Today …… キーワード(選択範囲の文字列)を持つ「今日のタスク」すべて。 v1.9.0 から追加
つまり指定方法は以下のように区別される。
- 範囲選択していない
- → 指定タスク = 現在行
- 範囲選択しており、範囲は単一行
- → 指定タスク = Find In Today
- 範囲選択しており、範囲は複数行
- → 指定タスク = Multi
対応している操作には、メニュー項目にその旨を表示している。