Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
a7572d6
Add document management sidebar
ThisIs-Developer Jul 17, 2026
115e9e4
Refine file sidebar and add secret workspace
ThisIs-Developer Jul 17, 2026
5b0fd5d
Polish document sidebar interactions
ThisIs-Developer Jul 17, 2026
fe92db8
Add tab actions and document split view
ThisIs-Developer Jul 17, 2026
21ab851
Refine document tabs and editor toolbar
ThisIs-Developer Jul 17, 2026
4297cec
Improve synchronized split and preview tools
ThisIs-Developer Jul 17, 2026
a0a0ee2
Polish toolbar utilities and file tree states
ThisIs-Developer Jul 17, 2026
7406610
fix(sidebar): polish filters and split controls
ThisIs-Developer Jul 17, 2026
e810b9b
style(sidebar): match editor resize divider
ThisIs-Developer Jul 17, 2026
de593b7
feat(toolbar): reorganize document actions
ThisIs-Developer Jul 17, 2026
4abea07
feat(ui): unify application menus and about dialog
ThisIs-Developer Jul 17, 2026
bb3793c
refactor(toolbar): simplify document commands
ThisIs-Developer Jul 17, 2026
bf68455
feat(ui): add save status and streamline toolbar
ThisIs-Developer Jul 17, 2026
48191c4
feat(ui): redesign explorer and markdown toolbar
ThisIs-Developer Jul 18, 2026
abbb97d
feat(ui): modernize toolbar icon system
ThisIs-Developer Jul 18, 2026
00cd35c
feat(ui): refine explorer interactions and modals
ThisIs-Developer Jul 18, 2026
eb4a941
fix(ui): restore icon colors
ThisIs-Developer Jul 18, 2026
d6eaa71
style(icons): increase Lucide stroke width
ThisIs-Developer Jul 18, 2026
d36f41a
chore(desktop): refresh bundled application resources
ThisIs-Developer Jul 18, 2026
71b92b4
feat(ui): refine overlays and mobile navigation
ThisIs-Developer Jul 18, 2026
81400ea
feat(ui): refine modals and mobile layout
ThisIs-Developer Jul 18, 2026
e204e0c
style(header): enlarge GitHub logo
ThisIs-Developer Jul 18, 2026
db7276a
fix(header): align GitHub icon with title
ThisIs-Developer Jul 18, 2026
52419d9
style(ui): refine brand and about spacing
ThisIs-Developer Jul 18, 2026
8cd23fd
feat(import): organize GitHub repository files
ThisIs-Developer Jul 18, 2026
540421d
style(ui): refine attribution and report action
ThisIs-Developer Jul 18, 2026
05c583d
fix(share): refine access cards and startup feedback
ThisIs-Developer Jul 18, 2026
c7d3393
fix(ui): standardize application modal shells
ThisIs-Developer Jul 18, 2026
c3140a7
style(ui): refine settings menu icons
ThisIs-Developer Jul 18, 2026
e5efe4a
feat(ui): replace mobile menu with sliding sidebar
ThisIs-Developer Jul 19, 2026
c97d6d7
feat(ui): refine empty document actions
ThisIs-Developer Jul 19, 2026
42c06e1
style(ui): soften empty document state
ThisIs-Developer Jul 19, 2026
7ec49a5
feat(ui): redesign empty document launch panel
ThisIs-Developer Jul 19, 2026
4cabb00
style(ui): simplify empty document layout
ThisIs-Developer Jul 19, 2026
69e11e0
fix(editor): guard empty document state
ThisIs-Developer Jul 19, 2026
5ce5b87
fix(workspace): restore welcome document after reset
ThisIs-Developer Jul 19, 2026
fd041d1
feat(ui): redesign mobile navigation drawer
ThisIs-Developer Jul 19, 2026
af1bdc0
feat(ui): refine mobile workspace menu
ThisIs-Developer Jul 19, 2026
f8f9875
feat(i18n): localize application interface
ThisIs-Developer Jul 19, 2026
0b40acb
fix(i18n): localize dynamic application states
ThisIs-Developer Jul 19, 2026
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
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,14 +99,14 @@ Markdown Viewer handles the usual Markdown basics, but its real value is helping
5. **Share Snapshot Links**: create view-only or editable point-in-time links when you need to send a document state quickly. Large stored snapshots expire after 90 days.
6. **LaTeX Math Notation**: render inline and display formulas with MathJax, useful for math-heavy notes, papers, and technical explanations.
7. **Markdown to PDF, HTML & PNG Export**: export Markdown, HTML, PNG, Browser Print / Save as PDF, or Legacy Raster PDF for documents that need sharing, printing, or archiving.
8. **Privacy and Security Controls**: use Private mode to prevent document persistence, clear saved local data, and rely on sanitized previews, hardened export HTML, and restricted desktop native APIs.
8. **Privacy and Security Controls**: enable Private mode from Workspace settings to keep document and review data session-only, and rely on sanitized previews, hardened export HTML, and restricted desktop native APIs.

For the full feature list, details, limitations, and privacy notes, see the [features reference](wiki/Features.md#product-summary).

## Markdown Editing and Live Preview

- Write plain Markdown in a focused editor while the live preview renders GitHub-Flavored Markdown, syntax highlighting, math, alerts, footnotes, tables, task lists, and sanitized HTML.
- Work with multiple Markdown documents in tabs, rename or duplicate tabs, import local Markdown files, and keep normal workspace state in browser storage.
- Organize up to 50 Markdown files in a closable, responsive left sidebar with a persistent tab-strip toggle, fixed Default and Secret workspaces, one-level folders, search, Recent, Favorites, single-click opening, and drag-and-drop moves. Secret Workspace content is password-encrypted on the device, and multi-file imports show compact progress without blocking the editor.
- Use WYSIWYG-style toolbar helpers for common Markdown syntax while keeping full control of the plain-text Markdown source.
- Preview large documents with debounced rendering and a background worker so typing stays responsive.

Expand Down Expand Up @@ -271,11 +271,12 @@ Some advanced diagram engines use remote renderers such as PlantUML, Kroki, or m

Markdown Viewer is not a cloud workspace. Normal typing, preview rendering, local file import, tab autosave, theme settings, and most exports happen on your device. No login is required, and the app does not implement analytics, telemetry, ads, or tracking cookies.

Network use is user-triggered for features such as GitHub import, remote diagram renderers, Share Snapshot, Live Share, CDN libraries, and external document assets. Private mode stops saving document content and workspace state locally; the About dialog also provides a Clear local data action. For the full reference, read the [data handling summary](wiki/Features.md#data-handling-summary).
Network use is user-triggered for features such as GitHub import, remote diagram renderers, Share Snapshot, Live Share, CDN libraries, and external document assets. Private mode in Workspace settings keeps document content, workspace state, and review feedback session-only while editing and review tools remain available. For the full reference, read the [data handling summary](wiki/Features.md#data-handling-summary).

## Security and Privacy Controls

- Preview HTML is sanitized before insertion, and exported HTML includes a restrictive CSP plus SRI metadata for its external assets.
- Secret Workspace derives a local encryption key from the user's password with PBKDF2-SHA-256 and encrypts its files and folder names with AES-GCM. The key is kept only for the unlocked browser session, and forgotten passwords cannot be recovered.
- Cloudflare Pages deployments use `_headers` for CSP, clickjacking protection, referrer and permissions policies, and no-sniff protection; sensitive paths are redirected to 404 responses.
- Stored Share Snapshot API CORS is limited to the production app, `null`, and local development origins. Stored responses are `no-store`, and creators receive a deletion token from the API.
- STL rendering rejects oversized sources, non-finite geometry, and excessive vertex counts before WebGL rendering.
Expand Down
21 changes: 21 additions & 0 deletions assets/BOOTSTRAP-ICONS-LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
The MIT License (MIT)

Copyright (c) 2019-2024 The Bootstrap Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
43 changes: 43 additions & 0 deletions assets/LUCIDE-LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
ISC License

Copyright (c) 2026 Lucide Icons and Contributors

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

---

The following Lucide icons are derived from the Feather project:

airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out

The MIT License (MIT) (for the icons listed above)

Copyright (c) 2013-present Cole Bemis

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading