diff --git a/package-lock.json b/package-lock.json index 3528d6e..9607815 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-sample-plugin", - "version": "1.0.22", + "version": "1.0.23", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "obsidian-sample-plugin", - "version": "1.0.22", + "version": "1.0.23", "license": "MIT", "devDependencies": { "@types/node": "16.11.6", diff --git a/src/models/PluginSettingsTab.ts b/src/models/PluginSettingsTab.ts index eeffc84..1dcc854 100644 --- a/src/models/PluginSettingsTab.ts +++ b/src/models/PluginSettingsTab.ts @@ -110,7 +110,7 @@ export class PluginSettingsTab extends PluginSettingTab { .setName("Excluded Folders") .setDesc("These Folders will not automatically create an IndexFile") .addTextArea(component => { - component.setPlaceholder("Folder1\nFolder2/Foo\nFolder3/Foo/Bar") + component.setPlaceholder("Folder1\nFolder2/Foo\nFolder3/*") .setValue(this.plugin.settings.excludeFolders.join("\n")) .onChange(async (value) => { this.plugin.settings.excludeFolders = value.split("\n") diff --git a/src/types/Utilities.ts b/src/types/Utilities.ts index f52ed90..7a827bc 100644 --- a/src/types/Utilities.ts +++ b/src/types/Utilities.ts @@ -1,5 +1,6 @@ import {TFile} from "obsidian"; import FolderIndexPlugin from "../main"; +import * as typescriptPath from "path"; export function isIndexFileWithFile(file: TFile) { return isIndexFile(file.path) @@ -19,10 +20,14 @@ export function isIndexFile(path: string) { } export function isExcludedPath(path: string) { - for (const excludedFolder of FolderIndexPlugin.PLUGIN.settings.excludeFolders) { + for (let excludedFolder of FolderIndexPlugin.PLUGIN.settings.excludeFolders) { if (excludedFolder == "") continue - if (RegExp(`^${excludedFolder}$`).test(path)) + + if (excludedFolder.endsWith("/*")) + excludedFolder = excludedFolder.slice(0, -1) + ".*"; + + if (RegExp(`^${excludedFolder}$`).test(path) || RegExp(`^${excludedFolder}$`).test(typescriptPath.dirname(path))) return true; } return false