Export to GitHub

htmlcompressor - issue #92

Extend HTML compressor to compress and combine external files


Posted on Feb 21, 2014 by Massive Ox

Hello,

I'm compressing HTML files referencing external CSS and Javascript scripts. I would like to set a particular compressor to the HTMLCompressor through Java API that is used each time an external script is detected.

My compressor will be in charge to load the files thanks to the given paths, compress and combine it and then return the new path to add as external script.

API proposal:

// new interface interface ExternalCompressor { String compress(List<String> path, Compressor defaultCompressor); }

// new setter htmlCompressor.setExternalCompressor((paths, defaultCompressor) -> { // implementation sample skeleton paths.forEach((path) -> { File f = new File(baseDir, path); String content = ... defaultCompressor.compress(content); ... }

return combinedPath;

});

Result:

<html> <head> <link rel="bar.css" /> <script src="foo.js" /> </head> <body> <script src="bottom1.js" /> <script src="bottom2.js" /> </body> </html>

// gives <html> <head>> <link rel="/custom-path/bar.min.css" /> <script src="/custom-path/foo.min.js" / </head> <body> <script src="/custom-path/combine.min.js" / </body> </html>

Thanks!

Status: New

Labels:
Type-Defect Priority-Medium