verstak/frontend
mirivlad 88eb99e9af fix: verstak:// links in preview, case-insensitive search, keyboard layout swap
1. Fix verstak:// links rendered as blocked/strikethrough in markdown preview:
   - Changed href from 'javascript:void(0)' to hash-based '#verstak-type-id'
   - DOMPurify no longer strips the link; click handler uses data-verstak-href
   - CSS already handles .md-link--internal with cyan color, no strikethrough

2. Add markdown label escaping for internal link picker:
   - New escapeMarkdownLabel() in markdown.ts escapes [ ] ( )
   - Applied in InternalLinkPicker.selectResult() before inserting markdown

3. Fix case-insensitive search for RU/EN:
   - Add title_lower column (migration 019) populated by Go strings.ToLower
   - BackfillTitleLower() runs after migrations to populate existing rows
   - Search() now queries title_lower with Go-level lowercase (Unicode-aware)
   - insertNode() and UpdateTitle() populate title_lower automatically
   - New migration 019 + BackfillTitleLower in storage.go
   - Tests: TestSearchCaseInsensitive, TestSearchFindsCreatedNode

4. Add keyboard layout swap search support:
   - New keyboardLayout.ts utility with RU↔EN QWERTY mapping
   - expandKeyboardVariants() generates original + swapped + lowercased variants
   - InternalLinkPicker.search() queries all variants in parallel, deduplicates by ID
   - Examples: dthcnfr → верстак, руддщ → hello

Files changed:
- markdown.ts: hash href + escapeMarkdownLabel export
- InternalLinkPicker.svelte: label escaping + layout swap search
- keyboardLayout.ts: new RU/EN layout swap utility
- repository.go: title_lower in Search/insertNode/UpdateTitle
- storage.go: migration019 + BackfillTitleLower
- migrations_019.sql.go: new migration
- search_test.go, repository_test.go: new tests
2026-06-15 10:39:44 +08:00
..
bindings/github.com/wailsapp/wails/v3/internal gui: add Wails v3 desktop app skeleton 2026-05-31 15:45:52 +08:00
public chore: move app icons into frontend assets 2026-06-05 12:25:47 +08:00
src fix: verstak:// links in preview, case-insensitive search, keyboard layout swap 2026-06-15 10:39:44 +08:00
Inter Font License.txt gui: add Wails v3 desktop app skeleton 2026-05-31 15:45:52 +08:00
index.html chore: move app icons into frontend assets 2026-06-05 12:25:47 +08:00
package-lock.json fix: stabilize markdown notes — internal link modal, rename UI, trash integration 2026-06-15 09:19:26 +08:00
package.json fix: stabilize markdown notes — internal link modal, rename UI, trash integration 2026-06-15 09:19:26 +08:00
tsconfig.json gui: add Wails v3 desktop app skeleton 2026-05-31 15:45:52 +08:00
vite.config.js gui: complete Wails v2 vertical MVP — fixes, search, polished UI 2026-05-31 23:48:38 +08:00