WordPress.org

Plugin Directory

Changeset 637128


Ignore:
Timestamp:
12/11/12 17:25:23 (17 months ago)
Author:
cfinke
Message:

CSSTidy: Don't add quotes around the url() portion of @import URLs, and don't quote media types.

Also, when optimizing during printing, remove the url() portion of URLs even when the URL has media types specified.

See http://wordpress.org/support/topic/custom-css-not-importing-google-fonts-api

Location:
jetpack/trunk/modules/custom-css/csstidy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • jetpack/trunk/modules/custom-css/csstidy/class.csstidy.php

    r611640 r637128  
    719719                        } elseif ($string{$i} === ';' || $pn) { 
    720720                            if ($this->selector{0} === '@' && isset($at_rules[substr($this->selector, 1)]) && $at_rules[substr($this->selector, 1)] === 'iv') { 
    721                                 /* Add quotes to charset, import, namespace */ 
    722                                 $this->sub_value_arr[] = '"' . trim($this->sub_value) . '"'; 
    723  
    724721                                $this->status = 'is'; 
    725722 
    726723                                switch ($this->selector) { 
    727                                     case '@charset': $this->charset = $this->sub_value_arr[0]; 
     724                                    case '@charset': 
     725                                        /* Add quotes to charset */ 
     726                                        $this->sub_value_arr[] = '"' . trim($this->sub_value) . '"'; 
     727                                        $this->charset = $this->sub_value_arr[0]; 
    728728                                        break; 
    729                                     case '@namespace': $this->namespace = implode(' ', $this->sub_value_arr); 
     729                                    case '@namespace': 
     730                                        /* Add quotes to namespace */ 
     731                                        $this->sub_value_arr[] = '"' . trim($this->sub_value) . '"'; 
     732                                        $this->namespace = implode(' ', $this->sub_value_arr); 
    730733                                        break; 
    731                                     case '@import': $this->import[] = implode(' ', $this->sub_value_arr); 
     734                                    case '@import': 
     735                                        $this->sub_value = trim($this->sub_value); 
     736 
     737                                        if (empty($this->sub_value_arr)) { 
     738                                            // Quote URLs in imports only if they're not already inside url() and not already quoted. 
     739                                            if (substr($this->sub_value, 0, 4) != 'url(') {  
     740                                                if (!($this->sub_value{0} == substr($this->sub_value, -1) && in_array($this->sub_value{0}, array("'", '"')))) { 
     741                                                    $this->sub_value = '"' . $this->sub_value . '"'; 
     742                                                } 
     743                                            } 
     744                                        } 
     745 
     746                                        $this->sub_value_arr[] = $this->sub_value; 
     747                                        $this->import[] = implode(' ', $this->sub_value_arr); 
    732748                                        break; 
    733749                                } 
  • jetpack/trunk/modules/custom-css/csstidy/class.csstidy_print.php

    r589031 r637128  
    189189        if (!empty($this->import)) { 
    190190            for ($i = 0, $size = count($this->import); $i < $size; $i++) { 
    191                 if (substr($this->import[$i], 0, 4) === 'url(' && substr($this->import[$i], -1, 1) === ')') { 
    192                     $this->import[$i] = '\'' . substr($this->import[$i], 4, -1) . '\''; 
     191                $import_components = explode(' ', $this->import[$i]); 
     192                if (substr($import_components[0], 0, 4) === 'url(' && substr($import_components[0], -1, 1) === ')') { 
     193                    $import_components[0] = '\'' . trim(substr($import_components[0], 4, -1), "'\"") . '\''; 
     194                    $this->import[$i] = implode(' ', $import_components); 
    193195                    $this->parser->log('Optimised @import : Removed "url("', 'Information'); 
    194196                } 
Note: See TracChangeset for help on using the changeset viewer.