Fixed functions to get tags and aliases
This commit is contained in:
@@ -19,7 +19,7 @@ describe('Utils', () => {
|
|||||||
// Arrange
|
// Arrange
|
||||||
const metadata = {
|
const metadata = {
|
||||||
frontmatter: { aliases: ['foo', 'bar'] },
|
frontmatter: { aliases: ['foo', 'bar'] },
|
||||||
} as CachedMetadata
|
} as unknown as CachedMetadata
|
||||||
// Act
|
// Act
|
||||||
const actual = getAliasesFromMetadata(metadata)
|
const actual = getAliasesFromMetadata(metadata)
|
||||||
// Assert
|
// Assert
|
||||||
@@ -29,7 +29,7 @@ describe('Utils', () => {
|
|||||||
// Arrange
|
// Arrange
|
||||||
const metadata = {
|
const metadata = {
|
||||||
frontmatter: { aliases: 'foo, bar' },
|
frontmatter: { aliases: 'foo, bar' },
|
||||||
} as CachedMetadata
|
} as unknown as CachedMetadata
|
||||||
// Act
|
// Act
|
||||||
const actual = getAliasesFromMetadata(metadata)
|
const actual = getAliasesFromMetadata(metadata)
|
||||||
// Assert
|
// Assert
|
||||||
@@ -39,7 +39,7 @@ describe('Utils', () => {
|
|||||||
// Arrange
|
// Arrange
|
||||||
const metadata = {
|
const metadata = {
|
||||||
frontmatter: { aliases: '' },
|
frontmatter: { aliases: '' },
|
||||||
} as CachedMetadata
|
} as unknown as CachedMetadata
|
||||||
// Act
|
// Act
|
||||||
const actual = getAliasesFromMetadata(metadata)
|
const actual = getAliasesFromMetadata(metadata)
|
||||||
// Assert
|
// Assert
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
import { type CachedMetadata, Notice, Platform } from 'obsidian'
|
import {
|
||||||
|
type CachedMetadata,
|
||||||
|
Notice,
|
||||||
|
Platform,
|
||||||
|
getAllTags,
|
||||||
|
parseFrontMatterAliases,
|
||||||
|
} from 'obsidian'
|
||||||
import type { SearchMatch } from '../globals'
|
import type { SearchMatch } from '../globals'
|
||||||
import {
|
import {
|
||||||
excerptAfter,
|
excerptAfter,
|
||||||
@@ -150,46 +156,13 @@ export function stripMarkdownCharacters(text: string): string {
|
|||||||
export function getAliasesFromMetadata(
|
export function getAliasesFromMetadata(
|
||||||
metadata: CachedMetadata | null
|
metadata: CachedMetadata | null
|
||||||
): string[] {
|
): string[] {
|
||||||
const arrOrString = metadata?.frontmatter?.aliases ?? []
|
return metadata?.frontmatter
|
||||||
try {
|
? parseFrontMatterAliases(metadata.frontmatter) ?? []
|
||||||
return (
|
: []
|
||||||
Array.isArray(arrOrString)
|
|
||||||
? arrOrString
|
|
||||||
: arrOrString.toString().split(',')
|
|
||||||
)
|
|
||||||
.map(s => (s ? s.trim() : s))
|
|
||||||
.filter(s => !!s)
|
|
||||||
} catch (e) {
|
|
||||||
new Notice(
|
|
||||||
'Omnisearch - Error while getting aliases from file, see developer console'
|
|
||||||
)
|
|
||||||
console.error(`Omnisearch - Error while getting aliases from file`)
|
|
||||||
console.error(e)
|
|
||||||
return []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTagsFromMetadata(metadata: CachedMetadata | null): string[] {
|
export function getTagsFromMetadata(metadata: CachedMetadata | null): string[] {
|
||||||
try {
|
return metadata ? getAllTags(metadata) ?? [] : []
|
||||||
const arrOrString = metadata?.frontmatter?.tags ?? []
|
|
||||||
const fromFrontMatter = (
|
|
||||||
Array.isArray(arrOrString) ? arrOrString : arrOrString.split(',')
|
|
||||||
)
|
|
||||||
.map(s => (s ? s.trim() : s))
|
|
||||||
.filter(s => !!s)
|
|
||||||
const fromBody = (metadata?.tags ?? []).map(t => t.tag)
|
|
||||||
|
|
||||||
return [...fromFrontMatter, ...fromBody].map(t =>
|
|
||||||
t[0] !== '#' ? '#' + t : t
|
|
||||||
)
|
|
||||||
} catch (e) {
|
|
||||||
new Notice(
|
|
||||||
'Omnisearch - Error while getting tags from file, see developer console'
|
|
||||||
)
|
|
||||||
console.error(`Omnisearch - Error while getting tags from file`)
|
|
||||||
console.error(e)
|
|
||||||
return []
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
5
src/typings/types-obsidian.d.ts
vendored
5
src/typings/types-obsidian.d.ts
vendored
@@ -5,11 +5,6 @@ declare module 'obsidian' {
|
|||||||
isUserIgnored?(path: string): boolean
|
isUserIgnored?(path: string): boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FrontMatterCache {
|
|
||||||
aliases?: string[] | string
|
|
||||||
tags?: string[] | string
|
|
||||||
}
|
|
||||||
|
|
||||||
interface ViewState {
|
interface ViewState {
|
||||||
state?: {
|
state?: {
|
||||||
file?: string
|
file?: string
|
||||||
|
|||||||
Reference in New Issue
Block a user