#256 - Support for .loom files for the Dataloom plugin
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
|||||||
getAliasesFromMetadata,
|
getAliasesFromMetadata,
|
||||||
getTagsFromMetadata,
|
getTagsFromMetadata,
|
||||||
isFileCanvas,
|
isFileCanvas,
|
||||||
|
isFileFromDataloomPlugin,
|
||||||
isFilePlaintext,
|
isFilePlaintext,
|
||||||
logDebug,
|
logDebug,
|
||||||
makeMD5,
|
makeMD5,
|
||||||
@@ -58,6 +59,30 @@ async function getAndMapIndexedDocument(
|
|||||||
content = texts.join('\r\n')
|
content = texts.join('\r\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ** Dataloom plugin **
|
||||||
|
else if (isFileFromDataloomPlugin(path)) {
|
||||||
|
try {
|
||||||
|
const data = JSON.parse(await app.vault.cachedRead(file))
|
||||||
|
// data is a json object, we recursively iterate the keys
|
||||||
|
// and concatenate the values if the key is "markdown"
|
||||||
|
const texts: string[] = []
|
||||||
|
const iterate = (obj: any) => {
|
||||||
|
for (const key in obj) {
|
||||||
|
if (typeof obj[key] === 'object') {
|
||||||
|
iterate(obj[key])
|
||||||
|
} else if (key === 'markdown') {
|
||||||
|
texts.push(obj[key])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iterate(data)
|
||||||
|
content = texts.join('\r\n')
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Omnisearch: Error while parsing Dataloom file', path)
|
||||||
|
console.error(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ** Image or PDF **
|
// ** Image or PDF **
|
||||||
else if (extractor?.canFileBeExtracted(path)) {
|
else if (extractor?.canFileBeExtracted(path)) {
|
||||||
content = await extractor.extractText(file)
|
content = await extractor.extractText(file)
|
||||||
|
|||||||
@@ -270,6 +270,7 @@ export function isFileIndexable(path: string): boolean {
|
|||||||
return (
|
return (
|
||||||
isFilePlaintext(path) ||
|
isFilePlaintext(path) ||
|
||||||
isFileCanvas(path) ||
|
isFileCanvas(path) ||
|
||||||
|
isFileFromDataloomPlugin(path) ||
|
||||||
(canIndexPDF && isFilePDF(path)) ||
|
(canIndexPDF && isFilePDF(path)) ||
|
||||||
(canIndexImages && isFileImage(path))
|
(canIndexImages && isFileImage(path))
|
||||||
)
|
)
|
||||||
@@ -292,6 +293,10 @@ export function isFileCanvas(path: string): boolean {
|
|||||||
return path.endsWith('.canvas')
|
return path.endsWith('.canvas')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isFileFromDataloomPlugin(path: string): boolean {
|
||||||
|
return path.endsWith('.loom')
|
||||||
|
}
|
||||||
|
|
||||||
export function getExtension(path: string): string {
|
export function getExtension(path: string): string {
|
||||||
const split = path.split('.')
|
const split = path.split('.')
|
||||||
return split[split.length - 1] ?? ''
|
return split[split.length - 1] ?? ''
|
||||||
|
|||||||
Reference in New Issue
Block a user