Compare commits

...

3 Commits

Author SHA1 Message Date
269a1e6ea4 Organize README, add aka info 2026-02-06 09:26:39 -07:00
9e68a725d0 Make aka header matching stricter 2026-02-06 09:12:28 -07:00
44da87a29d feat: Extract 'aka' lines from first paragraph for H1 indexing
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
2026-02-06 09:06:34 -07:00
2 changed files with 32 additions and 12 deletions

View File

@@ -1,17 +1,18 @@
# Tannersearch for Obsidian
This is a fork of [obsidian-omnisearch](https://github.com/scambier/obsidian-omnisearch) by [@scambier](https://github.com/scambier) with the following changes:
This is a fork of [obsidian-omnisearch](https://github.com/scambier/obsidian-omnisearch) (by [@scambier](https://github.com/scambier)) with the following changes:
- when opening a result, the cursor placement offset prioritizes note titles, headings, then content
- this means if the note's name matches your search, it opens at the top
- search terms aren't split on apostrophes
- searching for "Sun's BBQ" searches for ["Sun's", "BBQ"] instead of ["Sun", "s", "BBQ"]
- searches aren't HTML escaped
- before searching for "Sun's BBQ" would actually search for `Sun&#039;s BBQ`
- search terms less than 3 characters long or common words are ignored
- ignored words: "a", "an", "the", "and", "or", "but", "if", "in", "on", "at", "by", "for", "with", "to", "from", "of", "is", "it", "that", "this"
- the first line of a paragraph is ranked like Heading 3 if it ends in a colon
- for example,
When opening a result, the cursor placement prioritizes note titles over headings over content
- this means if the note's name matches your search, it opens at the top instead of on a random match in the middle of the note
Search terms aren't split on apostrophes
- searching for "Sun's BBQ" searches for ["Sun's", "BBQ"] instead of ["Sun", "s", "BBQ"]
Search terms less than 3 characters long or common words are ignored
- ignored words: "a", "an", "the", "and", "or", "but", "if", "in", "on", "at", "by", "for", "with", "to", "from", "of", "is", "it", "that", "this"
The first line of a paragraph is ranked like Heading 3 if it ends in a colon
- for example,
```
Japan trip:
@@ -22,6 +23,19 @@ Japan trip:
... "Japan trip:" is indexed and ranked the same as "### Japan trip"
If the first paragraph of a note contains a line like "aka other name", then "other name" is ranked like H1
- for example,
```
see also: [[Travel General]]
Aka: packing list
content
```
... "packing list" is indexed and ranged the same as "# packing list". Note that "Aka:" isn't case or colon sensitive.
# Original README

View File

@@ -233,6 +233,12 @@ export class DocumentsRepository {
const headings2 = metadata ? extractHeadingsFromCache(metadata, 2) : []
const headings3 = metadata ? extractHeadingsFromCache(metadata, 3) : []
const akaHeadings: string[] = content
.split(/\n\s*\n/)[0]
.split('\n')
.map(line => line.match(/^aka:?\s*(.+)$/i)?.[1]?.trim())
.filter((heading): heading is string => !!heading)
const lines = content.split('\n')
const colonHeadings: string[] = []
for (let i = 0; i < lines.length; i++) {
@@ -263,7 +269,7 @@ export class DocumentsRepository {
tags: tags,
unmarkedTags: tags.map(t => t.replace('#', '')),
aliases: getAliasesFromMetadata(metadata).join(''),
headings1: headings1.join(' '),
headings1: [...headings1, ...akaHeadings].join(' '),
headings2: headings2.join(' '),
headings3: [...headings3, ...colonHeadings].join(' '),
}