diff --git a/src/main.ts b/src/main.ts index cc1ba26..899495b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -297,7 +297,9 @@ export default class MediaDbPlugin extends Plugin { const targetFile = await this.createNote(this.mediaTypeManager.getFileName(mediaTypeModel), fileContent, options); - await useTemplaterPluginInFile(this.app, targetFile); + if (this.settings.enableTemplaterIntegration) { + await useTemplaterPluginInFile(this.app, targetFile); + } } catch (e) { console.warn(e); new Notice(e.toString()); @@ -376,7 +378,7 @@ export default class MediaDbPlugin extends Plugin { frontMatter.dataSource = mediaTypeModel.dataSource; } - if (hasTemplaterPlugin(this.app)) { + if (this.settings.enableTemplaterIntegration && hasTemplaterPlugin(this.app)) { // Only support stringifyYaml for templater plugin // Include the media variable in all templater commands by using a top level JavaScript execution command. fileContent = `---\n<%* const media = ${JSON.stringify(mediaTypeModel)} %>\n${stringifyYaml(frontMatter)}---\n${fileContent}`; diff --git a/src/settings/Settings.ts b/src/settings/Settings.ts index 7063308..c65078d 100644 --- a/src/settings/Settings.ts +++ b/src/settings/Settings.ts @@ -17,6 +17,7 @@ export interface MediaDbPluginSettings { customDateFormat: string; openNoteInNewTab: boolean; useDefaultFrontMatter: boolean; + enableTemplaterIntegration: boolean; movieTemplate: string; seriesTemplate: string; @@ -65,6 +66,7 @@ const DEFAULT_SETTINGS: MediaDbPluginSettings = { customDateFormat: 'L', openNoteInNewTab: true, useDefaultFrontMatter: true, + enableTemplaterIntegration: false, movieTemplate: '', seriesTemplate: '', @@ -232,6 +234,18 @@ export class MediaDbSettingTab extends PluginSettingTab { }); }); + new Setting(containerEl) + .setName('Enable Templater integration') + .setDesc( + 'Enable integration with the templater plugin, this also needs templater to be installed. Warning: Templater allows you to execute arbitrary JavaScript code and system commands.', + ) + .addToggle(cb => { + cb.setValue(this.plugin.settings.enableTemplaterIntegration).onChange(data => { + this.plugin.settings.enableTemplaterIntegration = data; + this.plugin.saveSettings(); + }); + }); + containerEl.createEl('h3', { text: 'New File Location' }); // region new file location new Setting(containerEl)