Skip to content

Belvedere 1.2.3

Choose a tag to compare

@inquinity inquinity released this 08 Oct 12:07
· 224 commits to main since this release

First released on 2026-09-14, the date of the v1.2.3 tag. This release page was re-created on 2026-10-08 when the repository was replaced, so GitHub shows that date; the file and its checksum are identical.

Belvedere 1.2.3

Based on Markdown Preview 0.0.57, plus one upstream change made after that release — listed at the end.

New in this release

  • Arrow keys and space work in Quick Look again. The preview no longer takes
    keyboard focus, so the keys move the Finder selection and space dismisses the
    preview instead of scrolling the document. The trade: to select and copy the
    rendered text with ⌘A / ⌘C, click into the preview first — until then they copy
    nothing, as in Apple's own text and PDF previews. The Copy button still copies
    the Markdown without that click.
  • Remote images can now be loaded with a click. Nothing is fetched when a
    document opens, so opening one still never tells its author that you read it.
    A placeholder names the host, and Load fetches that one image — no
    cookies, nothing remembered, and the next remote image asks again. Load all
    stays local-only, and Quick Look still names remote images without offering to
    load them.
  • Settings › Privacy now describes a blocked remote image the way it actually
    appears — a placeholder naming the host — instead of calling it broken.
  • The toolbar Save button is icon-only, like the other toolbar buttons.
  • Security fix (GHSA-42qg-98g7-78q4).
    A crafted Markdown document could close the internal element that holds
    unsanitised content early — by spelling its end tag in uppercase — and run
    script in the preview before the sanitiser saw it, on open or Quick Look
    preview. Belvedere's content policy already blocked such a document from
    reaching the network; the script could still alter the open file through the
    preview's edit bridge. The document body is now escaped so the element
    cannot be closed, whatever the tag's case. Reported upstream; also filed as
    pluk-inc/markdown-preview#398.
  • New from Markdown Preview 0.0.57: bare http:// and https:// addresses are
    clickable; .mdx files open as Markdown, with their JSX, imports and expressions
    shown as text rather than compiled; clicking a folder row in the project navigator
    expands or collapses it; bullet markers keep their spacing; and the full-screen
    toolbar keeps a custom theme colour.

Changes on top of Markdown Preview 0.0.57

Belvedere is Markdown Preview with its network connections removed and its handling
of untrusted documents tightened. Reading, editing, printing, PDF export and Quick
Look are upstream's work.

It never connects on its own

  • No crash reporting and no usage analytics. The code that sent them is gone, so
    Settings › Privacy states this instead of offering switches.
  • No automatic updates, and no Check for Updates…. New versions come through
    Homebrew: brew upgrade --cask belvedere.

A document cannot reach the network, or files outside its folder

  • Remote content — images, stylesheets, fonts, scripts — is blocked in the document
    window, the editor and Quick Look. A remote image shows as a placeholder naming its
    host, so opening a document never tells its author that you read it.
  • Images load only from the document's own folder, or when you ask for them. A file
    outside the folder, or a remote image, shows as a placeholder with a Load
    button: one click, checked to be a real image first, and not remembered — a remote
    fetch carries no cookies and grants nothing to that host next time. Load all
    covers local files only. Quick Look names these without offering Load.
  • A link outside the document's folder does nothing when clicked, and has no context
    menu.
  • A link to a program — an app, a script, an installer, a disk image — is shown in
    Finder rather than started, even when it sits inside the document's own folder.
    Links to ordinary documents open as usual.
  • A document cannot draw form controls — no text fields, dropdowns or other inputs
    that could imitate a sign-in prompt. Task-list checkboxes still work.

Ahead of Markdown Preview

Proposed to Markdown Preview and carried here until it merges them:

  • A Save button in the default toolbar, lit whenever the document has unsaved
    changes. Leaving edit mode with unsaved changes asks
    Save / Revert… / Continue, with a setting to keep the old silent exit;
    Save As… and Revert to Saved work, and ⌘S works after leaving edit mode.

Its own app

  • Named Belvedere, with its own icon and bundle identifier, so it installs alongside
    Markdown Preview instead of replacing it.
  • The command-line tools installer is removed, along with the permission to control
    Terminal that it needed.
  • The About box states the network posture above and credits Markdown Preview.
  • Signed with Belvedere's own Developer ID, notarized by Apple, and distributed
    through the Homebrew tap inquinity/tap/belvedere.

Upstream changes after 0.0.57 included in this build

These are on Markdown Preview's main but not yet in one of its releases:

  • Keep custom theme colors in the full-screen toolbar