diff --git a/src/main.ts b/src/main.ts index 559f8c5..e089de0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -105,11 +105,11 @@ export default class OmnisearchPlugin extends Plugin { } executeFirstLaunchTasks(): void { - const code = '1.10.0-beta.1' + const code = '1.10.1' if (settings.welcomeMessage !== code) { const welcome = new DocumentFragment() welcome.createSpan({}, span => { - span.innerHTML = `🔎 Omnisearch will soon require the Text Extractor plugin to index PDF and images. See Omnisearch settings for more information.` + span.innerHTML = `🔎 Omnisearch now requires the Text Extractor plugin to index PDF and images. See Omnisearch settings for more information.` }) new Notice(welcome, 20_000) } diff --git a/src/settings.ts b/src/settings.ts index e059de7..0d2d4de 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -86,53 +86,50 @@ export class SettingsTab extends PluginSettingTab { new Setting(containerEl).setName('Indexing').setHeading() + const textExtractDesc = new DocumentFragment() if (getTextExtractor()) { - const desc = new DocumentFragment() - desc.createSpan({}, span => { + textExtractDesc.createSpan({}, span => { span.innerHTML = `👍 You have installed Text Extractor, Omnisearch will use it to index PDFs and images.
Text extraction only works on desktop, but the cache can be synchronized with your mobile device.` }) - new Setting(containerEl).setDesc(desc) } else { - const label = new DocumentFragment() - label.createSpan({}, span => { - span.innerHTML = `⚠️ Omnisearch will soon require Text Extractor to index PDFs and images. - You can already install it to get a head start.` + textExtractDesc.createSpan({}, span => { + span.innerHTML = `⚠️ Omnisearch requires Text Extractor to index PDFs and images.` }) - new Setting(containerEl).setDesc(label) } + new Setting(containerEl).setDesc(textExtractDesc) // PDF Indexing - if (!Platform.isMobileApp || getTextExtractor()) { - const indexPDFsDesc = new DocumentFragment() - indexPDFsDesc.createSpan({}, span => { - span.innerHTML = `Include PDFs in search results - Will soon depend on Text Extractor.` - }) - new Setting(containerEl) - .setName(`PDFs Indexing`) - .setDesc(indexPDFsDesc) - .addToggle(toggle => - toggle.setValue(settings.PDFIndexing).onChange(async v => { - settings.PDFIndexing = v - await saveSettings(this.plugin) - }) - ) + const indexPDFsDesc = new DocumentFragment() + indexPDFsDesc.createSpan({}, span => { + span.innerHTML = `Include PDFs in search results` + }) + new Setting(containerEl) + .setName(`PDFs Indexing ${getTextExtractor() ? '' : '⚠️ Disabled'}`) + .setDesc(indexPDFsDesc) + .addToggle(toggle => + toggle.setValue(settings.PDFIndexing).onChange(async v => { + settings.PDFIndexing = v + await saveSettings(this.plugin) + }) + ) + .setDisabled(!getTextExtractor()) - // Images Indexing - const indexImagesDesc = new DocumentFragment() - indexImagesDesc.createSpan({}, span => { - span.innerHTML = `Include images in search results - Will soon depend on Text Extractor.` - }) - new Setting(containerEl) - .setName(`Images Indexing`) - .setDesc(indexImagesDesc) - .addToggle(toggle => - toggle.setValue(settings.imagesIndexing).onChange(async v => { - settings.imagesIndexing = v - await saveSettings(this.plugin) - }) - ) - } + // Images Indexing + const indexImagesDesc = new DocumentFragment() + indexImagesDesc.createSpan({}, span => { + span.innerHTML = `Include images in search results` + }) + new Setting(containerEl) + .setName(`Images Indexing ${getTextExtractor() ? '' : '⚠️ Disabled'}`) + .setDesc(indexImagesDesc) + .addToggle(toggle => + toggle.setValue(settings.imagesIndexing).onChange(async v => { + settings.imagesIndexing = v + await saveSettings(this.plugin) + }) + ) + .setDisabled(!getTextExtractor()) // Additional files to index const indexedFileTypesDesc = new DocumentFragment() diff --git a/src/tools/utils.ts b/src/tools/utils.ts index cc9d9ff..02f20f9 100644 --- a/src/tools/utils.ts +++ b/src/tools/utils.ts @@ -5,16 +5,17 @@ import { parseFrontMatterAliases, Platform, } from 'obsidian' -import { getTextExtractor, type SearchMatch } from '../globals' import { excerptAfter, excerptBefore, getChsSegmenter, + getTextExtractor, highlightClass, isSearchMatch, regexLineSplit, regexStripQuotes, regexYaml, + type SearchMatch, } from '../globals' import { settings } from '../settings' import { type BinaryLike, createHash } from 'crypto' @@ -236,8 +237,8 @@ export function getCtrlKeyLabel(): 'ctrl' | '⌘' { } export function isFileIndexable(path: string): boolean { - const canIndexPDF = (!Platform.isMobileApp || !!getTextExtractor()) && settings.PDFIndexing - const canIndexImages = (!Platform.isMobileApp || !!getTextExtractor()) && settings.imagesIndexing + const canIndexPDF = !!getTextExtractor() && settings.PDFIndexing + const canIndexImages = !!getTextExtractor() && settings.imagesIndexing return ( isFilePlaintext(path) || isFileCanvas(path) ||