Marked 3 has been moving fast since 3.0.6, and is now at 3.0.25 (for Paddle customers). If you haven’t updated in a while, here’s a tour of the highlights.

I’ll give you the stuff that’s genuinely new first, then a roundup of the steady stream of fixes that got it here.

Regarding Updates

Setapp reviews are only taking about a day on average, but Mac App Store app reviews are taking seven days plus, and at least four days even with “expedited review” requests, so the MAS version is still at 3.0.16 and probably won’t catch up for a few days. If you’re on the MAS version and are looking for these updates, stay tuned.

Open PDFs in Marked

You can now open a PDF the same way you’d open Markdown or RTF. Marked converts it to Markdown in the background (with a “Converting” notice while you wait), caches the result and any extracted assets, and keeps watching the source PDF for changes. Export works like other import types, and +E opens the original in Preview.

This really only works with relatively simple, text-based PDFs, but it does do some OCR on scanned PDFs. Accuracy varies on that, as does image extraction and table capabilities.

Fountain, Highland, and screenplay export

Fountain documents got a lot of love. Paginated Fountain PDF export uses dedicated print CSS and proper page breaks. Highland (.highland) and TextPack bundles containing .fountain files open and preview as Fountain. Notes and synopses ([[note]]) show up as sidebar comment markers in the preview.

Screenplay margins for Fountain PDF are fixed at 72pt, and layout is driven by Fountain.css instead of generic export styles.

It’s still not perfect and shouldn’t be relied upon for final PDF output. I hope to get it up to Highland standards, but for now, Highland is the way to go for actually printing your screenplay (and for editing — it’s an excellent app).

RTF, RTFD, and Scrivener

RTF and RTFD files open directly in Marked with live preview on save – similar to the Scrivener workflow. Images from the document bundle land in the Watchers asset cache for preview and export.

For Scrivener, there’s a new Filter Scrivener Documents panel (Proofing menu, or F ) that lets you choose which binder sections appear in the preview. Selections persist per project, and can include “floating” documents and sections outside of the Draft binder. Scrivener can also prepend compile metadata (title, author, language) when it’s missing from the draft.

Preview styles, syntax highlighting, and “None”

Custom preview styles are much more reliable now – they shouldn’t randomly revert to Swiss when you reload, reopen, or switch documents. Per-document styles save on quit, and reopen restores both window size and the style you had selected.

Syntax highlighting jumped to highlight.js 11.11.1 with 239 themes, including the full Base16 collection, Nord, Rose Pine, Tokyo Night, and friends. Legacy theme names migrate automatically on launch.

You can also pick None as a preview style when you want Conductor-only styling or a bare preview without bundled theme CSS.

Image variants (Settings) resolve ~dark and @2x siblings into responsive <picture> markup. This is really cool, and makes Marked an even better companion for HTML export. If you use a pair of image.png and image~dark.png, it will output the light version of the image, but then switching to dark mode will show the dark version instead. This can be combined with @2x versions and all of the necessary markup will be generated for responsive images.

External editors and the Dingus

Settings > Apps got an external app picker for text, image, and markup editors – standard Choose Application panel, no more hunting for paths by hand. You can set the Markdown Dingus as your external text editor. Clear buttons reset editor preferences without restoring stale defaults.

Oh, and you can now define a “markup” image editor in addition to the main image editor. For me, this lets me set up CleanShot X as my markup editor, and I can right click any image to open it in CleanShots’s annotation window. Add a couple of arrows and hit +S and my image in my document updates immediately.

Per-document print/PDF margins are available via metadata:

Margins: 36 36 36 36

Two values set vertical and horizontal; four values set top, right, bottom, left (in points).

Conductor, placeholders, and Word export

Insert Text and Search/Replace actions now resolve [%key] placeholders from document metadata, environment variables, and Marked context – [%title] , [%MARKED_PATH] , and so on — without requiring MultiMarkdown.

DOCX export supports richer headers and footers: %logo , %image , %h1%h6 STYLEREF fields, and %md_* metadata placeholders. Custom Word Styles live in Application Support (created at launch alongside Custom CSS) and apply on export.

Custom processor integration improved throughout: snippet mode for preview, per-document Processor: metadata, better CriticMarkup handling with MultiMarkdown 6, and a long list of fixes for processors that return full HTML pages.

As a side note, you might not have noticed that you can drag files onto various windows and do different things. If you drag a CSS file onto Settings -> Style or onto the Style Manager window, it will add a new style for you (works) with multiple files). If you drag a text file into the action section of the Custom Rules editor, it will generate an Insert Text action. CSS files will generate an “Insert CSS” action. If you drag any file onto the left side of the Custom Rules, it will add it as a file to test the rules against so you can see which rules will activate for that file based on their criteria predicates.

Mind maps, Bike, and Mermaid

Bike outlines can embed as Mermaid mind maps (Apps preference). OPML, OmniOutliner, FreeMind, and iThoughts imports got similar treatment. Mermaid diagrams in general use a shared helper with theme-change rerender and pan/zoom-friendly updates.

I also improved the look of Mermaid mind maps, rounding corners and using a more pleasant color scheme (that also works in dark mode).

Speed Read, focus, and window behavior

Speed Read landed in the Preview menu (Control-Option-S) with the same shortcut as the gear menu. It works without requiring Mini Map or scroll sync. If you haven’t tried the RSVP speed reader in Marked yet, you really should.

Return focus to previous app (optional, off by default) sends keyboard focus back to your editor after Marked raises itself on file update. Bring updated document to front was toned down so Marked only reorders tabs within itself when it’s already active – it won’t pop over your coding app unless you want it to.

Window tabbing got a proper popup in Settings (windows / automatic / tabs) instead of a simple checkbox. It’s more reliable now if you want to open documents in new windows instead of tabs. Personally, I’ve come to really love Marked’s tabbed document functionality, and it raises tabs when their associated files change, keeping my windows tidy without giving up convenience.

Speaking of multiple documents, have you checked out the Quick Open panel yet? Just hit ++O and you can jump between any open or recent document with a Spotlight-style popup.

Licensing and subscriptions

I’ve submitted Marked Pro to the App Store, and it’s currently waiting for review. It’s exactly the same as Marked 3, but without subscriptions, just the full unlock price. It will allow MAS users of Marked 2 to “Complete your bundle” and get an upgrade price. It will also allow MDM installation. It’s yet another app that will be subject to Apple’s exceedingly slow review process, so it will probably never be fully up to date, but if you don’t need to live on the bleeding edge, it will be an option.

Paddle checkout got confetti, better restore behavior, and clearer subscription window layout. Permanent unlock handling is more robust on Paddle builds, including when the server omits permanent_license from a response.

MAS builds got review prompts, trial pill fixes, and faster UI updates after sandbox purchases.

About Subscriptions

By the way, it’s turned out that 90% of people would rather pay a hefty permanent unlock price than a subscription fee. This is kind of disappointing, but not a huge surprise. The point of going subscription was supposed to be that I could just develop continuously, constantly releasing new features, and get paid for it over time. With all of the permanent unlocks I’ve sold, I’m going to have to release a Marked 4 in a year just to stay afloat.

So if you’re wondering what the best purchase path for me is, it’s the very reasonable $4.99/month (currently $2.99/month) that I’d like to charge to keep things going. But my monthly subscription revenue right now is not enough to maintain development and I may just switch to a regular single purchase and a yearly update schedule. The Mac App Store requires that I release a new app with every major version, so that becomes a mess, and offering upgrade pricing across all versions is such a headache. I wish people could see the value in subscriptions for supporting ongoing development.

Other changes and fixes

That’s the headline stuff. Everything else is the kind of polish that adds up when you use Marked every day:

  • PDF export saw major pagination work in 3.0.23 – especially for deeply nested lists in Swiss and other styles. Lines that straddled page boundaries got clipped or split wrong; nested items sometimes picked up phantom full-page gaps; sibling list items under an intro line (think Pass / Offer / Put in game rules) could bisect mid-line. The list pagination post-pass now handles straddle detection, spacer-based pushes, splits at visual line boundaries, and cleanup of spurious page-break padding. Headings at page bottoms move with their content instead of orphaning (still not perfect, but getting there).
  • Earlier PDF fixes addressed duplicated pages, relative image URLs, graphic blocks bleeding across page breaks, paragraph continuations that preserve links and emphasis, and base font size consistency between paginated and continuous export.
  • Preview and styles: Custom CSS validation skips missing files; Fountain detection no longer confuses custom CSS paths; quit no longer hangs with open WebKit previews; HTML comments survive SmartyPants so large commented blocks don’t swallow everything after them.
  • Scrivener and RTF: Image paths resolve from the bundle; compile reload coalescing; edit markers compare compile snapshots; Pages RTFD conversion fixes; bibliography and pandoc sandbox access.
  • Conductor: Run Command deadlocks on large stdout fixed; sandbox permission dialogs for Homebrew binaries; CSS hoisted to head; Insert CSS File inlines content for portable HTML export.
  • Proofreading: Edit markers anchor to visible edits instead of HTML comment metadata; { /} and [ /] navigation through highlight types; keyword panel keeps preview focus.
  • Bike and task lists: Manuscript and Grump checkbox styling; non-interactive preview checkboxes; mind map label escaping and stale diagram refresh.
  • Subscriptions and trials: Trial countdown from trial_ends_at ; MAS cached StoreKit fallback; Report an Issue plist attachment fixed; support URLs updated to HTTPS.

If you’re on an earlier release, updating to 3.0.23 is worth it. PDF export with nested lists alone was worth the slog on my end – and I suspect a few of you with elaborate outline documents will notice.

If you haven’t tried Marked 3 at all yet, check out the website to see everything you’re missing!