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 - uses: pnpm/action-setup@v4
with: with:
version: 9.3.0
run_install: true run_install: true
- name: Use Node.js - name: Use Node.js
@@ -61,7 +60,7 @@ jobs:
with: with:
tag_name: ${{ github.ref }} tag_name: ${{ github.ref }}
release_name: ${{ github.ref }} release_name: ${{ github.ref }}
body: ${{ steps.git-cliff.outputs.changelog }} body: ${{ steps.git-cliff.outputs.content }}
draft: true draft: true
prerelease: false 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. > 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 - Find your **📝notes, 📄Office documents, 📄PDFs, and 🖼images** faster than ever
- Images and PDF indexing is available - Images, documents, and PDF indexing is available
through [Text Extractor](https://github.com/scambier/obsidian-text-extractor) through [Text Extractor](https://github.com/scambier/obsidian-text-extractor)
- Automatic document scoring using - Automatic document scoring using
the [BM25 algorithm](https://github.com/lucaong/minisearch/issues/129#issuecomment-1046257399) 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) To all people who donate through [Ko-Fi](https://ko-fi.com/scambier)
or [Github Sponsors](https://github.com/sponsors/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", "id": "omnisearch",
"name": "Omnisearch", "name": "Omnisearch",
"version": "1.24.0-beta.2", "version": "1.24.1",
"minAppVersion": "1.3.0", "minAppVersion": "1.3.0",
"description": "A search engine that just works", "description": "A search engine that just works",
"author": "Simon Cambier", "author": "Simon Cambier",

View File

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

View File

@@ -1,6 +1,6 @@
{ {
"name": "scambier.obsidian-search", "name": "scambier.obsidian-search",
"version": "1.24.0-beta.3", "version": "1.24.1",
"description": "A search engine for Obsidian", "description": "A search engine for Obsidian",
"main": "dist/main.js", "main": "dist/main.js",
"scripts": { "scripts": {
@@ -14,13 +14,13 @@
"author": "Simon Cambier", "author": "Simon Cambier",
"license": "GPL-3", "license": "GPL-3",
"devDependencies": { "devDependencies": {
"@babel/preset-env": "^7.24.6", "@babel/preset-env": "^7.25.4",
"@babel/preset-typescript": "^7.24.6", "@babel/preset-typescript": "^7.24.7",
"@testing-library/jest-dom": "^5.17.0", "@testing-library/jest-dom": "^5.17.0",
"@tsconfig/svelte": "^3.0.0", "@tsconfig/svelte": "^3.0.0",
"@types/jest": "^27.5.2", "@types/jest": "^27.5.2",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^16.18.97", "@types/node": "^16.18.108",
"@types/pako": "^2.0.3", "@types/pako": "^2.0.3",
"babel-jest": "^27.5.1", "babel-jest": "^27.5.1",
"builtin-modules": "^3.3.0", "builtin-modules": "^3.3.0",
@@ -52,5 +52,6 @@
"overrides": { "overrides": {
"moment@>=2.18.0 <2.29.4": ">=2.29.4" "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"> <script lang="ts">
import { debounce } from 'obsidian' import { debounce, Platform } from 'obsidian'
import { toggleInputComposition } from 'src/globals' import { toggleInputComposition } from '../globals'
import { createEventDispatcher, tick } from 'svelte' import { createEventDispatcher, tick } from 'svelte'
import type OmnisearchPlugin from '../main' import type OmnisearchPlugin from '../main'
import { wait } from '../tools/utils'
export let initialValue = '' export let initialValue = ''
export let placeholder = '' export let placeholder = ''
@@ -28,11 +29,13 @@
function selectInput(_?: HTMLElement): void { function selectInput(_?: HTMLElement): void {
tick() tick()
.then(() => { .then(async () => {
if (Platform.isMobileApp) await wait(200)
elInput.focus() elInput.focus()
return tick() return tick()
}) })
.then(() => { .then(async () => {
if (Platform.isMobileApp) await wait(200)
elInput.select() elInput.select()
}) })
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -128,24 +128,6 @@ export class SettingsTab extends PluginSettingTab {
//#region Indexing //#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) new Setting(containerEl)
.setName('Indexing') .setName('Indexing')
.setHeading() .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. ? `👍 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.` <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.` : `⚠️ 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 { removeDiacritics, warnDebug } from './utils'
import type { Query } from 'src/search/query' import type { Query } from '../search/query'
import { Notice } from 'obsidian' import { Notice } from 'obsidian'
import { escapeRegExp } from 'lodash-es' import { escapeRegExp } from 'lodash-es'
import type OmnisearchPlugin from '../main' import type OmnisearchPlugin from '../main'

View File

@@ -144,5 +144,8 @@
"1.23.0": "1.3.0", "1.23.0": "1.3.0",
"1.24.0-beta.1": "1.3.0", "1.24.0-beta.1": "1.3.0",
"1.23.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"
} }