タスクリンクV2の実装
名前は暫定
実装
書式
変更点
締め切り記法 ~
を廃止。代わりに !
を使う
取り出す情報
タスク名
開始日時
日付 or 日時
Date objectで返す
指定がないときは undefined
を返す
default値はparserで決めることではないので省く
(optional)終了日時
2023-09-17
13:33:51 暫定仕様で一旦完成
暫定仕様
記号の挿入位置を決める
開始日時の直前に連結する
✅ [エンジニアの知的生産術買いたい-9@2023-09-12]
✅ [-9@2023-09-12エンジニアの知的生産術買いたい]
❌ [エンジニアの知的生産術買いたい-9 @2023-09-12]
❌ [-9 @2023-09-12エンジニアの知的生産術買いたい]
終了日時/見積もり時間/繰り返し指定
開始日時の直後に連結する
「終了日時 or 見積もり時間→繰り返し指定」の順に連結する
後方互換性
行頭に✅❌があるタスクは完了 .
と同義とみなす
コード
なるべく正規表現一発でdetectしたい
リマインダ記号
/([\+\-!~.])(\d+)?/
開始日時
/@(\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2})?)/
終了日時
/\/((?:(?:(?:\d{4}-)?\d{2}-)?\d{2}(?:T\d{2}:\d{2})?)|\d{2}:\d{2})/
所要時間
/D(\d+)/
見積もり時間とは(何か機能がある)?
所要時間といったほうが正確かも
タスク(予定)に使う時間の長さを指定する
終了日時の代替
相対的に指定したいとき、開始日時なしで長さだけ指定したいときに使う
なるほど
繰り返し
/R([YMWD])?(\d+)/)/
合体
/(?:([\+\-!~.])(\d+)?)?@(\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+))?(?:R([YMWD])?(\d+))?/i
test-pattern+3@2023-04-34
[ごはんを食べる+3@2023-04-34/23D45]
[ごはんを食べる+3@2023-04-34/05-23D45]
[ごはんを食べる+3@2023-04-34/2023-05-23D45]
[ごはんを食べる+3@2023-04-34/2023-05-23T05:67:76D45]
[ごはんを食べる+3@2023-04-34/05-23T05:67:76D45]
[ごはんを食べる+3@2023-04-34/23T05:67:76D45]
[ごはんを食べる+3@2023-04-34/T05:67:76D45]
[ごはんを食べる+3@2023-04-34/05:67:76D45]
[ごはんを食べる+3@2023-04-34/05:67D45]
[ごはんを食べる+3@2023-04-34D45/05:67]
[ごはんを食べる+3@2023-04-34D45/05:67R4]
[ごはんを食べる+3@2023-04-34D45R4/05:67]
[ごはんを食べる+3@2023-04-34D45R47/05:67]
[ごはんを食べる+3@2023-04-34D45R/05:67]
[ごはんを食べる+3@2023-04-34D45RM8/05:67]
[ごはんを食べる+3@2023-04-34D45RY8/05:67]
[ごはんを食べる+3@2023-04-34D45RW8/05:67]
[ごはんを食べる+3@2023-04-34D45RD8/05:67]
[ごはんを食べる+3@2023-04-34/05-34RD8/05:67]
[!@2002-10-20 ハイウェイ惑星 〆切]
[ハイウェイ惑星 〆切!4@2002-10-20]
[-@2002-10-20 ハイウェイ惑星 買おう]
[ハイウェイ惑星 買おうかな~@2023-09-12]
[ハイウェイ惑星+@2002-10-20 買おう]
[読書会@2023-04-11T13:00]
Edit the Expression & Text to see matches. Roll over matches or the expression for details. PCRE & JavaScript flavors of RegEx are supported. Validate your expression with Tests mode.
The side bar includes a Cheatsheet, full Reference, and Help. You can also Save & Share with the Community and view patterns you create or favorite in My Patterns.
Explore results with the Tools below. Replace & List output custom results. Details lists capture groups. Explain describes your expression in plain English.
後で実装するもの
いろんなパターンを一度に実装するのはつらい
高度な日付指定
曜日指定
/(\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2})?)(?:\((\+|-)?(\d+)\*(Sun|Mon|Tue|Wed|Thu|Fri|Sat)(?:(\+|-)(\d+))?\))?/
で認識
yyyy-MM-00で月末
記号の順序を順不同にする or フォーマットを正式に決める
順不同が好ましいが、誤判定する恐れがある
補助CSS
リンクの先頭にタスクの種類を絵文字で表示する
完了したタスクに✅をつける
style.css.page-link[href*=".@"]::before{
content: "✅"
}
終わっていないタスクに⬜をつける
css.page-link[href*="@20"]::before{
content: "⬜"
}
誤判定の可能性もあるが、とりあえず我慢する
悩み
未来の繰り返しタスクをずらしたいときどうするか
例:毎日08:00に家を出るが、来週の月水だけ07:00にしたい
実装方法
繰り返しタスクのページ内に、例外設定を記入する
cons: 例外設定が膨大になる?