feat: PDF support + Split View (P1 roadmap items)

#74 — Support PDF complet:
- backend/pdf_reader.py — pymupdf/pypdf text extraction
- .pdf added to SUPPORTED_EXTENSIONS in indexer.py
- PDF-aware file view API endpoint (metadata, text preview)
- Streaming endpoint /api/file/{vault}/pdf/stream
- Frontend PDF viewer with iframe, toolbar, download
- CSS for PDF viewer container

#75 — Split View (PaneManager):
- New module frontend/js/pane-manager.js — ES module
- 1-4 pane CSS grid with resize handles
- Split right/down via keyboard (Ctrl+Alt+\) or PaneManager API
- Persistence in localStorage (obsigate-panes)
- Collapse to single pane, per-pane active state

285 tests passent
This commit is contained in:
2026-07-23 17:33:51 -04:00
parent 5b956f8d95
commit 93d0bda627
8 changed files with 506 additions and 19 deletions
+2
View File
@@ -18,6 +18,7 @@ import { initCommandPalette } from './palette.js';
import { initMobileToolbar } from './mobile-toolbar.js';
import { initDragDrop } from './dragdrop.js';
import { initMermaid, setupFocusMode } from './mermaid-viewer.js';
import PaneManager from './pane-manager.js';
// =========================================================================
// Initialization — mirrors the original app.js init() ordering
@@ -58,6 +59,7 @@ async function init() {
UI.FindInPageManager.init();
UI.ContextMenuManager.init();
UI.TabManager.init();
PaneManager.init();
initCommandPalette();
initMobileToolbar();