A lightweight Windows utility that converts Markdown ↔ Rich Text for seamless pasting into Microsoft Loop.
Windows port of md2loop (originally macOS/Swift).
- Markdown → Rich Text — Converts clipboard Markdown or plain text to optimized HTML for pasting into Loop
- Rich Text → Markdown — Converts HTML or RTF from Loop, Office, and other apps back to clean Markdown
- Smarter auto-detection — Distinguishes semantic rich text from syntax-colored Markdown copies
- Manual output controls — Always choose Rich Text or Markdown yourself
- One shortcut —
Ctrl+Enteruses the detected direction - Full Markdown support — Headings, bold/italic, lists, tables, code blocks, task lists, links, blockquotes
- Native Windows app — WinUI 3, Mica backdrop, dark mode
Grab the latest release from the Releases page:
| File | Description |
|---|---|
md2loop-setup-x.y.z-win-x64.exe |
Installer — Intel/AMD 64-bit |
md2loop-setup-x.y.z-win-arm64.exe |
Installer — ARM64 (Surface Pro, Snapdragon) |
md2loop-x.y.z-win-x64.zip |
Portable ZIP (Intel/AMD 64-bit) |
md2loop-x.y.z-win-arm64.zip |
Portable ZIP (ARM64 — Surface Pro, Snapdragon) |
The installer handles everything — just run it. No .NET runtime needed.
git clone https://github.com/trsdn/md2loop-windows.git
cd md2loop-windows\md2loop
dotnet build
dotnet rundotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:PublishTrimmed=true -o publishThe app builds unpackaged by default, which is what the installer and portable ZIP use. Opt into MSIX packaging to produce a Store-submittable package:
dotnet build md2loop\md2loop.csproj -c Release -r win-x64 -p:Platform=x64 -p:WindowsPackageType=MSIXThe .msix lands in md2loop\AppPackages\. It is built unsigned on purpose —
Microsoft re-signs Store submissions after certification, so no code signing
certificate is required.
Two things still need a Partner Center account before submission: the Identity
and PublisherDisplayName values in md2loop\Package.appxmanifest are template
placeholders and must be replaced with the reserved app identity. Note also that
in the packaged build "start with Windows" comes from the windows.startupTask
manifest extension rather than the installer's registry key, so users toggle it
in Settings → Apps → Startup.
- Copy Markdown text to your clipboard
- Open md2loop — it recommends a conversion direction
- Click Rich Text to format the clipboard for Loop, or press
Ctrl+Enter - Paste into Microsoft Loop (
Ctrl+V)
Works the other way too — copy rich text from Loop or Office and click Markdown. The two buttons remain available even when you want to override auto-detection.
| Component | Purpose |
|---|---|
ClipboardContentDetector.cs |
Scored detection of Markdown/plain text vs HTML/RTF |
ClipboardManager.cs |
Reads HTML, RTF, and text; writes HTML and text clipboard formats |
LoopHtmlConverter.cs |
Markdown → Loop-optimized HTML via Markdig |
HtmlToMarkdownConverter.cs |
HTML → Markdown via HtmlAgilityPack |
RtfToMarkdownConverter.cs |
RTF → HTML → Markdown via RtfPipe |
MainPage.xaml(.cs) |
WinUI 3 UI with explicit output buttons + Ctrl+Enter shortcut |
- No CSS classes in output HTML
- Unicode checkboxes (☑/☐) for task lists
- Minimal table HTML
- Multi-format clipboard (HTML + plain text) for maximum compatibility
- Windows 10 version 1809 or later
- No runtime dependencies when using the release build (self-contained)
- .NET 8 SDK only needed for building from source
Contributions are welcome! Please open an issue or PR.
| Project | Purpose |
|---|---|
md2loop |
WinUI 3 app: window, clipboard access, UI |
md2loop.Core |
Conversion logic, with no UI or clipboard dependencies |
tests/md2loop.Tests |
Unit tests for md2loop.Core |
dotnet test tests/md2loop.Tests/md2loop.Tests.csprojThe application icons are generated from assets/logo.png. After changing the
artwork, regenerate assets/logo.ico and md2loop/Assets/AppIcon.ico:
powershell -ExecutionPolicy Bypass -File scripts/generate-icons.ps1MIT — see LICENSE for details.