タスクリンクV3
タスクリンクとhowmのリマインダの記号を融合した記法ver.2
背景
タスクリンクV2 のシステムと行動記録システムとを分離する
howmのリマインダの記号およびタスクリンクV2との違い
「旬度の基準日時」と「実行日時」という概念を導入
「旬度の基準日時」
「実行日時」
前者がhowmで使われる日付の意味と同じもの(予定除く)、後者がnext actionに近いTritask
前者は気にかけたい期間を決める
実行日時はfixされていない
後者は正確に実行日時を表す
その日やることリスト、今日やること、next action、予定表を作るのに使う
実行日時をfixし、その日の作業時間や進捗状況を見積もるのに使う
howmのリマインダの記号およびタスクリンクV2は両者を一つの日付で表していたため、混乱が生じたtakker.icon
リストに上がってきたことはわかるが、その日にやると決めたことなのかがわからない
文法
旬度指定
!タスク, +タスク, -タスク, ~タスクを採用
@タスクは廃止し、実行日時指定に統合する
実行日時指定
実行日時の先頭に@を置く
終了日時か所要時間でeventの長さを指定する
/yyyy-MM-ddTHH:mmで終了日時指定
D\dで所要時間を指定
旬度を指定しないとただの予定になる
/@(\d{2}:\d{2}|(?:(?:(?:\d{4}-)?\d{2}-)?\d{2}(?:T\d{2}:\d{2})?))(?:\/(\d{2}:\d{2}|(?:(?:(?:\d{4}-)?\d{2}-)?\d{2}(?:T\d{2}:\d{2})?))|D(\d+))?/i
旬度指定と実行日時は順不同
区切り文字はどちらも@を使う
正規表現上区別できるので問題ない
繰り返し
正規表現っぽいことをやる
通院@*-*-13T12:00D80
毎月13日
ゼミ@*-*-TueT12:00D80
毎週火曜日
買い物@*-*-(3|10|17)T12:00D80
毎月3,10,17日
当分必要なのは毎日と毎週だけだし、これさえ対応できればいいだろう
暫定正規表現は/(\d{4}|\*)-(\d{2}|\*)-(\d{2}|\*|Sun|Mon|Tue|Wed|Thu|Fri|Sat)T(\d{2}):(\d{2})D(\d+)/i
開始日時が変化するので、終了日時は相対指定しかできない
区切り文字は@をつかう
これも実行日時と分けられる
一日おきを表現できない……
戻すか。
/R([YMWD])?@(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})D(\d+)/i
タスクリンクV2の繰り返し文法を少し変形した
とりあえずこれでいこう
旬度指定があるときはタスクリンクに、それ以外は予定として扱う
例
[エンジニアの知的生産術買いたい-9@2023-09-12@20T12:40D10]
ふとエンジニアの知的生産術を買おうと思い付き、とりあえず当日(2023-09-12)から気にかけておくことにした
その後2023-09-20T12:40に10分時間を取って購入することにした
2023-09まで旬度の基準日時と同じなので略している
エンジニアの知的生産術を目の前で買って号泣している人.iconがいて、少々レジで時間がかかったものの、購入できた
[エンジニアの知的生産術買いたい-9.@2023-09-12@20T12:40D10]としてタスクを完了させる
[井戸端Advent Calendar記事投稿!35:2023-12-12T08:00]
締切の35日前から気にかけておく
その後2023-11-12T13:00か60分ほど時間が取れそうだったので、[井戸端Advent Calendar記事投稿!35@2023-12-12T08:00@11-12T13:00D60]とした
ところが終わりきらなかったので、[井戸端Advent Calendar記事投稿!35@2023-12-12T08:00@11-19T13:00D30]にして別日に移動した
実装
https://github.com/takker99/takker-scheduler/pull/137
運用
閲覧
/takker/takker-workflow@0.0.1/next-action-viewerなど、なんらかのタスク閲覧アプリと組み合わせる必要がある
別途予定表を閲覧するアプリも必要
Google Calendarなどの外部アプリに出力する
カレンダーUIを自作して閲覧する
TaskChute likeな行動記録システムに書き出す
操作
作成
好きな場所に書き込めばいい
Scrapboxのtimestampをカスタムしておくと少し楽
日付変更操作
ひとつづつタイトルを書き換えるのは大変
/takker/複数のリンクをまとめて置換するUserScriptを推奨する