Contributing to WinMD
June 18, 2026 · View on GitHub
Thanks for your interest in WinMD — a lightweight Markdown editor and viewer for Windows
(WinUI 3 / Windows App SDK, unpackaged .exe).
Prerequisites
- Windows 10 (19041) or later — x64 or ARM64
- .NET SDK 10 with the Windows workload
- Windows App SDK 1.8 (restored automatically as a NuGet package for building)
- (optional, only for building an installer) Inno Setup 6 — https://jrsoftware.org/isdl.php
Build & run
# Build
dotnet build -c Debug -f net10.0-windows10.0.19041.0
# Build + run
dotnet build -c Debug -t:Run -f net10.0-windows10.0.19041.0
There is no test project and no linter configured.
Building your own installer (optional)
pwsh .\build-installer.ps1
This produces an unsigned installer\WinMD-Setup.exe. Official releases are signed by the
maintainer with a private certificate that is not part of this repository.
Project layout (quick map)
App.xaml.cs/Program.cs— startup and manual composition root (no DI container)MainWindow.xaml(.cs)— the single app window; also implementsIUiServiceViewModels/EditorViewModel.cs— single source of truth (document, formatting, find/replace, undo/redo, theme)Services/—MarkdownService(Markdig → HTML), file/PDF/UI/settings abstractionsPlatforms/Windows/—WindowsFileService,WindowsPdfExporter, file association, unsaved-changes guardModels/—MarkdownDocument,MarkdownTip
Coding conventions
- Nullable reference types and implicit usings are enabled.
- The codebase mixes Polish and English in code/comments — match the surrounding file.
- Keep changes focused; follow the style of the file you are editing.
Submitting changes
- Fork the repo and create a topic branch off
master. - Make your change and confirm it builds (
dotnet build -c Debug -f net10.0-windows10.0.19041.0). - Open a Pull Request with a clear description of what and why.
- Keep PRs small and self-contained where possible.
Reporting bugs / requesting features
Use the issue templates (Bug report / Feature request). For security issues, do not open a public issue — see SECURITY.md.