2.15.0 — Django port + scholar bridge + cloud-parity UI
Closes issue #82. 28 commits since 2.14.1; 616 tests pass.
Headline
Flask _editor is gone. scitex_writer._django is the new editor — at cloud-parity for layout and interaction, with an optional scholar bridge and a generic thumbnail service.
Added
- Django editor (
scitex_writer._django) replacing Flask. Usesscitex-ui's standalone shell +scitex-app's dev server. - Monaco LaTeX editor bundled with Vite; section tabs; automatic layout.
- PDF preview, compile controller, log drawer, Preview / Full modes.
- Insert panel — Cite / Fig / Table / Collab / History.
- Viewer module (
/viewer/) — claims overlay + DAG + citation hover. Unblocks Living Paper. - Rich citations panel ported from scitex-cloud — multi-select (Ctrl/Cmd-click), drag into Monaco to insert
\cite{k1,k2}, scholar-aware hover + autocomplete. - Optional scholar bridge (
pip install scitex-writer[scholar]). One-way consumer,SCHOLAR_AVAILABLEpattern,index.dbSELECT path with MASTER-scan fallback. Degrades cleanly when scholar is absent. - Generic thumbnail service — Pillow for PNG/JPG/SVG/PDF (pdftoppm/rsvg-convert for vector), pandas+matplotlib styled previews for CSV/TSV/XLSX/ODS. Cache-keyed by
sha1(abs_path + mtime). No figrecipe coupling. - PDF theme toggle independent of editor theme (auto / light / dark, persisted).
- Dark-mode compile — editor theme drives
dark_mode=True/False, injecting00_shared/latex_styles/dark_mode.tex. Figures preserved. - Details right panel — Compilation, Overleaf, Prism, Project, Shortcuts.
- Favicon set — 16 / 32 / 64 / 180 / 192 / 512 px PNGs + SVG wrapper.
Changed
- Flask removed.
scitex_writer._editoris gone. - Citation cache invalidated after Enrich / Add-to-manuscript.
- Drag-and-drop uses custom
application/x-scitex-citeMIME. claims_rendered.texuses portable\providecommand+##tokens.- Renamed
\stxclaim→\vclaim. [scholar]extra pinsscitex-scholar>=1.2.1.
Fixed
.u-hiddenspecificity; insert/details panels stay hidden when toggled off.- Shell panes hidden in standalone so writer gets full viewport.
merge_bibliographiesoutput path handling.- Word-count comma separators use portable
sed.
Full breakdown: CHANGELOG
Install
pip install -U scitex-writer==2.15.0
pip install -U scitex-writer[scholar]==2.15.0 # with scholar bridge