diff --git a/src/events/FrontMatterTitle.ts b/src/events/FrontMatterTitle.ts index 966837f..224faf6 100644 --- a/src/events/FrontMatterTitle.ts +++ b/src/events/FrontMatterTitle.ts @@ -26,25 +26,27 @@ export class FrontMatterTitlePluginHandler { await this.deffer.awaitFeatures(); } } - const dispatcher = this.api?.getEventDispatcher(); - if (dispatcher) { - this.dispatcher = dispatcher; + if (plugin.settings.frontMatterTitle.enabled) { + const dispatcher = this.api?.getEventDispatcher(); + if (dispatcher) { + this.dispatcher = dispatcher; + } + const event: Listener = { + name: 'manager:update', + cb: (data) => { + this.fmptUpdateFileName(data as any, true); + }, + }; + // Keep ref to remove listener + const ref = dispatcher?.addListener(event); + if (ref) { + this.eventRef = ref; + } + // this.plugin.app.vault.getFiles().forEach((file) => { + // this.handleRename({ id: '', result: false, path: file.path }, false); + // }); + this.plugin.updateAllBreadcrumbs(); } - const event: Listener = { - name: 'manager:update', - cb: (data) => { - this.fmptUpdateFileName(data as any, true); - }, - }; - // Keep ref to remove listener - const ref = dispatcher?.addListener(event); - if (ref) { - this.eventRef = ref; - } - // this.plugin.app.vault.getFiles().forEach((file) => { - // this.handleRename({ id: '', result: false, path: file.path }, false); - // }); - this.plugin.updateAllBreadcrumbs(); })(); } deleteEvent() { @@ -123,4 +125,23 @@ export class FrontMatterTitlePluginHandler { folder.newName = newName; this.modifiedFolders.set(folder.path, folder); } + + async getNewFolderName(folder: TFolder): Promise { + if (this.modifiedFolders.has(folder.path)) { + const modifiedFolder = this.modifiedFolders.get(folder.path); + if (modifiedFolder) { + return modifiedFolder.newName; + } + } + const folderNote = getFolderNote(this.plugin, folder.path); + if (!folderNote) return null; + const resolver = this.api?.getResolverFactory()?.createResolver('#feature-id#'); + return resolver?.resolve(folderNote?.path ?? '') ?? null; + } + + async getNewFileName(file: TFile): Promise { + const resolver = this.api?.getResolverFactory()?.createResolver('#feature-id#'); + const changedName = resolver?.resolve(file?.path ?? ''); + return changedName ?? null; + } } diff --git a/src/obsidian-folder-overview b/src/obsidian-folder-overview index 4eb8381..49aa6fc 160000 --- a/src/obsidian-folder-overview +++ b/src/obsidian-folder-overview @@ -1 +1 @@ -Subproject commit 4eb8381ae1df5a95b94159263a6be31284d40ade +Subproject commit 49aa6fcb8d065a5b22e8792f92f6faa968080c03 diff --git a/src/settings/FolderOverviewSettings.ts b/src/settings/FolderOverviewSettings.ts index 937e716..69f1985 100644 --- a/src/settings/FolderOverviewSettings.ts +++ b/src/settings/FolderOverviewSettings.ts @@ -5,7 +5,14 @@ export async function renderFolderOverview(settingsTab: SettingsTab) { const { plugin } = settingsTab; const overviewSettings = plugin.settings.defaultOverview; const containerEl = settingsTab.settingsPage; - containerEl.createEl('p', { text: 'Edit the default settings for folder overviews', cls: 'setting-item-description' }); + const pEl = containerEl.createEl('p', { + text: 'Edit the default settings for new folder overviews, ', + cls: 'setting-item-description', + }); + const span = createSpan({ text: "this won't apply to already existing overviews.", cls: '' }); + const accentColor = (settingsTab.app.vault.getConfig('accentColor') as string) || '#7d5bed'; + span.setAttr('style', `color: ${accentColor};`); + pEl.appendChild(span); createOverviewSettings(containerEl, overviewSettings, plugin, plugin.settings.defaultOverview, settingsTab.display, undefined, undefined, undefined, settingsTab); } diff --git a/src/settings/GeneralSettings.ts b/src/settings/GeneralSettings.ts index ecea455..438860e 100644 --- a/src/settings/GeneralSettings.ts +++ b/src/settings/GeneralSettings.ts @@ -470,7 +470,7 @@ export async function renderGeneral(settingsTab: SettingsTab) { settingsTab.plugin.fmtpHandler?.fmptUpdateFileName({ id: '', result: false, path: file.path, pathOnly: false }, false); }); settingsTab.plugin.fmtpHandler?.deleteEvent(); - settingsTab.plugin.fmtpHandler = null; + settingsTab.plugin.fmtpHandler = new FrontMatterTitlePluginHandler(settingsTab.plugin); } settingsTab.display(); }) diff --git a/src/settings/SettingsTab.ts b/src/settings/SettingsTab.ts index ec93c2a..b1539af 100644 --- a/src/settings/SettingsTab.ts +++ b/src/settings/SettingsTab.ts @@ -128,6 +128,7 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = { hideLinkList: true, hideFolderOverview: false, useActualLinks: false, + fmtpIntegration: false, }, useSubmenus: true, syncMove: true,