Accent-insensitive card search

A fold() (lowercase + strip accents, using the same table as nucleo's own
normalization) is registered as a SQLite function and used by the name,
oracle-text and location filters, so "khazad-dum" finds Troll of
Khazad-dûm. The fuzzy name search folds the query too (accented queries
used to match nothing) and its exact-name promotion; decklist/ManaBox
import falls back to a folded name match; the deck quick filter and tag
suggestions fold client-side.

Closes #17
This commit is contained in:
2026-10-23 23:05:19 -05:00
parent d4d19dcdb4
commit 945e5ed766
9 changed files with 163 additions and 32 deletions

View File

@@ -8,7 +8,7 @@ edition = "2021"
license = "MIT"
[workspace.dependencies]
rusqlite = { version = "0.31", features = ["bundled"] }
rusqlite = { version = "0.31", features = ["bundled", "functions"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
nucleo = "0.5"