diff --git a/src/service/plan-editor.ts b/src/service/plan-editor.ts index e1d56330c..2043cdffb 100644 --- a/src/service/plan-editor.ts +++ b/src/service/plan-editor.ts @@ -173,12 +173,12 @@ export class PlanEditor { private async editFile(path: string, editFn: (contents: string) => string) { await this.obsidianFacade.editFile(path, (contents) => { const edited = editFn(contents); + const { plannerHeading, sortTasksInPlanAfterEdit } = this.settings(); - if (!this.settings().sortTasksInPlanAfterEdit) { + if (!plannerHeading || !sortTasksInPlanAfterEdit) { return edited; } - const plannerHeading = this.settings().plannerHeading; const mdastRoot = fromMarkdown(edited); const headingWithChildren = findHeadingWithChildren( mdastRoot, @@ -214,15 +214,14 @@ export class PlanEditor { contents: string[], metadata: CachedMetadata, ): [number, string[]] { - const planHeading = getHeadingByText( - metadata, - this.settings().plannerHeading, - ); + const { plannerHeading } = this.settings(); - const planListItems = getListItemsUnderHeading( - metadata, - this.settings().plannerHeading, - ); + if (!plannerHeading) { + return [contents.length, contents]; + } + + const planHeading = getHeadingByText(metadata, plannerHeading); + const planListItems = getListItemsUnderHeading(metadata, plannerHeading); if (planListItems && planListItems?.length > 0) { const lastListItem = planListItems[planListItems.length - 1]; diff --git a/src/ui/settings-tab.ts b/src/ui/settings-tab.ts index d2a3ca0a0..e27a67ab8 100644 --- a/src/ui/settings-tab.ts +++ b/src/ui/settings-tab.ts @@ -375,7 +375,7 @@ export class DayPlannerSettingsTab extends PluginSettingTab { new Setting(containerEl) .setName("Planner Heading Text") .setDesc( - `When you create a planner, this text is going to be in the heading`, + `When you create a planner, the events will be kept under this header. If empty, then events are placed at the bottom of the file.`, ) .addText((component) => component