public void testPreservePatterns() { var source = Resources.testPreservePatterns; var result = Resources.testPreservePatternsResult; var preservePatterns = new List <Regex> { HtmlCompressor.PHP_TAG_PATTERN, HtmlCompressor.SERVER_SCRIPT_TAG_PATTERN, HtmlCompressor.SERVER_SIDE_INCLUDE_PATTERN, new Regex("<jsp:.*?>", RegexOptions.Singleline | RegexOptions.IgnoreCase) }; //<?php ... ?> blocks //<% ... %> blocks //<!--# ... --> blocks //<jsp: ... > tags var compressor = new HtmlCompressor(); compressor.setPreservePatterns(preservePatterns); compressor.setRemoveComments(true); compressor.setRemoveIntertagSpaces(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void Test01() { var comp = new HtmlCompressor(); var input = Resources.Html01; var output = comp.compress(input); Assert.IsNotEmpty(output); var ratio = Math.Round((double)output.Length / input.Length * 100.0, 2); Assert.IsTrue(ratio < 100.0); }
public void testCompress() { var source = Resources.testCompress; var result = Resources.testCompressResult; var compressor = new HtmlCompressor(); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testEnabled() { var source = Resources.testEnabled; var result = Resources.testEnabledResult; var compressor = new HtmlCompressor(); compressor.setEnabled(false); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public Task <string> CompressHtmlAsync(string html) { if (html == null) { throw new ArgumentNullException(nameof(html)); } var result = _compressor.compress(html); return(Task.FromResult(result)); }
public void testRemoveSpacesInsideTags() { var source = Resources.testRemoveSpacesInsideTags; var result = Resources.testRemoveSpacesInsideTagsResult; var compressor = new HtmlCompressor(); compressor.setRemoveMultiSpaces(false); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testPreserveLineBreaks() { var source = Resources.testPreserveLineBreaks; var result = Resources.testPreserveLineBreaksResult; var compressor = new HtmlCompressor(); compressor.setPreserveLineBreaks(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testRemoveHttpsProtocol() { var source = Resources.testRemoveHttpsProtocol; var result = Resources.testRemoveHttpsProtocolResult; var compressor = new HtmlCompressor(); compressor.setRemoveHttpsProtocol(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testSimpleDoctype() { var source = Resources.testSimpleDoctype; var result = Resources.testSimpleDoctypeResult; var compressor = new HtmlCompressor(); compressor.setSimpleDoctype(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testRemoveQuotes() { var source = Resources.testRemoveQuotes; var result = Resources.testRemoveQuotesResult; var compressor = new HtmlCompressor(); compressor.setRemoveQuotes(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testSurroundingSpaces() { var source = Resources.testSurroundingSpaces; var result = Resources.testSurroundingSpacesResult; var compressor = new HtmlCompressor(); compressor.setRemoveIntertagSpaces(true); compressor.setRemoveSurroundingSpaces("p,br"); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public static async Task Run( [QueueTrigger(QueueName.RenderPage)] RenderPage command, [Blob(ContainerName.PageTemplate + "/{" + nameof(RenderPage.TemplateId) + "}", FileAccess.Read)] CloudBlockBlob pageTemplateBlob, [Blob(ContainerName.PageData + "/{" + nameof(RenderPage.DataInstanceId) + "}", FileAccess.ReadWrite)] CloudBlockBlob pageDataBlob, [Blob(ContainerName.WebHost + "/{" + nameof(RenderPage.PublicUrl) + "}", FileAccess.Write)] CloudBlockBlob pageHtmlBlob, [Queue(QueueName.CopyBlob)] CloudQueue copyQueue, ILogger log) { log.LogInformation(JsonConvert.SerializeObject(command)); var copyQueueService = new CommandQueueService(copyQueue); var pageData = JsonConvert.DeserializeObject(await pageDataBlob.DownloadTextAsync()); var pageTemplate = await pageTemplateBlob.DownloadTextAsync(); var html = Render.StringToString(pageTemplate, pageData, new RenderContextBehaviour { HtmlEncoder = text => text }); var compressor = new HtmlCompressor(); compressor.setEnabled(true); compressor.setRemoveComments(true); compressor.setRemoveMultiSpaces(true); compressor.setRemoveIntertagSpaces(true); html = compressor.compress(html); await pageHtmlBlob.UploadTextAsync(html); pageHtmlBlob.Properties.ContentType = "text/html"; await pageHtmlBlob.SetPropertiesAsync(); var copyCommand = new CopyBlob { Path = command.PublicUrl }; await Task.WhenAll( pageDataBlob.DeleteAsync(), copyQueueService.SubmitCommandAsync(copyCommand) ); }
/// <summary> /// Compresses and minifies HTML Content /// </summary> /// <param name="HtmlInput">The original HTML Content</param> /// <returns>Compressed HTML</returns> public static string HTMLCompress(string HtmlInput) { string ret = HtmlInput; try { HtmlCompressor htmlCompressor = new HtmlCompressor(); htmlCompressor.setRemoveComments(true); ret = htmlCompressor.compress(HtmlInput); } catch (Exception ex) { //throw ex; } return(ret); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { var response = filterContext.HttpContext.Response; if (response.Filter == null) { return; } HtmlCompressor compressor = new HtmlCompressor(); ResponseFilterStream filter = new ResponseFilterStream(response.Filter); compressor.setRemoveComments(true); compressor.setCssCompressor(new CssCompressor(filterContext.HttpContext)); compressor.setCompressCss(true); compressor.setJavaScriptCompressor(new JsCompressor(filterContext.HttpContext)); compressor.setCompressJavaScript(true); filter.TransformString += s => { return(compressor.compress(s)); }; response.Filter = filter; }
public string Compress(string html) { return(_compressor.compress(html)); }
public void testRemoveComments() { var source = Resources.testRemoveComments; var result = Resources.testRemoveCommentsResult; var compressor = new HtmlCompressor(); compressor.setRemoveComments(true); compressor.setRemoveIntertagSpaces(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testRemoveInputAttributes() { var source = Resources.testRemoveInputAttributes; var result = Resources.testRemoveInputAttributesResult; var compressor = new HtmlCompressor(); compressor.setRemoveInputAttributes(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }
public void testPreservePatterns() { var source = Resources.testPreservePatterns; var result = Resources.testPreservePatternsResult; var preservePatterns = new List<Regex> { HtmlCompressor.PHP_TAG_PATTERN, HtmlCompressor.SERVER_SCRIPT_TAG_PATTERN, HtmlCompressor.SERVER_SIDE_INCLUDE_PATTERN, new Regex("<jsp:.*?>", RegexOptions.Singleline | RegexOptions.IgnoreCase) }; //<?php ... ?> blocks //<% ... %> blocks //<!--# ... --> blocks //<jsp: ... > tags var compressor = new HtmlCompressor(); compressor.setPreservePatterns(preservePatterns); compressor.setRemoveComments(true); compressor.setRemoveIntertagSpaces(true); var compress = compressor.compress(source); Assert.AreEqual(result, compress); }