The Web Markup Minifier (abbreviated WebMarkupMin) - a .NET library that contains a set of markup minifiers. The objective of this project is to improve the performance of web applications by reducing the size of HTML, XHTML and XML code.

WebMarkupMin absorbed the best of existing solutions from non-microsoft platforms: Juriy Zaytsev's HTML Minifier (written in JavaScript) and Sergiy Kovalchuk's HtmlCompressor (written in Java).

Minification of markup produces by removing extra whitespace, comments and redundant code (only for HTML and XHTML). In addition, HTML and XHTML minifiers supports the minification of CSS code from `style` tags and attributes, and minification of JavaScript code from `script` tags, event attributes and hyperlinks with `javascript:` protocol. WebMarkupMin.Core contains built-in JavaScript minifier based on the Douglas Crockford's JSMin and built-in CSS minifier based on the Mads Kristensen's Efficient stylesheet minifier. The above mentioned minifiers produce only the most simple minifications of CSS and JavaScript code, but you can always install additional modules that support the more powerful algorithms of minification: WebMarkupMin.MsAjax (contains minifier-adapters for the Microsoft Ajax Minifier), WebMarkupMin.Yui (contains minifier-adapters for YUI Compressor for .NET) and WebMarkupMin.NUglify (contains minifier-adapters for the NUglify).

Also supports minification of views of popular JavaScript template engines: KnockoutJS, Kendo UI MVVM and AngularJS 1.X.

In addition, there are several modules that integrate this library into ASP.NET: WebMarkupMin.AspNet4.HttpModules (for ASP.NET 4.X and ASP.NET Web Pages), WebMarkupMin.AspNet4.Mvc (for ASP.NET MVC 3, 4 or 5), WebMarkupMin.AspNet4.WebForms (for ASP.NET Web Forms 4.X), WebMarkupMin.AspNetCore1 (for ASP.NET Core 1.X), WebMarkupMin.AspNetCore2 (for ASP.NET Core 2.X), WebMarkupMin.AspNetCore3 (for ASP.NET Core 3.1 and 5), WebMarkupMin.AspNetCore6 (for ASP.NET Core 6 and 7) and WebMarkupMin.AspNetCoreLatest (for ASP.NET Core 8 and 9).

You can try WebMarkupMin in action and experiment with different minification settings live on the WebMarkupMin Online site.

WebMarkupMin was created and is maintained by Andrey Taritsyn.