Continuous Build
Pre-release
update release when build
v4.5.0
A feature release that adds shared-folder import, two paper themes, movable dashboard stickers and a batch of export fixes on top of VNote 4.4.3:
- Import a shared folder (Notebook explorer › Import Folder): the other half of 4.4.3's Share Folder
- A bundle produced by Share Folder is imported with its notes' ids, dates, tags and attachments intact, so a folder can travel between notebooks without losing its history; importing an ordinary folder from disk still generates fresh ids and timestamps
- The bundle is validated before anything is copied, the copy is verified before it is published, and a cancelled or failed import leaves the notebook exactly as it was
- Refuses symbolic links, junctions and reparse points, detects duplicate node ids and names that would collide on a case-insensitive filesystem, and declines to re-import a folder that is already in the notebook rather than overwriting it
- Two new themes: LaTeX Light and LaTeX Dark. A paper-and-ink look for the Markdown viewer, editor and export — serif body text with a capped line measure, weight-led headings, booktabs-style tables (no vertical rules, no zebra stripes) and a boxed blockquote. No fonts are bundled: the stylesheets fall back to Times/Georgia and Consolas, and installing Latin Modern (plus Noto Serif CJK for Chinese) gives the intended look. Inspired by typora-latex-theme; independently authored, with nothing copied from it.
- Editor
- The cursor position is now restored when a buffer is reloaded from disk
- In-place previews (images, diagrams, formulas) zoom together with the editor
- The source of a previewed fenced-code, display-math or table block is folded automatically when its preview appears; unfolding it by hand is respected
- The interactive table in-place preview is enabled by default: tables can be edited in place as a real rich-text sheet, with syntax-highlighted cells, row/column/alignment operations from its Table menu, and Enter in the last cell appending a row; its preview sheet no longer draws a stray frame and background
- Block quotes continue automatically on Enter, including nested and lazily-continued ones
- The default input mode for the text editor is now VSCode, where
Ctrl+Shift+[andCtrl+Shift+]fold and unfold at the cursor - The drag-and-drop cursor is shown at the drop target instead of at the pointer (#2249)
- Snippet date placeholders
%MMM%,%MMMM%,%ddd%and%dddd%follow VNote's language instead of the system locale
- Notes & templates
- New Note proposes an available default name, and remembers a default template per file type
- A built-in
title.mdtemplate ships out of the box - Open as Detached was added to the notebook explorer context menu
- Open V3 Notebook moved into the Open Notebook dialog
- Export
- Mermaid diagrams are rasterized at the printed size and 384 dpi, so they are no longer blurry in PDFs
- CJK text and Mermaid labels render correctly in wkhtmltopdf PDFs, with a clear warning when no CJK-capable font can be loaded
- A file opened from outside any notebook can be exported
- wkhtmltopdf process failures are reported instead of failing silently, wkhtmltopdf-only PDF options are disabled when it is not used, and the Complete page option has an explanatory tooltip
- Export was added to the Markdown read-mode context menu
- Dashboard: stickers can be moved and resized by direct manipulation — drag the centre to move or an edge to resize, with arrow keys (and Shift with arrow keys) as the keyboard equivalent
- Interface
- The notebook tree scrolls horizontally when labels overflow
- The dock separator is more visible across themes
- The Home tab closes automatically when a file is opened
- The main window's fixed 800x600 minimum size was removed, and the PDF navigation pane is hidden by default
- Dialog form labels dropped their trailing colons
- Fixes
- Image hosts are persisted when the settings are saved, and remote images that are still referenced elsewhere are no longer deleted
- A cleared quick access list is persisted, Reset no longer leaves a stale selection on the Appearance page, reloading File Associations no longer keeps a stale Add Program button pointer, and reloading image-host settings while a test is pending no longer risks a crash
- Note move failures report the underlying vxcore error detail (#2729)
- Windows 7 build (
win64-windows7) fixes- Search now works. Content, file and tag searches silently returned nothing on this build: every search result was discarded before it could reach the UI. The same defect also stopped image-host uploads from ever starting.
- Network/HTTPS now works. Checking for updates and uploading to an image host failed with "TLS initialization failed" because the bundled OpenSSL could not be loaded. VNote now ships an OpenSSL that actually loads (1.1.1w, built from source), together with its licence notice, and logs a clear message if TLS is ever unavailable.
- Build: Qt was bumped to 6.10.3 on all platforms
- Translations: Simplified Chinese and Japanese catalogs updated for the new strings
v4.4.3
A maintenance release that drops the built-in updater, adds folder sharing and a window pin on top of VNote 4.4.2:
- Share Folder (Notebook explorer context menu): export a folder as a self-contained, movable bundle you can hand to someone else or drop into another notebook
- Notes you currently have open are saved first, so the bundle always carries their latest content
- The copy is verified before it is published, and a failed export leaves nothing half-written behind
- Refuses to follow symbolic links, junctions and reparse points, and warns up front when two names would collide on a case-insensitive destination filesystem
- Stay on Top: detached view windows now have a pin so a window can be kept above the others
- The built-in updater has been removed. VNote no longer downloads or installs anything, and never modifies its own installation directory. It simply checks for a newer release and, when one exists, tells you and offers to open the release page, where you download and install the new version yourself.
- Fixes VNote failing to start from a read-only or non-writable installation directory (
/usr/bin,Program Filesfor a standard user, a read-only DMG), where the old updater's startup lease could not be created (issue #2728). Per-machine MSI installs were affected on Windows too. - The Update source setting (Settings › General) still selects GitHub or Gitee. New installations now default to Gitee; an existing installation keeps whatever it already had, and no setting is migrated.
- If you used the in-app updater before, you can safely delete the leftover
.vnote-oldand.vnote-updatefolders next tovnote.exe. VNote no longer creates or reads them.
- Fixes VNote failing to start from a read-only or non-writable installation directory (
- Translations: Simplified Chinese and Japanese catalogs updated for the new strings
v4.4.2
A feature release that adds a built-in updater, a reworked PDF viewer, detachable view windows, and a Gitee release mirror on top of VNote 4.3.0:
- In-app updates (new, Windows x64, Qt 6 build): VNote can now update itself
- Downloads only what changed — a release publishes a signed file manifest plus an optional delta package, and the client resolves a delta chain before falling back to the full package
- Every manifest is verified against a compiled-in Ed25519 key; an unsigned or unverifiable release is refused (fail-closed), and hosts are allow-listed per release source
- Files are staged inside the install directory and swapped in under a durable write-ahead journal at exit, with automatic rollback and crash recovery on the next launch
- A machine-wide lease serializes updates across sessions; Microsoft Store and Program Files installs are detected and directed to their own update channel
- Surfaces as an Update dialog (Update / Skip This Version / Later / Restart Now) and a startup notification with inline progress
- Update source setting (Settings › General) to fetch updates from either GitHub or Gitee
- The Windows 7 (Qt 5.15) build publishes no update packages; there the check simply points at the release page
- PDF viewer
- Upgraded the bundled pdf.js from 3.1.81 to 3.11.174 (the last v3 release; v4+ requires Chrome 125+, which the Qt 5.15 / Windows 7 build cannot provide), and vendored the previously-missing
web/standard_fonts/so PDFs relying on non-embedded Helvetica/Times/Courier render correctly - The PDF's embedded outline (bookmarks) now populates the Outline dock and a new per-window Outline toolbar popup, with click-to-jump
- Fix the external file path not resolving for drag-and-dropped PDFs
- Upgraded the bundled pdf.js from 3.1.81 to 3.11.174 (the last v3 release; v4+ requires Chrome 125+, which the Qt 5.15 / Windows 7 build cannot provide), and vendored the previously-missing
- Views & windows
- Detach a view window into a separate top-level window from the tab context menu
- New
--detached-viewCLI option to open files directly in a detached split Ctrl+G, Xcloses the focused dock or, when the editor has focus, the current tab- The Console dock activation shortcut is now configurable
- Notifications: attention routing, incident de-duplication, and a toast surface, so repeated failures (image upload, auto-save, sync) collapse into one actionable entry with a Details view
- Editor & Markdown
- Offer to migrate a note's legacy
vx_imagespictures into its assets folder, with an inline banner and a Don't Ask Again choice - Edit-mode Copy Link action for headings
- Offer to migrate a note's legacy
- United Entry: new
taskentry to find and run tasks, a popup sized from the UI font and clamped to the screen, and a readable selected task row - Settings: a Quick Note scheme can now use a note template
- macOS: capture selected text from any app as a note through a system Service
- Tags:
Escclears the selection in the Tags explorer - Fixes
- Recover from a partially-installed bundled resource set instead of leaving stale data behind
- Keep the frameless title bar out of Qt's menu-bar slot eviction
- Fix the export dialog not remembering the last-used theme (#2389)
- Fix enable-sync failing on macOS when opening a remote notebook (#2718)
- Stop duplicating legacy attachments during VNote3 migration
- UTF-8-safe
.vswpbackup path (#2721) - Bundle the MSVC CRT for toolsets newer than CMake's redistributable list
- Use Git Bash explicitly in
init.cmdinstead of relying on WSL bash - Remove the version-specific config override logic
- Internals
core_servicesno longer links VTextEdit or Qt Widgets- Inline chrome is themed through the stylesheet instead of hardcoded colors, with a test gate that fails the build on literal colors in
setStyleSheet()
- Infrastructure: code and releases are mirrored to Gitee, keeping the two most recent releases
- Packaging (Windows): the release ZIP is now flat —
VNote-<ver>-win64/vnote.exeinstead ofVNote-<ver>-win64/bin/vnote.exe. Thebin/level was unintended (src/CMakeLists.txtasked for a flat install, but a submodule'sinclude(GNUInstallDirs)seeded the CMake cache first) and it is incompatible with the incremental updater, which strips exactly one level from a full package - Translations: updated Simplified Chinese and Japanese translations
v4.3.0
A feature release that adds an in-app notification system, a Tasks dock, a reworked export experience, and a column-based editor status bar on top of VNote 4.2.0:
- Notifications (new): an in-app notification system with a toolbar button and popup, plus Clear All / Dismiss actions
- Tasks
- New Tasks dock and Console log viewer, with in-app editing of task files
- The task subsystem was migrated to the ServiceLocator/DI architecture (the legacy task-output console was removed)
- Snippets and Tasks docks gained a title-bar search filter
- Status bar: Text and Markdown view windows now use a column-based status bar with Material-style chip theming and a Spelling control (enable spell check / auto-detect language)
- Export
- Built-in export schemes with a New / Duplicate / Delete split button
- Split-pane workspaces can now be selected as export sources
- Configurable PDF header/footer for wkhtmltopdf export (supports
[page],[title],[date]placeholders) - MathJax equations are rasterized to PNG for docx/custom export, and exported syntax colors resolve the real
highlight.css
- Editor & Markdown
- Code block line wrap option for read mode
- Customize global styles button to open
user.cssfor styles applied under every theme - Syntax highlighting for display math (
$$) source in the editor Ctrl+Left-Clickopens a Markdown link in edit mode; external links now prompt before opening- Snippet expansion and the
@@cursor mark are honored in note templates and Quick Note folder paths - Manual file-encoding override to fix non-UTF-8 mojibake
- Workspaces & views
- Remove Other Workspaces corner-menu action
- Double-clicking the empty tab-bar area triggers Quick Note
- A View action was added to the read-mode image context menu
- United Entry: collapses to an accent toolbar icon and expands to an input, with trigger on list-row activation
- General: a global wake-up hotkey to show the main window, a
--quietstartup flag,--remote-debugging-portfor QtWebEngine, and updated bundled Mermaid (v11.16.0) - Security
- Fix stored XSS via YAML frontmatter (GHSA-vfhj-c636-h59x)
- Prevent external-program argument injection (CWE-88)
- Fixes
- Fix the search keyword combobox growing unshrinkably wide
- Fix a missing home dashboard after removing a hidden workspace
- Fix
\labelequations rendering as black boxes, Graphviz render errors cascading, SVG data-URI images not displaying, and graph popup preview for nodes with line breaks - Make Cancel on the external-change dialog a sticky ignore
- Translations: updated Simplified Chinese and Japanese translations
A New Welcome
v4.2.0
A feature release that adds a Personal Knowledge Management home dashboard, cross-notebook history, activity tracking, and a dedicated Sync settings page on top of VNote 4.1.1:
- Dashboard (new): a customizable PKM home tab built from movable, resizable stickers
- Built-in Calendar, Greeting, and History stickers
- History sticker with recent-files and calendar-day modes, plus a one-click clear-date-filter
- Lock/Unlock mode to prevent accidental layout changes, an Add Sticker menu, a per-sticker Resize dialog, and Reset Dashboard to restore the default layout
- Toolbar and calendar icons follow the active theme
- History: reworked into a cross-notebook
HistoryService, so recent files are aggregated across all notebooks (the legacy per-notebook history panel and option were removed) - Activity tracking: focus time and note activity are now tracked via vxcore
- Settings: new Sync page; the auto-sync interval moved there and now defaults to 120s
- Editor
- Re-added the In-Place Preview toggle to the Markdown toolbar
- The image-host button now appears only in edit mode
- Removed the markdown editor Override Font option and its settings UI
- Windows switcher: a new Windows entry lists open view windows across workspaces, with prefix-matching and focus-restore fixes
- Title bar: the current note name is now shown in the system title bar
- Fixes
- Fix opening files from the command line / "Open with VNote", and absolutize forwarded open-file paths at the IPC boundary
- Preserve heading anchors in Insert As Relative Link
- Avoid a pre-
QApplicationevent-loop warning by lazily starting the search/image-host worker threads
- Translations: updated Simplified Chinese and Japanese translations
Incremental Search and Better PDF Export
A maintenance release with search improvements, PDF export fixes, and editor polish on top of VNote 4.1.0:
- Search
- Content-search results now stream in incrementally, so matches appear as they are found instead of after the whole search completes
- The maximum number of search results is now configurable
- Content matches are grouped by line, removing duplicate result rows
- Export: fix squeezed or mis-sized MathJax equations in PDF export, and stop exports from hanging on documents that mix equations with Mermaid/Graphviz/Flowchart/WaveDrom diagrams
- Editor
- Fix emoji next to styled text (such as headings) rendering as tofu boxes
- Refresh the editor style immediately when switching themes
- Notebooks (raw): enable image paste, and preserve note timestamps and metadata across rename
Here comes the VNote 4
VNote 4 is a major release built on a brand-new native core (vxcore) that powers notebook management, search, configuration, and synchronization. The whole application has been re-architected (clean MVC + dependency injection) for reliability and future extensibility. Highlights versus VNote 3:
- Notebook Sync (flagship): keep notebooks in sync across devices through any Git remote (GitHub, GitLab, self-hosted) over HTTPS or local
file://repositories- Enable per notebook from the new Sync button and Sync Info panel in the notebook explorer
- Authenticate with a Personal Access Token, stored securely in your system keychain (Windows Credential Manager, macOS Keychain, or Linux Secret Service) — never written to config or logs
- Changes sync automatically in the background, with a configurable Auto-sync interval in Settings > General (or sync on demand with Sync Now)
- Built-in conflict resolution when the same note is edited on two devices
- Live status (last sync time, idle/syncing/conflict/error) plus actionable messages for authentication failures
- Open & clone notebooks: the redesigned Open Notebook dialog supports a Local folder mode and a Remote URL mode that clones a notebook straight from a Git URL (with optional token and mid-clone cancel)
Refine toolbar and fix graphviz graph
- Refine toolbar by adding text besides icon
- Fix the messy code of Chinese in local graphviz
- Fix the welcome scene on macOS
Lots of PRs
What's Changed
- enhanced-mindmap-outline-and-link by @feloxx in #2631
- QuickAccess: change link address from hard link to VxURL by @Schips-Wong in #2635
- feature-add-node-visual by @feloxx in #2637
- fix-mindmap-outline-update-interval by @feloxx in #2641
- VxUrlUtils: correct the behavior of 'getFilePath..' functions by @Schips-Wong in #2638
- QuickAccess: update VxUrl list when accessing or changing entries by @SugarWong97 in #2642
- MarkdownEditor : Copy local GIF to clipboard without frame loss by @Schips-Wong in #2654
- try fix CI by @tamlok in #2659
- fix #2652 the same font size as parent heading. by @henices in #2661
Full Changelog: v3.19.2...v3.20.0