def iterdeclaration(decl): for p in all_properties(decl): n = normalizers.get(p.name) if n is None: yield p else: for k, v in iteritems(n(p.name, p.propertyValue)): yield Property(k, v, p.literalpriority)
def iterdeclaration(decl): for p in all_properties(decl): n = normalizers.get(p.name) if n is None: yield p else: for k, v in n(p.name, p.propertyValue).iteritems(): yield Property(k, v, p.literalpriority)
def __iter__(self): dec = self.css_declaration for p in all_properties(dec): n = normalizers.get(p.name) if n is None: yield p, None else: if p not in self.expanded_properties: self.expanded_properties[p] = [Property(k, v, p.literalpriority) for k, v in n(p.name, p.propertyValue).iteritems()] for ep in self.expanded_properties[p]: yield ep, p
def filter_declaration(style, properties): changed = False for prop in properties: if style.removeProperty(prop) != "": changed = True all_props = set(style.keys()) for prop in style.getProperties(): n = normalizers.get(prop.name, None) if n is not None: normalized = n(prop.name, prop.propertyValue) removed = properties.intersection(set(normalized)) if removed: changed = True style.removeProperty(prop.name) for prop in set(normalized) - removed - all_props: style.setProperty(prop, normalized[prop]) return changed
def filter_declaration(style, properties=()): changed = False for prop in properties: if style.removeProperty(prop) != '': changed = True all_props = set(style.keys()) for prop in style.getProperties(): n = normalizers.get(prop.name, None) if n is not None: normalized = n(prop.name, prop.propertyValue) removed = properties.intersection(set(normalized)) if removed: changed = True style.removeProperty(prop.name) for prop in set(normalized) - removed - all_props: style.setProperty(prop, normalized[prop]) return changed
def flatten_style(self, cssstyle): style = {} for prop in cssstyle: name = prop.name normalizer = normalizers.get(name, None) if normalizer is not None: style.update(normalizer(name, prop.cssValue)) elif name == 'text-align': style['text-align'] = self._apply_text_align(prop.value) else: style[name] = prop.value if 'font-size' in style: size = style['font-size'] if size == 'normal': size = 'medium' if size == 'smallest': size = 'xx-small' if size in FONT_SIZE_NAMES: style['font-size'] = "%dpt" % self.profile.fnames[size] return style
def flatten_style(self, cssstyle): style = {} for prop in cssstyle: name = prop.name normalizer = normalizers.get(name, None) if normalizer is not None: style.update(normalizer(name, prop.cssValue)) elif name == "text-align": style["text-align"] = self._apply_text_align(prop.value) else: style[name] = prop.value if "font-size" in style: size = style["font-size"] if size == "normal": size = "medium" if size == "smallest": size = "xx-small" if size in FONT_SIZE_NAMES: style["font-size"] = "%dpt" % self.profile.fnames[size] return style
def flatten_style(self, cssstyle): style = {} for prop in cssstyle: name = prop.name normalizer = normalizers.get(name, None) if normalizer is not None: style.update(normalizer(name, prop.propertyValue)) elif name == 'text-align': style['text-align'] = self._apply_text_align(prop.value) else: style[name] = prop.value if 'font-size' in style: size = style['font-size'] if size == 'normal': size = 'medium' if size == 'smallest': size = 'xx-small' if size in FONT_SIZE_NAMES: style['font-size'] = "%.1frem" % (self.profile.fnames[size] / float(self.profile.fbase)) if '-epub-writing-mode' in style: for x in ('-webkit-writing-mode', 'writing-mode'): style[x] = style.get(x, style['-epub-writing-mode']) return style
def flatten_style(self, cssstyle): style = {} for prop in cssstyle: name = prop.name normalizer = normalizers.get(name, None) if normalizer is not None: style.update(normalizer(name, prop.cssValue)) elif name == 'text-align': style['text-align'] = self._apply_text_align(prop.value) else: style[name] = prop.value if 'font-size' in style: size = style['font-size'] if size == 'normal': size = 'medium' if size == 'smallest': size = 'xx-small' if size in FONT_SIZE_NAMES: style['font-size'] = "%.1frem" % (self.profile.fnames[size] / float(self.profile.fbase)) if '-epub-writing-mode' in style: for x in ('-webkit-writing-mode', 'writing-mode'): style[x] = style.get(x, style['-epub-writing-mode']) return style