[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