mdr

michaelsanford·michaelsanford.mdr

A beautiful, cross-platform terminal markdown renderer. Read docs, READMEs, and notes without leaving your shell.

winget install --id michaelsanford.mdr --exact --source winget

Latest 2.1.0·September 19, 2026

Release Notes

TL;DR: mdr v2.1.0 ("Fernandel") brings significant performance modernization under .NET 10, a brand-new automated test suite, an autonomous end-to-end WinGet release and tracking pipeline, and hardened security scanning. Following the jump to NativeAOT in 2.0, this release modernizes the rendering engine under the hood: code block syntax highlighters now utilize compile-time [GeneratedRegex] source generators, theme palettes leverage immutable FrozenDictionary lookups, and the document ingestion pipeline streams lines with pooled buffers for zero-allocation reading. A comprehensive 27-test suite now validates formatting, markdown parsing, and terminal keybindings on every pull request. On the release engineering front, our distribution automation has been completely rebuilt to match wtop. Building a release now generates signed, provenance-attested NativeAOT binaries across all major platforms, logs a proactive Microsoft Defender (WDSI) verification issue, and delegates upstream package publishing to an autonomous tracker that monitors Azure Pipeline validations on microsoft/winget-pkgs until the PR is merged. This release is named in honor of legendary French actor and comedian Fernandel, celebrated worldwide for the Don Camillo series. Key Highlights

  • Modernized Rendering Engine: Switched to compile-time regex source generators ([GeneratedRegex]), immutable FrozenDictionary palettes, canonical language ID cache keys, and pooled line streaming.
  • Unit Test Suite: Added 27 automated tests covering table formatting, blockquotes, syntax highlighting, and theme cycling.
  • Autonomous WinGet & Release Pipeline: Synchronized distribution workflows with wtop—featuring automated upstream PR management, live Azure status tracking, and proactive Defender false-positive staging.
  • Enhanced Security: Integrated automated Snyk code analysis and open-source vulnerability scanning into the CI gate. What's Changed
  • feat(ci): enhance winget tracker to report PR labels and validation anomalies by @michaelsanford in #28
  • feat(winget): enhance tracking and draft workflow for downstream releases by @michaelsanford in #29
  • chore(ci): remove qodana workflow and configuration by @michaelsanford in #30
  • fix(render): key the keyword cache by a canonical language id by @michaelsanford in #32
  • ci: add Snyk dependency and code scanning by @michaelsanford in #31
  • ci(snyk): mark repo public so scans stop consuming the private-test quota by @michaelsanford in #33
  • fix(ci): repair winget-track.yml so the workflow can parse at all by @michaelsanford in #34
  • ci: replace paths-ignore with a changes gate so required checks always report by @michaelsanford in #36
  • ci: guard the build steps, not the job, so matrix contexts still report by @michaelsanford in #37
  • docs(winget): track the pending-fixes notes in git, and record the parse error by @michaelsanford in #35
  • chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #40
  • chore(deps): bump actions/setup-dotnet from 5.4.0 to 6.0.0 by @dependabot[bot] in #39
  • chore(deps): bump actions/attest-build-provenance from 4.1.1 to 4.2.2 by @dependabot[bot] in #38
  • chore(render): apply .NET modernizations and add unit test suite by @michaelsanford in #41
  • ci(winget): synchronize release and winget tracking workflows with wtop by @michaelsanford in #42
  • chore(docs): update version codenames and net10 references for v2.1.0 by @michaelsanford in #43 Full Changelog: v2.0.0...v2.1.0

Installer type: zip

x64—28A4FFC6BF1635B80798FBEC42D69BB76AEE972854E083B0E7FF6939BAFADACB
arm64—5F1C073EFC16CB972DED99497B9B577201BCE8875B46758DA36B212AA078C324

Details

Homepage
https://github.com/michaelsanford/mdr
License
MIT
Publisher
michaelsanford
Support
https://github.com/michaelsanford/mdr/issues

Tags

dotnetmarkdown-viewerterminal-appterminal-based

Older versions (3)

2.0.0
x64—48582DF9FAAD81066349C78E627DD1D9C9A171EBEAFDADA418D7BC04DB4AA70C
arm64—2F4272942322889F6C92B21C423FBF4D01BC4B1AAB69BD7643A49011769EAB4A
1.2.1
x64—444351ECE5928CC87B7A6BA00582A9F2CD1B0E665B41E7548E7CFE56DDAC1B64
arm64—224B0813FDEFC5C56D41FDD09A3F22025F1FEDB4F6BA76C9BC646CB38B03E747
1.0.1.0
x64—ED38DD40EC276DAF6B3F15034E23B2F48E22F5B7869C615110200B197E614AF3
arm64—C4B5FE3E2BA565E3A4586907A2FECC7016446451A7C3AADEDC81535B780B8C09