Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ Non-code commits (documentation, planning, README-only updates) are excluded.
## v3.9.0

- **Description:** Introduced clearer sharing flows for Live Share and Share Snapshot, with fixes for shared Markdown rendering and desktop startup.
- **Live Share:** Live Share creates a temporary in-memory room for real-time collaboration. The document is synced only while the room is active, and the room is not saved as a permanent document store. Participants join through the invite link and can either edit or view only, depending on the access mode selected by the host.
- **Share Snapshot:** Share Snapshot creates a shareable read-only or editable snapshot link. Small documents stay encoded directly inside the URL hash. Larger documents are saved behind a generated `#share=` ID and kept temporarily for 90 days, so the recipient can open the shared document without it being stored on their own device.
- **Live Share:** Live Share introduced temporary real-time collaboration through a Cloudflare room. Markdown content is synchronized between active clients rather than stored as a permanent server-side Document. Participants join through the invite link with Can edit or View only access, depending on the mode selected by the host.
- **Share Snapshot:** Share Snapshot creates a point-in-time link with View only or Can edit access. Small documents stay encoded directly inside the `#share=...` URL hash. Larger documents are stored for 90 days and opened through a generated `#id=...` link; recipient tabs remain temporary rather than being added to the saved Workspace.
- **Shared Rendering:** Fixed shared Snapshot and Live Share participant views so LaTeX, Mermaid, TopoJSON, and other advanced Markdown renderers complete after the shared document loads.
- **Sharing UX:** The Live Share modal now shows only the display name, access mode, and start button before a room starts. Participant and invite-link sections appear only after the live room is active.
- **Desktop Startup:** Fixed the Neutralino desktop build preparation so bundled resources load the generated application script instead of stalling on startup skeletons.
Expand All @@ -72,9 +72,9 @@ Non-code commits (documentation, planning, README-only updates) are excluded.

## v3.8.0

- **Description:** Delivered substantial new feature expansions and reliability enhancements, including diagram insertion workflow with live card previews, client-side rendering engines (PlantUML, D2, Graphviz), interactive ABC notation playback sync, export quality boosts, desktop data persistence, and layout fixes for squished or overlapping diagrams.
- **Description:** Delivered substantial new feature expansions and reliability enhancements, including diagram insertion with live card previews, PlantUML/D2/Graphviz renderer integrations, interactive ABC notation playback sync, export quality improvements, desktop data persistence, and layout fixes for squished or overlapping diagrams.
- **Insert Diagram Modal:** Added an interactive "Insert Diagram" modal featuring high-fidelity static SVGs, actual live rendering of diagrams in split views, and a categorized search filter.
- **New Diagram Engines Support:** Integrated client-side rendering support for PlantUML, D2, Graphviz (DOT), Vega-Lite, Wavedrom, and Markmap diagrams via dynamic libraries and Kroki API fallbacks for browser/offline environments.
- **New Diagram Engines Support:** Added PlantUML, D2, Graphviz (DOT), Vega-Lite, WaveDrom, and Markmap integrations. The standard web paths use remote PlantUML/Kroki services for remote engines and client-side Markmap libraries.
- **Interactive Diagram Toolbars:** Built interactive toolbar options (zoom, pan, copy SVG/PNG, reset, fit-to-view) for newly introduced engines.
- **ABC Notation Enhancements:** Implemented synchronized playback cursor and note highlighting for synthesized audio playbacks and custom export actions.
- **High-Definition Image Export:** Increased PNG export resolution to 3x for crisp, high-definition diagrams, and added solid backgrounds to transparent SVG renders to preserve visibility.
Expand Down
355 changes: 116 additions & 239 deletions README.md

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions desktop-app/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Markdown Viewer Desktop App
# Markdown Viewer Desktop Application

This folder contains the Neutralinojs desktop wrapper for Markdown Viewer. It turns the browser-based Markdown editor, viewer, and reader into a lightweight desktop build for opening local `.md` files, using split live preview, exporting documents, and working with native file dialogs. It reuses the root web app and adds window lifecycle handling, desktop storage mirroring, and prepared local renderer assets.
This folder contains the Neutralinojs desktop wrapper for Markdown Viewer. It turns the browser-based Markdown editor and viewer into a lightweight desktop build for opening local `.md` files, using Split view and live Preview, exporting Documents, and working with native file dialogs. It reuses the root web app and adds window lifecycle handling, desktop storage mirroring, and prepared local renderer assets.

For the complete product behavior and privacy reference, see [../wiki/Features.md](../wiki/Features.md).
For complete product behavior, see [Features](../wiki/Features.md). For storage and network boundaries, see [Privacy and Security](../wiki/Privacy-and-Security.md).

## Architecture

The desktop app shares the same core product code as the browser version:
The desktop application shares the same core product code as the browser version:

- `../index.html`
- `../script.js`
Expand All @@ -32,6 +32,7 @@ Desktop-only files:
- A Markdown file passed as a launch argument is loaded into the editor.
- The app asks before closing the window.
- Prepared desktop resources load dynamic libraries from local `/libs/...` paths after setup.
- Private mode and **Reset workspace** clear persisted normal and Secret Workspace Document data. Export needed Documents before using either control.

Network features still use the network when invoked: managed media upload, GitHub import, stored Share Snapshot, Live Share, remote diagram rendering, external images, and external links.

Expand Down Expand Up @@ -78,9 +79,9 @@ Native APIs are intentionally allowlisted: app exit, open/save dialogs, message

## Local Renderer Security

Markdown content is treated as untrusted input. The desktop app does not allow Markdown preview rendering to run local shell commands by default. Native file open/save remains available through Neutralino dialogs and filesystem APIs.
Markdown content is treated as untrusted input. The desktop application does not allow Markdown Preview rendering to run local shell commands by default. Native file open/save remains available through Neutralino dialogs and filesystem APIs.

Remote-safe diagram rendering continues to work where supported. Local command renderers such as D2 or PlantUML should only be enabled in a custom build after the user has explicitly accepted that local renderer programs process document content on their machine, and only fixed commands with stdin input should be allowed.
Remote diagram rendering continues to work where supported. PlantUML and D2 use their remote paths in the standard build. Local command renderers should only be enabled in a custom build after the user has explicitly accepted that local renderer programs process Document content on the machine, and only fixed commands with standard input should be allowed.

## Docker Build

Expand Down
Loading
Loading