Skip to content

Releases: sethbang/markee

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 19:08

Added

  • Docs navigation — click .md links to navigate in-window with
    back/forward history (⌘[ / ⌘]), a sidebar file tree, [[wiki-links]]
    resolved across the workspace, and a workspace-wide full-text search palette
    (⇧⌘O). File ▸ Open Folder as Workspace… sets the root explicitly.
  • Preferences window (⌘,) — override the theme (System/Light/Dark), accent
    color, and base font size, and load a custom CSS file (Settings scene).
  • Window pinning — Window-menu commands: Float on Top (⌥⌘P), Visible on All
    Spaces, Move to Active Space, and a Ghost Mode that dims the window until you
    hover or hold a modifier.
  • Rendering polish — copy-code buttons and language badges on code blocks,
    heading anchor links, and a live word-count pill.
  • Export PDF… (⇧⌘E) — write the rendered document straight to a PDF,
    alongside the existing Export Standalone HTML.
  • Commercial / Team license materials (COMMERCIAL.md,
    docs/commercial-agreement-template.md).

Changed

  • Print / Save as PDF now uses a print-tuned @media print stylesheet
    (forced light palette, page-break avoidance for code/tables/diagrams, printed
    link URLs) for cleaner pagination.
  • Find in preview is reimplemented as a JS-owned engine using the CSS Custom
    Highlight API — no DOM mutation, so highlights never leak into Export/Print.
  • fetch-vendor.sh now verifies every downloaded library against a pinned
    SHA-256 manifest (scripts/vendor.sha256) and fails on mismatch.

Removed

  • The "Stay Visible in Full Screen" pinning option — unachievable for Markee's
    activating DocumentGroup windows.

Fixed

  • Mermaid and KaTeX render failures now surface in the in-app error banner
    instead of failing silently.

v1.0.0

Choose a tag to compare

@github-actions github-actions released this 19 May 12:18
d320582

The first publicly distributable release — Developer ID signed and notarized,
so Markee installs and opens without Gatekeeper warnings.

Added

  • Quick Look preview — press Space on a Markdown file in Finder to see it
    fully rendered instead of as raw source. A sandboxed Quick Look extension
    that reuses the app's renderer.
  • Per-file Finder thumbnails.md files show a thumbnail of their
    rendered content in Finder's icon views, falling back to the document icon.
  • Markdown document icon.md files now carry a branded Markee document
    icon in place of the generic plain-text page.
  • Developer ID signing & notarization — the app and both Quick Look
    extensions are signed with a Developer ID certificate and notarized by Apple,
    so they install and open without Gatekeeper warnings. make notarize and the
    release workflow handle it end to end.

Changed

  • Mermaid now loads lazily — only documents that contain a diagram pay its
    ~2.5 MB parse cost, so cold-start render is faster for everything else.
  • Bundle version bumped to 1.0.0 (CFBundleShortVersionString) / 6
    (CFBundleVersion).

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 19 May 04:28
4710f0d

Added

  • Copy Markdown Source (⌘⇧C) — copy the file's raw Markdown to the
    clipboard, read fresh from disk. In the File menu and the preview
    right-click menu.
  • Reveal in Finder (⌘⇧R) — reveal the current file in Finder. In the
    File menu and the preview right-click menu.
  • In-app updates — Markee checks GitHub Releases for a newer version on
    launch (at most once a day) and on demand via Markee ▸ Check for
    Updates…
    . When a newer release exists it downloads, validates, and
    installs it, then relaunches — clearing quarantine so there is no repeat
    Gatekeeper prompt. Falls back to opening the release page in the browser
    when it cannot replace itself in place.

Changed

  • Bundle version bumped to 0.5.0 (CFBundleShortVersionString) / 5
    (CFBundleVersion).

Fixed

  • The custom title bar no longer disappears after the window loses and
    regains focus. AppKit resets titlebarAppearsTransparent during window
    reactivation; the window configuration is now re-applied via KVO
    whenever that happens.

First launch: Markee is ad-hoc codesigned, not yet notarized. Right-click Markee.appOpenOpen the first time, or run xattr -dr com.apple.quarantine Markee.app.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 18 May 23:58

Added

  • Zoom (⌘+ / ⌘= / ⌘- / ⌘0) — resize the rendered preview. Zoom is
    reflow-based: text re-wraps and code blocks, images, KaTeX, and Mermaid
    output scale together. The level is one global preference, shared across
    all open windows and remembered across launches. ⌘+ and ⌘= both zoom in
    (the latter needs no Shift). Driven through a window.markee.setZoom()
    bridge call applying CSS zoom; native WKWebView.pageZoom is macOS 14+
    and the deployment target is macOS 13.
  • Find Next / Previous (⌘G / ⌘⇧G) — step through find-bar matches with
    the standard macOS shortcuts, with matching Edit-menu items. ⌘G with no
    active query opens the find bar.
  • Reload (⌘R) — manually re-read and re-render the file from disk; a
    fallback for the rare save the file watcher does not catch.

Changed

  • Bundle version bumped to 0.4.0 (CFBundleShortVersionString) / 4
    (CFBundleVersion).

First launch: Markee is ad-hoc codesigned, not yet notarized. Right-click Markee.appOpenOpen the first time, or run xattr -dr com.apple.quarantine Markee.app.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 15 May 13:32

Added

  • Find in preview (⌘F) — an in-app find bar. macOS WKWebView has no
    built-in find UI, so Markee ships its own: find-as-you-type, ↩ / chevrons
    to step through matches, wrap-around, a "Not found" indicator, and ⎋ to
    dismiss. Driven by WKWebView.find(_:configuration:).
  • Print / Save as PDF (⌘P) — opens the system print panel via
    WKWebView.printOperation(with:); the panel's PDF menu covers
    print-to-PDF.

Fixed

  • Export Standalone HTML (⌘E) failed with "JavaScript execution
    returned a result of an unsupported type."
    exportStandalone() is async
    (it inlines images as data URIs), so it returns a Promise;
    evaluateJavaScript cannot await one. The bridge now uses
    callAsyncJavaScript, which resolves the Promise before returning to Swift.

Changed

  • CI builds on macos-14 + macos-15; the retired macos-13 hosted
    runner was queueing jobs indefinitely.
  • Bundle version bumped to 0.3.0 (CFBundleShortVersionString) / 3
    (CFBundleVersion).

First launch: Markee is ad-hoc codesigned, not yet notarized. Right-click Markee.appOpenOpen the first time, or run xattr -dr com.apple.quarantine Markee.app.

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 14 May 17:41

Added

  • Open in Editor at Current Heading — ⌥⌘E or right-click an outline row to
    jump to that heading's source line in your editor of choice. Auto-detects
    Cursor, VS Code, Zed, Sublime, TextMate, MacVim, and Helix; override with
    defaults write com.markee.preview editor "<name>".
  • Soft Modern UI/UX redesign:
    • Integrated window chrome (no system titlebar divider, custom 44pt gradient bar).
    • Spring-animated outline drawer (⌘⌥\ to toggle).
    • Live active-heading highlight in the outline, driven by an
      IntersectionObserver in the WebView.
    • New theme.css with --surface / --accent token palette,
      soft-modern typography, custom task-list checkboxes, faded <hr>, and a
      lede-paragraph treatment after H1.
    • Dark + light themes follow prefers-color-scheme.
  • Article max-width widened from 740px → 1000px.
  • MIT license, THIRD-PARTY-NOTICES.md, SECURITY.md, CONTRIBUTING.md,
    CHANGELOG.md, and a docs/demo.md showcase document.
  • GitHub Actions CI workflow that builds and tests on every push and PR.

Security

  • BundleSchemeHandler path-traversal hardening — requests like
    markee-app://app/../../Info.plist no longer escape the bundle's
    Resources/web/ directory.
  • DocSchemeHandler symlink-escape fix — symlinks inside the document
    directory pointing at files outside (e.g. ~/.ssh/id_rsa) are now rejected.
    Resolution moved from standardizedFileURL to resolvingSymlinksInPath()
    with a trailing-slash boundary so sibling directories with the root as a
    prefix (/notes_secret vs root /notes) cannot match.
  • External-link allowlist — only http, https, and mailto schemes are
    handed to NSWorkspace.shared.open; javascript:, file://, custom
    app-handler schemes are blocked.
  • EditorLauncher input validation — user-supplied editor names from
    UserDefaults are validated against ^[A-Za-z0-9._+-]+$ before being
    interpolated into the zsh -ilc 'command -v <name>' fallback, closing a
    self-targeted shell-injection vector.
  • All HTTPURLResponse(...)! and task.request.url! force-unwraps in the
    scheme handlers replaced with guard let early-outs.

Changed

  • Makefile app target now depends on a Resources/web/vendor/.fetched
    sentinel — a fresh clone running make app automatically fetches vendored
    libraries instead of silently building a broken bundle.
  • LICENSE and THIRD-PARTY-NOTICES.md are now copied into
    Markee.app/Contents/Resources/ at build time so the obligations travel
    with the binary.
  • Bundle version bumped to 0.2.0 (CFBundleShortVersionString) / 2
    (CFBundleVersion).

Fixed

  • fixtures/sample.md references to the old "Macdown" name updated to
    "Markee" + smoke-test stragglers removed.

First launch: Markee is ad-hoc codesigned, not yet notarized. Right-click Markee.appOpenOpen the first time, or run xattr -dr com.apple.quarantine Markee.app.