feat: add non-markdown files to metadata endpoints

- Added support for non-markdown files (images, PDFs, code, etc) in vault metadata endpoints
- Implemented filesystem scanning for non-markdown files with configurable extension whitelist
- Added deduplication by file path to prevent duplicates between Meilisearch and filesystem
- Enhanced folder filtering and kind filtering to properly handle non-markdown files
- Added validation to remove stale entries not present on disk
- Improved logging to track
This commit is contained in:
2025-10-31 23:20:36 -04:00
parent 545c07a4b3
commit b985a7cdbb
55 changed files with 8465 additions and 131 deletions
+27 -23
View File
@@ -4,19 +4,21 @@
"type": "split",
"children": [
{
"id": "511c66a5c96502b2",
"id": "8fed617eb7df1a3f",
"type": "tabs",
"children": [
{
"id": "8309e5042a8fb85c",
"id": "2e9abbba0bbc33e1",
"type": "leaf",
"state": {
"type": "excalidraw",
"type": "markdown",
"state": {
"file": "dessin.excalidraw.md"
"file": "Allo-3/Nouveau-markdown.md",
"mode": "source",
"source": false
},
"icon": "excalidraw-icon",
"title": "dessin.excalidraw"
"icon": "lucide-file",
"title": "Nouveau-markdown"
}
}
]
@@ -76,7 +78,7 @@
}
],
"direction": "horizontal",
"width": 394.5
"width": 225.5
},
"right": {
"id": "3932036feebc690d",
@@ -176,9 +178,26 @@
"obsidian-excalidraw-plugin:New drawing": false
}
},
"active": "8309e5042a8fb85c",
"active": "2e9abbba0bbc33e1",
"lastOpenFiles": [
"test-regular.md.bak",
"test-task.md.bak",
"test-favorite.md.bak",
"test-template.md.bak",
"test-regular.md",
"test-task.md",
"test-template.md",
"test-favorite.md",
"mixe/Dessin-02.png",
"Allo-3/page test.md",
"titi/Nouveau-markdown.md",
"Allo-3/Nouveau-markdown.md.tmp",
"Allo-3/Nouveau-markdown.md.bak",
"Allo-3/Nouveau-markdown.md",
"tata/test2.md",
"dessin.excalidraw.md",
"toto/test/Nouvelle note 2 copy.md",
"titi/92284.pdf",
"Dessin-02.png",
"mixe/Relaxing Music relax music music _hls-480_.mp4",
"Dessin-02.excalidraw.md",
@@ -188,19 +207,13 @@
"mixe/ThinkBook_16_G7_ARP_Spec.pdf",
"mixe/Claude_ObsiViewer_V1.png",
"mixe/image_no_bg_clean.svg",
"mixe/dessin.json",
"mixe",
"New folder",
"Drawing-20251028-1452.png",
"Drawing-20251028-1452.excalidraw.md.bak",
"dessin.svg",
"dessin.png",
"dessin.excalidraw.md.bak",
"dessin_05.svg",
"dessin_05.png",
"dessin_05.excalidraw.md",
"dessin_03.excalidraw.md",
"dessin_05.excalidraw.md.bak",
"dessin_04.excalidraw.md",
"dessin-002.excalidraw.md",
"Dessin_001.excalidraw.md",
@@ -212,15 +225,6 @@
"Drawing-20251027-2201.excalidraw.md",
"Dessin-03.md.excalidraw.md",
"Dessin-01.excalidraw.md",
"Drawing 2025-10-27 19.22.35.excalidraw.md",
"Nouveau-markdown.md",
"Drawing-20251027-1922.excalidraw.md",
"Nouvelle note 16.md",
"Dessin.excalidraw.md",
"Dessin.excalidraw.restored.md",
"HOME.md",
"Drawing-20251027-1914.excalidraw.md",
"Drawing-20251027-1705.excalidraw.md",
"Untitled.canvas"
]
}
@@ -1,21 +1,19 @@
---
titre: Nouveau-markdown
auteur: Bruno Charest
creation_date: 2025-10-19T21:42:53-04:00
modification_date: 2025-10-30T21:24:35-04:00
catégorie: ""
tags: []
aliases: []
status: en-cours
titre: "Nouveau-markdown"
auteur: "Bruno Charest"
creation_date: "2025-10-19T21:42:53-04:00"
modification_date: "2025-10-30T21:24:35-04:00"
aliases: [""]
status: "en-cours"
publish: true
favoris: false
favoris: true
template: true
task: true
archive: true
draft: true
private: true
toto: tata
color: "#EF4444"
toto: "tata"
color: "#3B82F6"
---
Allo ceci est un tests
toto
+1 -1
View File
@@ -12,7 +12,7 @@ tags:
aliases:
- ""
status: en-cours
publish: false
publish: true
favoris: true
template: false
task: false
+7 -10
View File
@@ -1,14 +1,10 @@
---
titre: test-new-file
auteur: Bruno Charest
creation_date: 2025-10-19T12:15:21-04:00
modification_date: 2025-10-19T12:15:21-04:00
catégorie: ""
tags:
- home
- accueil
aliases: []
status: en-cours
titre: "test-new-file"
auteur: "Bruno Charest"
creation_date: "2025-10-19T12:15:21-04:00"
modification_date: "2025-10-19T12:15:21-04:00"
aliases: [""]
status: "en-cours"
publish: false
favoris: true
template: false
@@ -16,6 +12,7 @@ task: false
archive: false
draft: false
private: false
color: "#22C55E"
---
# Page de Test Markdown
+2 -2
View File
@@ -1,6 +1,6 @@
---
excalidraw-plugin: parsed
updated: "2025-10-30T01:40:26.435Z"
updated: "2025-10-31T20:35:13.905Z"
---
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==
@@ -10,6 +10,6 @@ updated: "2025-10-30T01:40:26.435Z"
%%
## Drawing
```compressed-json
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=
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=
```
%%
+10 -19
View File
@@ -1,19 +1,10 @@
---
titre: HOME
auteur: Bruno Charest
creation_date: 2025-09-26T08:20:57-04:00
modification_date: 2025-10-19T12:09:47-04:00
catégorie: ""
tags:
- home
- accueil
- configuration
- test
- tag4
- tag3
- tag1
aliases: []
status: en-cours
titre: "HOME"
auteur: "Bruno Charest"
creation_date: "2025-09-26T08:20:57-04:00"
modification_date: "2025-10-19T12:09:47-04:00"
aliases: [""]
status: "en-cours"
publish: true
favoris: true
template: true
@@ -21,10 +12,10 @@ task: true
archive: true
draft: true
private: true
Titre: Page d'accueil
NomDeVoute: IT
Description: Page d'accueil de la voute IT
attachements-path: attachements/
Titre: "Page d'accueil"
NomDeVoute: "IT"
Description: "Page d'accueil de la voute IT"
color: "#F59E0B"
---
Page principal - Voute de test
+2 -1
View File
@@ -7,12 +7,13 @@ status: "en-cours"
publish: true
favoris: true
template: true
task: true
task: false
archive: true
draft: true
private: true
toto: "tata"
readOnly: false
color: "#A855F7"
---
Allo ceci est un tests
toto
-1
View File
@@ -1 +0,0 @@
{}

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

+1
View File
@@ -15,3 +15,4 @@ archive: false
draft: false
private: false
---
sffsfsfsf
+7
View File
@@ -0,0 +1,7 @@
---
titre: Favorite Note
favoris: true
---
# Favorite Note
This is a favorite note.
+2
View File
@@ -0,0 +1,2 @@
# Regular Note
This is a regular note without front-matter.
+7
View File
@@ -0,0 +1,7 @@
---
titre: Task Note
task: true
---
# Task Note
This is a task note.
+7
View File
@@ -0,0 +1,7 @@
---
titre: Template Note
template: true
---
# Template Note
This is a template note.
+1
View File
@@ -19,6 +19,7 @@ number: "12345"
todo: false
url: "https://google.com"
image: "https://images.unsplash.com/photo-1675789652575-0a5d2425b6c2?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=2070&q=80"
color: "#64748B"
---
# Test 1 Markdown
Binary file not shown.