コード例 #1
0
        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);
        }
コード例 #2
0
		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);
		}
コード例 #3
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);
        }
コード例 #4
0
		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);
		}
コード例 #5
0
        public Task <string> CompressHtmlAsync(string html)
        {
            if (html == null)
            {
                throw new ArgumentNullException(nameof(html));
            }

            var result = _compressor.compress(html);

            return(Task.FromResult(result));
        }
コード例 #6
0
        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);
        }
コード例 #7
0
		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);

		}
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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)
                );
        }
コード例 #16
0
ファイル: WebCompress.cs プロジェクト: Alanove/liteweb.info
        /// <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);
        }
コード例 #17
0
ファイル: MinifyHtml.cs プロジェクト: smzeeshan91/chatfunky
        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;
        }
コード例 #18
0
 public string Compress(string html)
 {
     return(_compressor.compress(html));
 }
コード例 #19
0
		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);

		}
コード例 #20
0
		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);

		}
コード例 #21
0
		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);

		}
コード例 #22
0
		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);

		}
コード例 #23
0
		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);

		}
コード例 #24
0
		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);

		}
コード例 #25
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);
		}
コード例 #26
0
		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);

		}