NUglify provides minify and compression methods for CSS, JavaScript and HTML files.
This repository is a fork of the Microsoft Ajax Minifier + additional features (e.g: HTML compressor)
While dotnet Core is now relying on the node.js ecosystem for its client side tooling (e.g: minify), NUglify is still useful in scenarios where we need to access this tooling from a .NET application (not necessarily an ASP one) without having to install another developer platform.
The original AjaxMin documentation of the project is available here
See the ChangeLog
Uglify.HtmlToText
that allows to extract the text from an HTML documentNET3.5
, NET4.0+
and CoreCLR
(netstandard1.3+
)NUglify is available as a NuGet package:
The main entry point for the API is the Uglify
class:
For JavaScript:
var result = Uglify.Js("var x = 5; var y = 6;");
Console.WriteLine(result.Code); // prints: var x=5,y=6
For Css:
var result = Uglify.Css("div { color: #FFF; }");
Console.WriteLine(result.Code); // prints: div{color:#fff}
For Html:
var result = Uglify.Html("<div> <p>This is <em> a text </em></p> </div>");
Console.WriteLine(result.Code); // prints: <div><p>This is <em>a text</em></div>
Extract text from Html:
var result = Uglify.HtmlToText("<div> <p>This is <em> a text </em></p> </div>");
Console.WriteLine(result.Code); // prints: This is a text
See the xmldoc comments on the properties of NUglify.Html.HtmlSettings
for all your HTML minification needs.
For example, to output indented (with tabs) HTML:
var htmlSettings = HtmlSettings.Pretty();
htmlSettings.Indent = "\t";
var output = Uglify.Html(input, htmlSettings);
TODO
TODO
See the issues pages on github, however the only real known issue is:
If you overload the async
keyword as an identifier, like so:
function (async) {
async = 1; // this will work
async[1] = 2; // this will work
async(); // this line will be stripped
async(a,b); // this will end up as: a,b
}
you'll see the commented behaviour. This is a difficult job to fix, but PRs welcome. I don't think this is a worth the effort to fix right now, you've got to be a real sadist to be doing this to yourself in the first place. See #130 if you want to try and fix it yourself.
This software is released under the BSD-Clause 2 license. The original Microsoft Ajax Minifier was released under the Apache 2.0 license
Microsoft Ajax Minifier was created and maintained by Ron Logan, with contributions from Eugene Chigirinskiy, Rafael Correa, Kristoffer Henriksson, and Marcin Dobosz.
Nuglify was ported and refactored to github by Alexandre Mutel aka xoofx
It is now maintained by Andrew Bullock aka trullock
All donations to help support this project are very welcome https://paypal.me/trullock
The logo Monster is by Joel McKinney from the Noun Project