Releases: FuncularLabs/MarkdownMidget
Release list
Markdown Midget v0.4.0-beta1
Minor bump to 0.4.0. Two user-visible wins — documents that reference images
now render them fully, and the recurring "editor surface couldn't load"
(ERR_ACCESS_DENIED) crash after a hard exit is fixed — plus safe rendering of
embedded raw HTML. Shipped as a beta for a weekend of dogfooding before the
prerelease flag is dropped for 0.4.0 stable.
Added
- Crash-resilient WebView2 profile. Each run now uses its own per-process
WebView2 data folder instead of one shared folder. A hard crash or force-kill
used to orphan WebView2 child processes that kept the shared folder locked,
breaking the next launch withERR_ACCESS_DENIED; per-process folders can't
collide, so the following launch is always clean (stale folders from prior runs
are swept on startup, skipping any still in use). If the editor surface still
fails to load, the app offers a one-click restart into a fresh profile rather
than stranding the user on a cryptic Edge error page. Documents and settings are
untouched. - Raw HTML now renders (sanitized). Embedded HTML — a centered logo
(<p align="center"><img …>),<br>,<sub>/<sup>, small tables, etc. —
renders instead of showing as escaped text. The HTML is sanitized with
DOMPurify (scripts, event handlers likeonerror,iframe/object, and
javascript:URLs are stripped) before display, and the original markup is
kept in the model so saving round-trips it unchanged. Relative image paths
inside the HTML resolve against the document folder like everything else.
Fixed
- Relative image paths in opened files now render. Images referenced
relative to the document (e.g.docs/logo.png) resolve against the file's
folder — the way Markdown Monster and GitHub do. A<base href>points at a
dedicated host whose files the app serves from the document's folder via
WebResourceRequested(a second virtual-host mapping won't serve cross-origin
to the editor host, and image bytes weren't delivered). Only URL resolution
changes; the markdown keeps the original relative paths, so saving is
unaffected. Serving is restricted to the document's own folder subtree;
untitled / dropped content clears the base. (Images inside raw HTML — e.g. a
centered logo — render too; see "Raw HTML now renders" above.)
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.4.0-beta1-win-x64-net10.exe — single-file, framework-dependent build (~6.15 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- The download is signed by Funcular Labs via Azure Artifact Signing (Authenticode). If Windows SmartScreen warns on a very new release, the reputation graph builds up quickly for signed installers.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.3.0-beta1
First 0.3.0 release (the alpha1 work was dogfooded internally, never published,
and is rolled up here).
Added
- Richer Register / Unregister dialogs for Windows integration, each with
minimalist diagrams so non-technical users can see what every option does.- Register (all on by default): Move the download into the app folder
(vs. copy), Add to Start menu, Add a Desktop shortcut, plus the
existing Set as default. The original download location is remembered. - Unregister (all optional): remove the Open With registration, restore a
copy to where it was downloaded, remove the Start-menu entry, remove the
Desktop shortcut, and remove the installed app-folder copy. - Move installs to the app folder then relaunches from there and deletes
the original download (via a--finish-movehandoff, guarded by the
unsaved-changes prompt so a restart can't drop edits).
- Register (all on by default): Move the download into the app folder
- Skip Spell Check in Code (View menu, WYSIWYG) — leaves code blocks and
inline code un-checked while still spell-checking prose, so identifiers,
keywords and snippets don't get flagged. On by default; remembered between
sessions. (Source view remains all-or-nothing — a WPFTextBoxlimitation.) - Spell-check on/off is now remembered between sessions.
- ROADMAP.md — a living wishlist/roadmap. First entry: the
de-risk spike for owning the spell-check stack (custom dictionaries +
"Add to dictionary" via the Windows Spell Checking API), since WebView2
exposes no dictionary API.
Changed
- Denser table styling. Square corners, a gray header row (darker than the
stripes), tighter cell padding (1px 6px), 12px text, and the first data row
is light (stripes start on row 2). Also fixed a latent bug where Nord's
!importantlogical-padding rules were silently overriding our cell padding —
tables now render at the intended density.
Fixed
- Win+arrow window management now behaves like Notepad / File Explorer. We
were intercepting Win+arrow and hand-rolling snap math, which was worse than
the OS (no snap-assist, poor multi-monitor/DPI handling). Removed the handler
entirely; the window is a standard resizable window, so native Windows Snap
just works.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.3.0-beta1-win-x64-net10.exe — single-file, framework-dependent build (~6.15 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- The download is signed by Funcular Labs via Azure Artifact Signing (Authenticode). If Windows SmartScreen warns on a very new release, the reputation graph builds up quickly for signed installers.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.2.0-beta2
Added
- Authenticode-signed releases via Azure Artifact Signing. The release
workflow now signs the published exe using a service principal + the
funcular-labs-public-trustcertificate profile, then verifies the
signature before uploading to the release. Windows SmartScreen will build
reputation quickly for signed installers rather than warning on every run.
Changed
- Exe metadata is populated. Details tab now shows Company (Funcular Labs),
Copyright (© Funcular Labs 2026, MIT), Product / FileDescription
(Markdown Midgetwith the space), and the+git-shasuffix that MSBuild
was appending to ProductVersion is suppressed. AppVersionis now derived from the assembly's
AssemblyInformationalVersionAttributeat runtime. CI passes
-p:InformationalVersion=<tag-version>at publish, so the title-bar version
automatically reflects whatever tag drove the release — no more manual const
bumps between the code, the csproj, and the tag.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.2.0-beta2-win-x64-net10.exe — single-file, framework-dependent build (~6.13 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- The download is signed by Funcular Labs via Azure Artifact Signing (Authenticode). If Windows SmartScreen warns on a very new release, the reputation graph builds up quickly for signed installers.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.2.0-beta1
Beta milestone. Everything from the 0.1.x alpha series is baked in and the
release engineering (CI, tag-driven publishing, unit tests, embedded HELP.md,
Windows integration) is proven. This is the first -beta — targeted at
hands-on testing before dropping the prerelease flag for 0.2.0 stable.
Changed
- README image references now point at
raw.githubusercontent.com/…/master/art/…instead of relative paths, so the
file renders identically on GitHub and stays functional when the README is
copied anywhere (the absolute URL always resolves, without falling into the
GitHub-strips-data-URIs trap). - Refreshed screenshot — updated to reflect the current 0.2 feature set
(formatting marks toggled on, live table editing, syntax-highlighted code
block, ¶ tab-arrow marks, custom spell-check icon on the View toolbar,
in-document mascot).
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.2.0-beta1-win-x64-net10.exe — single-file, framework-dependent build (~6.13 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.8-alpha3
Added
- Unit tests. New
tests/MarkdownMidget.Tests/xUnit project covering
FindEngine(four search modes, escapes, wildcards, whole word, case, regex
edge cases) — 32 tests, ~40 ms locally. - GitHub Actions CI:
.github/workflows/ci.ymlruns on pushes tomaster
and every PR — builds the editor bundle (npm) + solution + runs tests on
windows-latestwith .NET 10. - GitHub Actions release publishing:
.github/workflows/release.ymlfires
onv*tag pushes. Builds the editor bundle, runs tests, publishes the
framework-dependent exe with tag-derivedVersion/InformationalVersion,
extracts the matching CHANGELOG section for release notes, appends the
standard Download / Requirements / Notes boilerplate, and creates the
GitHub release (prerelease flag inferred from-alpha/-beta/-rcin
the tag). This release is the first published by CI. - README and HELP.md now embed all images as base64 data URIs so the
files stay self-contained if copied outside the repo tree. HELP.md's
mascot header set the pattern in alpha3-prep; the README screenshot and
mascot follow the same convention.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.8-alpha3-win-x64-net10.exe — single-file, framework-dependent build (~6.13 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.8-alpha2
Fixed
- Registration dedupe now covers the per-user Explorer ProgID MRU. The 0.1.8-alpha1 dedupe cleaned
HKCU\Classes\.md\OpenWithProgidsand theOpenWithListMRU but missed the parallel per-userExplorer\FileExts\.md\OpenWithProgidslayer — that's what was letting a stale "Markdown Midget" reference to an older version survive re-registration. Also handles legacyApplications\MarkdownMidget…/Applications\mkm…ProgID references in the same MRU and clears an outdatedUserChoiceif it points at one of ours. - The "Set as default" prompt now walks the user through Settings. Windows 10/11 protect the default-app UserChoice hash so apps can't set defaults programmatically; the registration confirmation now spells out exactly what to click in the Settings pane that gets opened.
- Registration success message notes that Explorer's Open With submenu aggressively caches and may still show an old entry until sign-out.
Added
- F1 opens the Help window (in addition to Help ▸ View Help). The menu item displays the shortcut.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.8-alpha2-win-x64-net10.exe — single-file, framework-dependent build (~6.4 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.8-alpha1
Added
- File ▸ Windows Integration ▸ Register as .md editor… — a per-user, no-admin workflow to add Markdown Midget to the Windows "Open with" menu for
.mdfiles. Uses a stable ProgID (MarkdownMidget.Document), so re-registering the current version overwrites the same registry key and can't accidentally create duplicates. On register we also dedupe stale references to Markdown Midget (previous "Choose another app" pickings underFileExts\.md\OpenWithList, oldApplications\entries under different exe filenames likemkm.exe). - Optional AppData install + Start-menu entry. Checkbox in the register dialog copies the current build to
%LocalAppData%\Programs\MarkdownMidget\MarkdownMidget.exeand creates a Start-menu shortcut — a portable-app style install with no MSI. Recommended because it keeps the Open With entry stable across future releases (just re-register after each upgrade). - Optional "Set as default" — Windows 10/11 protect the UserChoice hash so apps can't set defaults programmatically; the checkbox opens the Default Apps Settings page filtered to
.mdfor the user to confirm with one click. - File ▸ Windows Integration ▸ Unregister as .md editor — removes the ProgID + Applications entry +
.md\OpenWithProgidslink and does the same dedupe pass. If an AppData install exists (and isn't the currently-running copy), asks whether to also remove that folder and the Start-menu shortcut.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.8-alpha1-win-x64-net10.exe — single-file, framework-dependent build (~6.4 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.7-alpha2
Fixed
- Find Next / Find Previous now actually advance the cursor. The WYSIWYG dispatcher was calling
findReset()on every navigation, which reset the match pointer to -1 — so F3 always landed back at the first match. The reset is now only performed when the pattern or its options change (and is invalidated on any subsequent document edit). - Find no longer "lands nowhere" when a match falls inside a hidden mermaid source block. The text-node walker now rejects any node whose ancestor has
display: noneorvisibility: hidden(which covers the hidden mermaid<pre>, collapsed details, draft regions, etc.).
Added
- Standard Windows window-management shortcuts, intercepted at the WPF Window so they work even when the WebView2 child has keyboard focus:
- Win+Up — maximize (restore-from-minimized if minimized)
- Win+Down — minimize (restore-from-maximized if maximized)
- Win+Shift+Up — fill the working-area height at the current width
- Win+Left / Win+Right — snap to the left / right half of the work area
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.7-alpha2-win-x64-net10.exe — single-file, framework-dependent build (~6.4 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.7-alpha1
Added
- Find (Edit ▸ Find… / Ctrl+F) — modeless dialog with four search modes (Normal, Extended, Wildcards, Regular expression), Match case / Match whole word only / Wrap around toggles, and a
Match m of nstatus line. F3 jumps to the next match, Shift+F3 to the previous. Find works in both the WYSIWYG view (text-node scan with browser-selection highlight) and the Markdown source view (TextBox selection). Tooltips on the Extended / Wildcards / Regex radios describe the syntax. HELP.md has the full escape tables. Replace is not yet in; this iteration is read-only Find. - Spinner overlay when opening a file — a small busy card shows over the editing area during the read + editor load, useful for large documents with embedded base64 images. Fires on File ▸ Open, Open Recent, and editor-area file drops.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.7-alpha1-win-x64-net10.exe — single-file, framework-dependent build (~6.4 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.
Markdown Midget v0.1.6-alpha1
Added
- Mermaid diagrams. Fenced code blocks tagged
mermaidnow render as live diagrams in the WYSIWYG view (flowcharts, sequence diagrams, class diagrams, etc.). The diagram appears below the block, the source itself is hidden while the cursor is outside the block, and revealed for inline editing when the cursor moves into it. Markdown round-trips unchanged (the on-disk file remains a normal```mermaidfence). Print and PDF export render the diagram (not the source), with page-break-inside avoided.
Known limitations
- Mermaid pulls a large dependency tree (D3, dagre, cytoscape) — the editor bundle grows from ~560 KB to ~3.9 MB. The extracted bundle is one-time-per-run and cached by WebView2 thereafter; the app's startup time is still well under a second on a typical machine, but the on-disk
.exesize grows by about 3.5 MB after compression. Bundle splitting / lazy-load is a possible later optimization if this becomes a concern.
See CHANGELOG.md for full history.
Download
MarkdownMidget-v0.1.6-alpha1-win-x64-net10.exe — single-file, framework-dependent build (~6.4 MB).
Requirements
- Windows 10/11 (x64)
- .NET 10 Desktop Runtime — https://dotnet.microsoft.com/download/dotnet/10.0
- Microsoft Edge WebView2 Runtime — preinstalled on Windows 11; otherwise a free download from Microsoft.
Notes
- This is an early alpha — expect rough edges, and please file issues.
- The download is unsigned, so Windows SmartScreen may warn on first run: click More info → Run anyway.
- Settings/recent files live under
%LocalAppData%\MarkdownMidget.