Skip to content

Releases: w512/Texodus

Texodus v2.0.1

31 May 13:13

Choose a tag to compare

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

28 May 07:29

Choose a tag to compare

🌟 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 carry data-source-line markers, 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 .md file 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's applicationOpenURLs event 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 mermaidRenderer module 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-written if blocks → one declarative SHORTCUTS table; per-platform modifier mappings now live as data.
  • exportService.ts: replaced (token as any).mermaidPngUrl mutation with a typed WeakMap; merged the two-pass mermaid token walk into a single pass.
  • Rust backend: extracted a build_window helper to remove duplicated WebviewWindowBuilder blocks; 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 small basename() utility used by App.vue, fileService.ts, and useAppMenu.ts.
  • aboutVisible moved 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

27 May 08:46

Choose a tag to compare

🌟 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_dirty flag) 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 ```mermaid code blocks.
  • Export Documents (PDF/Print):
    • Introduced an export service (exportService.ts) utilizing the pdfmake library, allowing you to export your Markdown documents into PDF format while preserving basic typography and layout.

🐛 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.json to allow secure rendering of external media resources.

Texodus v0.6.5

23 May 11:57

Choose a tag to compare

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

18 May 17:32

Choose a tag to compare