diff --git a/src/khoj/interface/web/content_type_input.html b/src/khoj/interface/web/content_type_input.html index 3ef512f8..1f0dfa76 100644 --- a/src/khoj/interface/web/content_type_input.html +++ b/src/khoj/interface/web/content_type_input.html @@ -34,7 +34,7 @@ {% else %} {% for input_filter in current_config['input_filter'] %} - + {% endfor %} {% endif %} @@ -106,17 +106,18 @@ submit.addEventListener("click", function(event) { event.preventDefault(); - let globFormat = "**/*." + let globFormat = "**/*" let suffixes = []; if ('{{content_type}}' == "markdown") - suffixes = ["md", "markdown"] + suffixes = [".md", ".markdown"] else if ('{{content_type}}' == "org") - suffixes = ["org"] + suffixes = [".org"] else if ('{{content_type}}' === "pdf") - suffixes = ["pdf"] + suffixes = [".pdf"] else if ('{{content_type}}' === "plaintext") - suffixes = ['*'] + suffixes = ['.*'] + let globs = suffixes.map(x => `${globFormat}${x}`) var inputFileNodes = document.getElementsByName("input-files"); var inputFiles = getValidInputNodes(inputFileNodes).map(node => node.value); @@ -124,10 +125,19 @@ var inputFilter = []; var nodes = getValidInputNodes(inputFilterNodes); + + // A regex that checks for globs in the path. If they exist, + // we are going to just not add our own globing. If they don't, + // then we will assume globbing should be done. + const glob_regex = /([*?\[\]])/; if (nodes.length > 0) { for (var i = 0; i < nodes.length; i++) { - for (var j = 0; j < suffixes.length; j++) { - inputFilter.push(nodes[i].value + globFormat + suffixes[j]); + for (var j = 0; j < globs.length; j++) { + if (glob_regex.test(nodes[i].value)) { + inputFilter.push(nodes[i].value); + } else { + inputFilter.push(nodes[i].value + globs[j]); + } } } }