LRein created TAP5-2753:
---------------------------

             Summary: CssCompressor for CSS files produces wrong minification 
if calc contains variables.
                 Key: TAP5-2753
                 URL: https://issues.apache.org/jira/browse/TAP5-2753
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-webresources
    Affects Versions: 5.8.2
            Reporter: LRein


CssCompressor for CSS files produces wrong minification if calc contains 
variables.
{code:css}
.some-class
{
padding-top: calc(10px + var(--default-page-header-height));
}
{code}
produces spaces between dashes within the variable:
{code:css}
.some-class
{
padding-top: calc(10px + var( - - default - page - header - height));
}
{code}
Just removing this code block at the end helps:
{code:java}
// Add spaces back in between operators for css calc function
// https://developer.mozilla.org/en-US/docs/Web/CSS/calc
// Added by Eric Arnol-Martin (earnolmar...@gmail.com)
sb = new StringBuffer();
p = Pattern.compile("calc\\([^\\)]*\\)");
m = p.matcher(css);
while (m.find()) {
    String s = m.group();
    
    s = s.replaceAll("(?<=[-|%|px|em|rem|vw|\\d]+)\\+", " + ");
    s = s.replaceAll("(?<=[-|%|px|em|rem|vw|\\d]+)\\-", " - ");
    s = s.replaceAll("(?<=[-|%|px|em|rem|vw|\\d]+)\\*", " * ");
    s = s.replaceAll("(?<=[-|%|px|em|rem|vw|\\d]+)\\/", " / ");
    
    m.appendReplacement(sb, s);
}
m.appendTail(sb);
css = sb.toString(); 
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to