diff --git a/src/editor/ReadingModeTaskLinkProcessor.ts b/src/editor/ReadingModeTaskLinkProcessor.ts index ef90246d..e4824fba 100644 --- a/src/editor/ReadingModeTaskLinkProcessor.ts +++ b/src/editor/ReadingModeTaskLinkProcessor.ts @@ -163,6 +163,18 @@ export class ReadingModeTaskLinkProcessor { // Get the original link text for display const originalText = linkEl.textContent || `[[${originalLinkPath}]]`; + // Check for alias exclusion + if (this.plugin.settings.disableOverlayOnAlias) { + // In reading mode, we check if the displayed text differs from the path or title + // If it does, it's likely an alias/custom text + const currentText = linkEl.textContent || ""; + + // If text doesn't match path AND doesn't match task title, it's an alias + if (currentText !== originalLinkPath && currentText !== taskInfo.title) { + return; + } + } + // Parse display text if it's a piped link let displayText: string | undefined; const linkContent = linkEl.textContent || ""; diff --git a/src/editor/TaskLinkOverlay.ts b/src/editor/TaskLinkOverlay.ts index 92c32aaf..65c7f5c9 100644 --- a/src/editor/TaskLinkOverlay.ts +++ b/src/editor/TaskLinkOverlay.ts @@ -273,6 +273,14 @@ export function buildTaskLinkDecorations( continue; } + // Check for alias exclusion + if (plugin.settings.disableOverlayOnAlias) { + // Skip Wikilinks with pipes [[Path|Alias]] + if (link.type === "wikilink" && link.match.includes("|")) { + continue; + } + } + // Parse the link to get the link path (handle both wikilinks and markdown links) const parsed = link.type === "wikilink" diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts index eed5101a..5e479035 100644 --- a/src/settings/defaults.ts +++ b/src/settings/defaults.ts @@ -289,6 +289,7 @@ export const DEFAULT_SETTINGS: TaskNotesSettings = { pomodoroMobileSidebar: "tab", // Editor defaults enableTaskLinkOverlay: true, + disableOverlayOnAlias: false, enableInstantTaskConvert: true, useDefaultsOnInstantConvert: true, enableNaturalLanguageInput: true, diff --git a/src/settings/tabs/featuresTab.ts b/src/settings/tabs/featuresTab.ts index d81a26f4..61f970d2 100644 --- a/src/settings/tabs/featuresTab.ts +++ b/src/settings/tabs/featuresTab.ts @@ -54,6 +54,18 @@ export function renderFeaturesTab( ); if (plugin.settings.enableTaskLinkOverlay) { + group.addSetting((setting) => + configureToggleSetting(setting, { + name: translate("settings.features.overlays.aliasExclusion.name"), + desc: translate("settings.features.overlays.aliasExclusion.description"), + getValue: () => plugin.settings.disableOverlayOnAlias, + setValue: async (value: boolean) => { + plugin.settings.disableOverlayOnAlias = value; + save(); + }, + }) + ); + group.addSetting((setting) => { setting .setName("Inline Task Card Properties") diff --git a/src/types/settings.ts b/src/types/settings.ts index 3a7e81b6..4011758a 100644 --- a/src/types/settings.ts +++ b/src/types/settings.ts @@ -124,6 +124,7 @@ export interface TaskNotesSettings { pomodoroMobileSidebar: "tab" | "left" | "right"; // where to open pomodoro view on mobile // Editor settings enableTaskLinkOverlay: boolean; + disableOverlayOnAlias: boolean; enableInstantTaskConvert: boolean; useDefaultsOnInstantConvert: boolean; enableNaturalLanguageInput: boolean;