#Obsidian #jump-to-link
> [!note]
> 本機能は既に[[Jump to link]]にマージされている。プルリクを出す前の記録
## LocalでJavaScriptを変更してみる
ファイル中の[[URL]]は以下の正規表現で抽出できる。
```
/(?<= |\n|^)(https?:\/\/[^ \n]+)/g
```
[getSourceLinkHints](https://github.com/mrjackphil/obsidian-jump-to-link/blob/master/main.ts#L218)を改修すればできそう。
```diff
getSourceLinkHints = (cmEditor: Editor): SourceLinkHint[] => {
// expecting either [[Link]] or [[Link|Title]]
const regExInternal = /\[\[(.+?)(\|.+?)?\]\]/g;
// expecting [Title](link)
const regExExternal = /\[.+?\]\((.+?)\)/g;
+ // expecting http://hogehoge or https://hogehoge
+ const regExUrl = /(?<= |\n|^)(https?:\/\/[^ \n]+)/g;
const strs = cmEditor.getValue();
let linksWithIndex: { index: number, type: 'internal' | 'external', linkText: string }[] = [];
let regExResult;
while(regExResult = regExInternal.exec(strs)) {
const linkText = regExResult[1];
linksWithIndex.push({ index: regExResult.index, type: 'internal', linkText });
}
while(regExResult = regExExternal.exec(strs)) {
const linkText = regExResult[1];
linksWithIndex.push({ index: regExResult.index, type: 'external', linkText })
}
+ while(regExResult = regExUrl.exec(strs)) {
+ const linkText = regExResult[1];
+ linksWithIndex.push({ index: regExResult.index, type: 'external', linkText })
+ }
```
## Issueを作成する
[Issue]を作成してみた。
[Issue]: https://github.com/mrjackphil/obsidian-jump-to-link/issues/6
プルリクを作成してほしいと言われたので作成する。
## Localで変更/動作確認する
https://github.com/mrjackphil/obsidian-jump-to-link
まずはクローン。[[yarn]]はインストールしていないので、[[yarnをインストール]]してから[[yarnでdependencies(packages)をインストール]]する。
確認の仕方は[[📕Obsidianプラグイン開発チュートリアル#動作確認]]のとおり。
## プルリク作成
https://github.com/mrjackphil/obsidian-jump-to-link/pull/7
マージされた ✨