Skip to content

Commit

Permalink
Fix piped italicized links
Browse files Browse the repository at this point in the history
Fixed: #5
  • Loading branch information
iafisher committed Apr 8, 2024
1 parent 7dce7e5 commit 9816354
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 23 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)

Expand Down
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
30 changes: 8 additions & 22 deletions src/live-preview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)) {
Expand All @@ -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)) {
Expand Down Expand Up @@ -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[][] = [];
Expand All @@ -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;
}
}

Expand Down

0 comments on commit 9816354

Please sign in to comment.