## 経緯 やりたいこと。 - [x] `obsidian://`から始まる[[URI]]を許容する - [x] `obsidian://open?vault=Owl%20Brain&file=Obsidian`など - [x] このときリンク先をひらく ## 仕様 タスクに`http`/`https`以外のURIが埋め込まれていても自動で開くようにする。 ## 実装メモ `Url.ts` ```typescript export class Url extends PrimitiveValueObject<string> { private _voCommonUrlBrand!: never; static try(value: string): Either<InvalidUrlError, Url> { if (!/^https?:\/\/.+/.test(value)) { return left( InvalidUrlError.of({ invalidValue: value, }) ); } return right(new Url(value)); } getProxyAddedValue(proxy?: string): string { return proxy ? this._value.replace("://", `://${proxy}/`) : this._value!; } } ``` `Url`のドメイン定義次第。 `http`から始まらなくても[[URL]]なら、ここに`obsidian://`プロトコルの判定を加えれば良さそうだけど。 [[URL]]という扱いで平気そう。 `if (!/^[:+]:\/\/.+/.test(value)) {` でいい気がする。 - if (!/^https?:\/\/.+/.test(value)) { + if (!/^[:+]:\/\/.+/.test(value)) { ``` ## 検証 ![[v2.23.0-1.mp4]] ## リリースバージョン 🚀Togowl v2.23.0