Merge branch 'master' into develop

This commit is contained in:
Simon Cambier
2024-09-25 20:44:06 +02:00
15 changed files with 1174 additions and 1080 deletions

View File

@@ -20,7 +20,6 @@ jobs:
- uses: pnpm/action-setup@v4
with:
version: 9.3.0
run_install: true
- name: Use Node.js
@@ -61,7 +60,7 @@ jobs:
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: ${{ steps.git-cliff.outputs.changelog }}
body: ${{ steps.git-cliff.outputs.content }}
draft: true
prerelease: false

View File

@@ -34,8 +34,8 @@ You can check the [CHANGELOG](./CHANGELOG.md) for more information on the differ
> Omnisearch's first goal is to _locate_ files instantly. You can see it as a _Quick Switcher_ on steroids.
- Find your **📝notes, 📄PDFs, and 🖼images** faster than ever
- Images and PDF indexing is available
- Find your **📝notes, 📄Office documents, 📄PDFs, and 🖼images** faster than ever
- Images, documents, and PDF indexing is available
through [Text Extractor](https://github.com/scambier/obsidian-text-extractor)
- Automatic document scoring using
the [BM25 algorithm](https://github.com/lucaong/minisearch/issues/129#issuecomment-1046257399)
@@ -72,4 +72,4 @@ Omnisearch is licensed under [GPL-3](https://tldrlegal.com/license/gnu-general-p
To all people who donate through [Ko-Fi](https://ko-fi.com/scambier)
or [Github Sponsors](https://github.com/sponsors/scambier) ❤
![JetBrains Logo (Main) logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.svg)
![JetBrains logo](https://resources.jetbrains.com/storage/products/company/brand/logos/jetbrains.svg)

View File

@@ -1,7 +1,7 @@
{
"id": "omnisearch",
"name": "Omnisearch",
"version": "1.24.0-beta.2",
"version": "1.24.1",
"minAppVersion": "1.3.0",
"description": "A search engine that just works",
"author": "Simon Cambier",

View File

@@ -1,7 +1,7 @@
{
"id": "omnisearch",
"name": "Omnisearch",
"version": "1.23.1",
"version": "1.24.1",
"minAppVersion": "1.3.0",
"description": "A search engine that just works",
"author": "Simon Cambier",

View File

@@ -1,6 +1,6 @@
{
"name": "scambier.obsidian-search",
"version": "1.24.0-beta.3",
"version": "1.24.1",
"description": "A search engine for Obsidian",
"main": "dist/main.js",
"scripts": {
@@ -14,13 +14,13 @@
"author": "Simon Cambier",
"license": "GPL-3",
"devDependencies": {
"@babel/preset-env": "^7.24.6",
"@babel/preset-typescript": "^7.24.6",
"@babel/preset-env": "^7.25.4",
"@babel/preset-typescript": "^7.24.7",
"@testing-library/jest-dom": "^5.17.0",
"@tsconfig/svelte": "^3.0.0",
"@types/jest": "^27.5.2",
"@types/lodash-es": "^4.17.12",
"@types/node": "^16.18.97",
"@types/node": "^16.18.108",
"@types/pako": "^2.0.3",
"babel-jest": "^27.5.1",
"builtin-modules": "^3.3.0",
@@ -52,5 +52,6 @@
"overrides": {
"moment@>=2.18.0 <2.29.4": ">=2.29.4"
}
}
},
"packageManager": "pnpm@9.1.0+sha512.67f5879916a9293e5cf059c23853d571beaf4f753c707f40cb22bed5fb1578c6aad3b6c4107ccb3ba0b35be003eb621a16471ac836c87beb53f9d54bb4612724"
}

2158
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,9 @@
<script lang="ts">
import { debounce } from 'obsidian'
import { toggleInputComposition } from 'src/globals'
import { debounce, Platform } from 'obsidian'
import { toggleInputComposition } from '../globals'
import { createEventDispatcher, tick } from 'svelte'
import type OmnisearchPlugin from '../main'
import { wait } from '../tools/utils'
export let initialValue = ''
export let placeholder = ''
@@ -28,11 +29,13 @@
function selectInput(_?: HTMLElement): void {
tick()
.then(() => {
.then(async () => {
if (Platform.isMobileApp) await wait(200)
elInput.focus()
return tick()
})
.then(() => {
.then(async () => {
if (Platform.isMobileApp) await wait(200)
elInput.select()
})
}

View File

@@ -6,18 +6,18 @@
excerptAfter,
type ResultNote,
type SearchMatch,
} from 'src/globals'
import { getCtrlKeyLabel, loopIndex } from 'src/tools/utils'
} from '../globals'
import { getCtrlKeyLabel, loopIndex } from '../tools/utils'
import { onDestroy, onMount, tick } from 'svelte'
import { MarkdownView, Platform } from 'obsidian'
import ModalContainer from './ModalContainer.svelte'
import {
OmnisearchInFileModal,
OmnisearchVaultModal,
} from 'src/components/modals'
} from '../components/modals'
import ResultItemInFile from './ResultItemInFile.svelte'
import { Query } from 'src/search/query'
import { openNote } from 'src/tools/notes'
import { Query } from '../search/query'
import { openNote } from '../tools/notes'
import type OmnisearchPlugin from '../main'
export let plugin: OmnisearchPlugin
@@ -52,6 +52,7 @@
if (searchQuery) {
query = new Query(searchQuery, {
ignoreDiacritics: plugin.settings.ignoreDiacritics,
ignoreArabicDiacritics: plugin.settings.ignoreArabicDiacritics,
})
note =
(

View File

@@ -10,20 +10,20 @@
type ResultNote,
SPACE_OR_PUNCTUATION,
Action,
} from 'src/globals'
import { createNote, openNote } from 'src/tools/notes'
} from '../globals'
import { createNote, openNote } from '../tools/notes'
import {
getCtrlKeyLabel,
getExtension,
isFilePDF,
loopIndex,
} from 'src/tools/utils'
} from '../tools/utils'
import {
OmnisearchInFileModal,
type OmnisearchVaultModal,
} from 'src/components/modals'
} from '../components/modals'
import ResultItemVault from './ResultItemVault.svelte'
import { Query } from 'src/search/query'
import { Query } from '../search/query'
import { cancelable, CancelablePromise } from 'cancelable-promise'
import { debounce } from 'lodash-es'
import type OmnisearchPlugin from '../main'

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import { showExcerpt } from 'src/settings'
import { showExcerpt } from '../settings'
import type { ResultNote } from '../globals'
import {
getExtension,

View File

@@ -3,7 +3,7 @@ import type { Modifier } from 'obsidian'
import ModalVault from './ModalVault.svelte'
import ModalInFile from './ModalInFile.svelte'
import { Action, eventBus, EventNames, isInputComposition } from '../globals'
import type OmnisearchPlugin from 'src/main'
import type OmnisearchPlugin from '../main'
abstract class OmnisearchModal extends Modal {
protected constructor(plugin: OmnisearchPlugin) {

View File

@@ -1,6 +1,6 @@
import type { QueryCombination } from 'minisearch'
import { BRACKETS_AND_SPACE, chsRegex, SPACE_OR_PUNCTUATION } from 'src/globals'
import { logDebug, splitCamelCase, splitHyphens } from 'src/tools/utils'
import { BRACKETS_AND_SPACE, chsRegex, SPACE_OR_PUNCTUATION } from '../globals'
import { logDebug, splitCamelCase, splitHyphens } from '../tools/utils'
import type OmnisearchPlugin from '../main'
const markdownLinkExtractor = require('markdown-link-extractor')

View File

@@ -128,24 +128,6 @@ export class SettingsTab extends PluginSettingTab {
//#region Indexing
const indexingDesc = new DocumentFragment()
indexingDesc.createSpan({}, span => {
span.innerHTML = `⚠️ <span style="color: var(--text-accent)">Changing indexing settings will clear the cache, and requires a restart of Obsidian.</span><br/><br/>`
if (textExtractor) {
span.innerHTML += `
👍 You have installed <a href="https://github.com/scambier/obsidian-text-extractor">Text Extractor</a>, Omnisearch can use it to index PDFs and images contents.
<br />Text extraction only works on desktop, but the cache can be synchronized with your mobile device.`
} else {
span.innerHTML += `⚠️ Omnisearch requires <a href="https://github.com/scambier/obsidian-text-extractor">Text Extractor</a> to index PDFs and images.`
}
if (aiImageAnalyzer) {
span.innerHTML += `<br/>👍 You have installed <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a>, Omnisearch can use it to index images contents with ai.`
}else {
span.innerHTML += `<br/>⚠️ Omnisearch requires <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a> to index images with ai.`
}
})
new Setting(containerEl)
.setName('Indexing')
.setHeading()
@@ -156,6 +138,11 @@ export class SettingsTab extends PluginSettingTab {
? `👍 You have installed <a href="https://github.com/scambier/obsidian-text-extractor">Text Extractor</a>, Omnisearch can use it to index PDFs and images contents.
<br />Text extraction only works on desktop, but the cache can be synchronized with your mobile device.`
: `⚠️ Omnisearch requires <a href="https://github.com/scambier/obsidian-text-extractor">Text Extractor</a> to index PDFs and images.`
}
${
aiImageAnalyzer
? `<br/>👍 You have installed <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a>, Omnisearch can use it to index images contents with ai.`
: `<br/>⚠️ Omnisearch requires <a href="https://github.com/Swaggeroo/obsidian-ai-image-analyzer">AI Image Analyzer</a> to index images with ai.`
}`)
)

View File

@@ -1,6 +1,6 @@
import { excerptAfter, excerptBefore, type SearchMatch } from 'src/globals'
import { excerptAfter, excerptBefore, type SearchMatch } from '../globals'
import { removeDiacritics, warnDebug } from './utils'
import type { Query } from 'src/search/query'
import type { Query } from '../search/query'
import { Notice } from 'obsidian'
import { escapeRegExp } from 'lodash-es'
import type OmnisearchPlugin from '../main'

View File

@@ -144,5 +144,8 @@
"1.23.0": "1.3.0",
"1.24.0-beta.1": "1.3.0",
"1.23.1": "1.3.0",
"1.24.0-beta.2": "1.3.0"
"1.24.0-beta.2": "1.3.0",
"1.24.0-beta.3": "1.3.0",
"1.24.0": "1.3.0",
"1.24.1": "1.3.0"
}