Merge branch 'master' into develop
This commit is contained in:
3
.github/workflows/release.yml
vendored
3
.github/workflows/release.yml
vendored
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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) ❤
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
11
package.json
11
package.json
@@ -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
2158
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@@ -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()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 =
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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.`
|
||||||
}`)
|
}`)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user