Support frontmatter title plugin for folder overview

This commit is contained in:
Lost Paul 2025-07-06 18:35:58 +02:00
parent 243aa671f1
commit ae1f67c84b
5 changed files with 50 additions and 21 deletions

View file

@ -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<Events, 'manager:update'> = {
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<Events, 'manager:update'> = {
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<string | null> {
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<string | null> {
const resolver = this.api?.getResolverFactory()?.createResolver('#feature-id#');
const changedName = resolver?.resolve(file?.path ?? '');
return changedName ?? null;
}
}

@ -1 +1 @@
Subproject commit 4eb8381ae1df5a95b94159263a6be31284d40ade
Subproject commit 49aa6fcb8d065a5b22e8792f92f6faa968080c03

View file

@ -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);
}

View file

@ -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();
})

View file

@ -128,6 +128,7 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = {
hideLinkList: true,
hideFolderOverview: false,
useActualLinks: false,
fmtpIntegration: false,
},
useSubmenus: true,
syncMove: true,