[z3-checkins] r33928 - in z3/deliverance/branches/packaged/deliverance: . test-data

ltucker at codespeak.net ltucker at codespeak.net
Mon Oct 30 22:25:06 CET 2006


Author: ltucker
Date: Mon Oct 30 22:25:03 2006
New Revision: 33928

Modified:
   z3/deliverance/branches/packaged/deliverance/test-data/test_url.xml
   z3/deliverance/branches/packaged/deliverance/utils.py
Log:
adds additional support for rewriting relative css imports

Modified: z3/deliverance/branches/packaged/deliverance/test-data/test_url.xml
==============================================================================
--- z3/deliverance/branches/packaged/deliverance/test-data/test_url.xml	(original)
+++ z3/deliverance/branches/packaged/deliverance/test-data/test_url.xml	Mon Oct 30 22:25:03 2006
@@ -13,6 +13,9 @@
 	<style type="text/css" media="screen">
 	  @import url(/css/test-style.css);
 	  @import url(http://www.example.com/foo.css);
+	  @import url('/foo/bar.css');
+	  @import url("/flub/quone.css");
+	  @import "joop/win.css";
 	  #effbot-nav {
 	  float: left;
 	  width: 180px;
@@ -39,6 +42,9 @@
 	<style type="text/css" media="screen">
 	  @import url(http://nycsr.org/css/test-style.css);
 	  @import url(http://www.example.com/foo.css);
+	  @import url(http://nycsr.org/foo/bar.css);
+	  @import url(http://nycsr.org/flub/quone.css);
+	  @import url(http://nycsr.org/joop/win.css);
 	  #effbot-nav {
 	  float: left;
 	  width: 180px;

Modified: z3/deliverance/branches/packaged/deliverance/utils.py
==============================================================================
--- z3/deliverance/branches/packaged/deliverance/utils.py	(original)
+++ z3/deliverance/branches/packaged/deliverance/utils.py	Mon Oct 30 22:25:03 2006
@@ -182,7 +182,8 @@
             el.attrib[attr] = urlparse.urljoin(base_uri, el.attrib[attr])
 
 
-    CSS_URL_PAT = re.compile(r'url\((.*?)\)',re.I)
+    CSS_URL_PAT = re.compile(r'url\([\"\']*(.*?)[\"\']*\)',re.I)
+    CSS_IMPORT_PAT = re.compile(r'\@import\s*[\"\'](.*?)[\"\']',re.I)
     def fixup_css_links(self, elts, base_uri):
         """ 
         prepends url(...) in css style elements to be 
@@ -192,9 +193,14 @@
         def absuri(matchobj): 
             return 'url(' + urlparse.urljoin(base_uri,matchobj.group(1)) + ')'
 
+        def imp_absuri(matchobj):
+            return '@import url(' + urlparse.urljoin(base_uri,matchobj.group(1)) + ')'
+
         for el in elts:
             if el.text:
+                el.text = re.sub(self.CSS_IMPORT_PAT,imp_absuri,el.text)
                 el.text = re.sub(self.CSS_URL_PAT,absuri,el.text)
+        
 
 
     def attach_text_to_previous(self,el,text):


More information about the z3-checkins mailing list