diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d69ccb..cccb5d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## v0.2.3 (7 April 2024) +- Piped italicized links are now handled correctly. (https://github.com/iafisher/obsidian-quick-links/issues/5) + ## v0.2.2 (2 March 2024) - Italicized links are now handled correctly. (https://github.com/iafisher/obsidian-quick-links/issues/3) diff --git a/manifest.json b/manifest.json index 5748eff..630d7d9 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "id": "quick-links", "name": "Quick Links", - "version": "0.2.2", + "version": "0.2.3", "minAppVersion": "0.15.0", "description": "Create quick link shortcuts to Wikipedia and other sites", "author": "Ian Fisher", diff --git a/src/live-preview.ts b/src/live-preview.ts index 9d9056f..20dd72b 100644 --- a/src/live-preview.ts +++ b/src/live-preview.ts @@ -75,9 +75,9 @@ class LivePreviewQuickLinksPluginValue implements PluginValue { if (settings.useWikiLinkSyntax) { // e.g., "[[w:New York City]]" const plainInternalLinkPattern = [ - ["formatting-link_formatting-link-start", "em_formatting-link_formatting-link-start"], - ["em_hmd-internal-link", "hmd-internal-link"], - ["formatting-link_formatting-link-end", "em_formatting-link_formatting-link-end"], + "formatting-link_formatting-link-start", + "hmd-internal-link", + "formatting-link_formatting-link-end", ]; console.debug("Searching for plain internal links"); for (const chunk of findChunks(nodes, plainInternalLinkPattern)) { @@ -93,11 +93,11 @@ class LivePreviewQuickLinksPluginValue implements PluginValue { // e.g., "[[w:Los Angeles|L.A.]]" const pipedInternalLinkPattern = [ - ["formatting-link_formatting-link-start", "em_formatting-link_formatting-link-start"], + "formatting-link_formatting-link-start", "hmd-internal-link_link-has-alias", "hmd-internal-link_link-alias-pipe", "hmd-internal-link_link-alias", - ["formatting-link_formatting-link-end", "em_formatting-link_formatting-link-end"], + "formatting-link_formatting-link-end", ]; console.debug("Searching for piped internal links"); for (const chunk of findChunks(nodes, pipedInternalLinkPattern)) { @@ -193,7 +193,7 @@ class LivePreviewQuickLinksPluginValue implements PluginValue { } } -type ChunkPattern = (string | string[])[]; +type ChunkPattern = string[]; function findChunks(nodes: SyntaxNode[], pattern: ChunkPattern): SyntaxNode[][] { const chunks: SyntaxNode[][] = []; @@ -210,22 +210,8 @@ function findChunks(nodes: SyntaxNode[], pattern: ChunkPattern): SyntaxNode[][] function doesChunkMatch(chunk: SyntaxNodeRef[], pattern: ChunkPattern): boolean { for (let i = 0; i < chunk.length; i++) { - if (typeof pattern[i] === "string") { - if (!chunk[i].name.startsWith(pattern[i] as string)) { - return false; - } - } else { - let matched = false; - for (const subpattern of pattern[i]) { - if (chunk[i].name.startsWith(subpattern)) { - matched = true; - break; - } - } - - if (!matched) { - return false; - } + if (!chunk[i].name.includes(pattern[i] as string)) { + return false; } }