Releases: w512/Texodus
Releases · w512/Texodus
Texodus v2.0.1
New Features
- Multi-Document Support: Implemented a new tabbed interface, allowing multiple documents to be open simultaneously.
- Auto-Reload: Files are now automatically reloaded when they are changed on disk by external programs.
- Settings Mode: Added a dedicated settings mode for easier configuration.
Improvements & Documentation
- Documentation: Updated README with an installation section and new screenshots.
- Under-the-hood: Improved overall file reloading logic.
Texodus v1.0.1
🌟 New Features
- CodeMirror 6 editor: Texodus is no longer a styled textarea. The editor now provides:
- Live Markdown syntax highlighting — headings, emphasis, links, lists, fenced code blocks, and tables are styled as you type.
- Auto-closing pairs for
(),[],{},"",'', and**bold**markers. - Smart list continuation — pressing Enter inside a list creates the next item with the same bullet (incrementing ordered numbers, resetting task checkboxes to
[ ]); pressing Enter on an empty marker exits the list. - Bracket matching highlights the partner bracket under the cursor.
- Multiple cursors via Alt+Click.
- Lazy-loaded syntax for fenced code blocks — language definitions load on demand so the baseline bundle stays light.
- Improved scroll sync between editor and preview: Replaced the old
scrollTop-percentage strategy with line-anchor sync using fractional source-line positions. The preview's top-level blocks now carrydata-source-linemarkers, and scrolling either pane keeps the same source line at the top of both — regardless of how much vertical space the rendered images, headings, code blocks, or Mermaid diagrams take up in the preview.
🐛 Bug Fixes & Improvements
- macOS cold-start: file association no longer opens two windows. Double-clicking a
.mdfile in Finder while Texodus is closed now reliably opens a single window with the file loaded, instead of one empty window plus another with the file. The race was between Cocoa'sapplicationOpenURLsevent firing before the main window had been built and the file-routing logic interpreting the missing window as a signal to spawn a new one. - Scrolling now works over the entire pane in single-pane modes. Previously, in preview/focus modes the document was centered with whitespace on the sides, and scroll events only registered over the central text column. The panes now span the full window width with dynamic horizontal padding, so trackpad/mouse-wheel scrolling responds in any region.
- HTML export is now fully offline and CSP-safe. Mermaid diagrams are pre-rendered to inline SVG before writing the file, removing the previous CDN dependency on
cdn.jsdelivr.net. Exported files are now self-contained and respect the same strict Content Security Policy as the app itself. - Markdown sanitization is now centralized. The DOMPurify whitelist used to be duplicated between the live preview and the export pipeline; the two could (and did) drift on every change. Both paths now share a single source of truth.
- Preview render no longer flickers on theme switches for documents without Mermaid: an HTML-diff guard skips the DOM thrash when the rendered markup is unchanged, preserving text selection.
- Checkbox toggle in preview now correctly ignores
`- [ ]`patterns that appear inside inline code spans (in addition to the previously-handled fenced code blocks). - Mermaid rendering is unified across surfaces. A single
mermaidRenderermodule handles the live preview, the HTML export, and the PDF export's SVG→PNG pipeline. Theme detection now reads from the settings store instead of inspecting DOM class names.
🛠 Internal Refactoring
The release also includes a substantial cleanup pass discovered during a code review — none of these change observable behavior, but they reduce surface area for future regressions:
KeyboardShortcuts.vue: 17 hand-writtenifblocks → one declarativeSHORTCUTStable; per-platform modifier mappings now live as data.exportService.ts: replaced(token as any).mermaidPngUrlmutation with a typedWeakMap; merged the two-pass mermaid token walk into a single pass.- Rust backend: extracted a
build_windowhelper to remove duplicatedWebviewWindowBuilderblocks; window labels now use an atomic counter instead of a millisecond timestamp (no more theoretical collisions on rapid "Open With" double-clicks); lock-handling style is consistent throughout. - All Vue components are now
<script setup lang="ts">; added smallbasename()utility used byApp.vue,fileService.ts, anduseAppMenu.ts. aboutVisiblemoved from the editor store to the settings store (it's UI state, not document state).- Toast notification on failed file-association loads (previously errors were swallowed silently).
Texodus v0.7.1
🌟 New Features
- Multi-window Support:
- Texodus now fully supports running with multiple windows.
- When opening a file via the file manager/Finder or creating a new document, the app no longer overwrites the active document in the main window if there are unsaved changes. Instead, it automatically spawns a new independent window.
- Window statuses (active file path,
is_dirtyflag) are tracked on the Rust backend to coordinate file opening logic.
- Mermaid Diagram Rendering:
- Added support for Mermaid graphs and diagrams in the preview. You can now define flowcharts, sequence diagrams, and other graphs using standard
```mermaidcode blocks.
- Added support for Mermaid graphs and diagrams in the preview. You can now define flowcharts, sequence diagrams, and other graphs using standard
- Export Documents (PDF/Print):
- Introduced an export service (
exportService.ts) utilizing thepdfmakelibrary, allowing you to export your Markdown documents into PDF format while preserving basic typography and layout.
- Introduced an export service (
🐛 Bug Fixes & Improvements
- Windows Memory Leak Fix:
- Resolved a native menu garbage collection issue on Windows platforms.
- Menu Improvements:
- Updated "File" menu actions to correctly target and operate within a multi-window context.
- Security (CSP):
- Updated the Content Security Policy (CSP) in
tauri.conf.jsonto allow secure rendering of external media resources.
- Updated the Content Security Policy (CSP) in
Texodus v0.6.5
Features & Improvements
- Export functionality & styling: Added export feature and fixed code block rendering issues across various themes.
- Linux distribution support: Added RPM package support for Linux release builds.
- CI/CD updates: Updated workflow configuration.
Bug Fixes
- Windows menu reliability: Fixed a Garbage Collection (GC) bug affe
Texodus v0.6.3
Full Changelog: v0.6.2...v0.6.3