Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
0.5.1 - 2026-06-01¶
Added¶
- Selectable editor syntax highlight schemas: Tinyleaf, Solarized, Gruvbox, and Dracula
- Status bar sidebar toggle for folding and restoring the left sidebar
- Local vendor module support in single-project mode
Changed¶
- Refined editor visual design with Tinyleaf wordmark integration, updated UI typography, and grouped light/dark theme selection
- Added Paper and Mint light editor themes and streamlined dark theme choices
- Improved toolbar behavior on narrow layouts by using horizontal scrolling instead of compressing controls
- Completed missing hover-title i18n coverage for toolbar and layout controls
- Updated Tinyleaf highlight colors to make emerald the primary editor accent
Fixed¶
- Restored LaTeX syntax highlighting by using the language extension without conflicting completion overrides
- Fixed settings select rendering for Chinese UI text
- Added static and vendor cache headers, ETags, and 304 revalidation
0.5.0 - 2026-05-25¶
Added¶
- New Tinyleaf leaf-pen brand system, with logo assets integrated into README and documentation sites
- Brand assets page for the documentation site
Changed¶
- Project license changed from MIT to AGPL-3.0-or-later for 0.5.0 and later; previously published releases remain under the license terms under which they were originally published
- Default wordmark updated to STIX Two Text
- Leaf-pen spine and pen tip unified with Pale Mint (
#d1fae5)
0.4.0 - 2026-05-25¶
Added¶
- \ref/\cite/\label autocomplete — context-aware completions triggered by
\ref{,\cite{,\label{with symbols scanned from.texand.bibfiles - PDF text search (
Ctrl+Fin PDF pane) — search within rendered PDF with match highlighting and prev/next navigation - Export project as ZIP — download the entire project as a
.ziparchive - Word/page count —
texcount-based word and page statistics displayed in the status bar - PDF page navigation — page input field and prev/next buttons in the PDF toolbar
- Auto-pair
\begin{env}→\end{env}— typing\begin{...}automatically inserts matching\end{...} - Quick Open (
Ctrl+P) — fuzzy file switcher palette - Multi-tab editor — open multiple files in tabs with
Ctrl+Wto close andCtrl+Tabto cycle - Git diff viewer — production-quality staged/unstaged split diff view
- LaTeX outline sidebar tab — document structure from
\section,\subsection, etc. with\input/\includerecursion - Clickable compile log —
filename:linereferences in log output jump to the source location - SyncTeX tooltip — hover text on PDF pages showing
Ctrl+Click to jump to source --version/-Vflag — shows current version with PyPI update check- Emerald theme — light theme accent changed from blue to emerald green (#059669)
- SVG leaf logo — custom favicon and toolbar brand icon
Changed¶
- Default port changed from
8080to14159(π) - Duplicate Commit/Push buttons removed from toolbar (kept in Git sidebar)
- PDF search button uses SVG icon instead of emoji
- Checkboxes follow theme accent color via
accent-color Ctrl+Hintercepted to open editor find/replace panel instead of browser history
Internal¶
- Frontend sharding — monolithic
index.html(~5700 lines) split intoindex.html+css/app.css+js/app.js - Static file serving with
/static/route, MIME type detection, and path traversal protection - Inline
onclickhandlers migrated toaddEventListenerfor ES module compatibility
0.3.0 - 2026-05-18¶
Added¶
- Layout switcher (Overleaf-style) in statusbar bottom-left — three presets:
- Editor: sidebar + editor, PDF hidden
- Split: all three panels visible (default)
- PDF: PDF only, sidebar and editor hidden
- Sidebar toggle button in toolbar — shown when a project is open
- Compile log toggle button moved to statusbar; `Ctrl+`` shortcut to open/close log panel
- Keyboard shortcuts for layout switching:
Ctrl+Shift+1/2/3 Ctrl+Bshortcut to toggle sidebar (disabled in PDF-only mode)- Layout preference persisted to
localStorage - New shortcuts shown in the keyboard shortcuts popup (EN/ZH)
Changed¶
- Compile log toggle button moved from toolbar to statusbar (right side)
- Layout switcher placed at far left of statusbar for visual prominence
Internal¶
- Added CI lint workflow (ruff + ty via pre-commit) on push and PR
- Added release workflow (manual
workflow_dispatch) - Fixed
tytype narrowing:assert proc.stdout is not Noneincompiler.py - Excluded
_vendor/from ruff formatting
0.2.0 - 2026-04-29¶
Added¶
- Project-wide text search (
Ctrl+Shift+F) — grep-style search across all project files with results grouped by file, keyword highlighting, and click-to-jump navigation - Close file button (×) in breadcrumb bar — return editor to blank state
- Case-sensitive toggle for project search
Fixed¶
- CDN fallback: switch from jsdelivr to esm.sh for proper module deduplication — fixes CodeMirror crash ("multiple instances of @codemirror/state") in single-project mode without vendor files
- Add try-catch fallback when language extensions conflict with CDN modules (editor works without syntax highlighting)
Changed¶
- Breadcrumb bar layout: locate button moved to the left of the filename, close button on the right
0.1.0 - 2026-04-28¶
Initial release of tinyleaf (formerly texlive-web).
Added¶
Core¶
- CLI-first design with
pip install tinyleaf && tinyleaf /pathto start editing - Single project mode for opening a specific LaTeX project directory
- Multi-project mode with JSON-based project registry (
~/.config/tinyleaf/projects.json)- Open Folder to browse and register existing directories
- New Project to create a project at a chosen location
- Rename and Remove projects from the UI
- Grid and list view toggle with persistent preference
- Project search filtering by name and path
- Two compilation backends: local
latexmkand Docker (default: enabled) - Zero Python dependencies — stdlib only (
http.server,threading,subprocess)
Editor¶
- CodeMirror 6 editor with LaTeX syntax highlighting
- Multi-language syntax highlighting (LaTeX, Markdown, JavaScript, Python, JSON, CSS, HTML, YAML)
- Auto-save with configurable interval
- Main file selector with auto-detection of
\documentclass - File path breadcrumb with locate-in-tree button
- External file change detection via mtime polling
- Binary file blocking (images previewed in PDF pane instead)
PDF Preview¶
- PDF.js viewer with live reload after compilation
- Zoom controls (+, -, Fit, percentage) and HD/fast rendering toggle
- SyncTeX bidirectional search powered by a pure-Python parser
- Inverse search:
Ctrl+Clickon PDF to jump to the corresponding source line - Forward search:
Ctrl+Shift+Enterin editor to jump to the corresponding PDF position with highlight flash
- Inverse search:
- Color-coded status bar messages (error/warning/success)
- Compile cancellation support
Sidebar & File Tree¶
- Resizable and collapsible sidebar and PDF panels
- Files and Git tabs
- File tree with expand/collapse state persistence
- Collapse-all button, search, upload, new file/folder, delete, rename
- Project-wide text search (
Ctrl+Shift+F) — grep-style search across all project files with results grouped by file, keyword highlighting, and click-to-jump navigation - LaTeX build artifacts grayed out in tree
Git Integration¶
- Git status, diff (including per-file diff view), commit, push, pull, and log
- Selective file staging for commits
- Git badge on project cards indicating repository status
Settings & UI¶
- 7 themes with dark/light toggle (Light, Indigo Dark, Dracula, etc.)
- Docker toggle with image management (pull, delete, registry mirror)
- Auto-pull Docker images on first compile
- About popup with version, GitHub, and PyPI links
- Keyboard shortcuts help panel (
Ctrl+/) - i18n support (English and Chinese)
- Vendor JS modules with CDN fallback and proxy support
Compilation¶
- SSE (Server-Sent Events) real-time compilation log streaming
- Log panel with copy button
- Clean build artifacts button
- Docker Compose support for self-contained deployment
Keyboard Shortcuts¶
| Shortcut | Action |
|---|---|
Ctrl+S |
Save file |
Ctrl+Enter |
Compile |
Ctrl+Shift+Enter |
Jump to PDF (forward search) |
Ctrl+Click (PDF) |
Jump to source (inverse search) |
Ctrl+Shift+E |
Files tab |
Ctrl+Shift+F |
Search tab |
Ctrl+Shift+G |
Git tab |
Ctrl+Shift+Alt+C |
Git commit |
Ctrl+Shift+Alt+P |
Git push |
Ctrl+/ |
Show shortcuts |
Changed¶
- Renamed project from
texlive-webtotinyleaf - Renamed Python package from
texlive_webtotinyleaf - Updated CLI entry point, config directory, and program name
- Default compilation backend changed to Docker (use
--no-dockerfor local)