コード例 #1
0
ファイル: fonts.py プロジェクト: jimman2003/calibre
def change_font_in_declaration(style, old_name, new_name=None):
    changed = False
    ff = style.getProperty('font-family')
    if ff is not None:
        fams = parse_font_family(css_text(ff.propertyValue))
        nfams = list(
            filter(None, [new_name if x == old_name else x for x in fams]))
        if fams != nfams:
            if nfams:
                ff.propertyValue.cssText = serialize_font_family(nfams)
            else:
                style.removeProperty(ff.name)
            changed = True
    ff = style.getProperty('font')
    if ff is not None:
        props = parse_font(css_text(ff.propertyValue))
        fams = props.get('font-family') or []
        nfams = list(
            filter(None, [new_name if x == old_name else x for x in fams]))
        if fams != nfams:
            props['font-family'] = nfams
            if nfams:
                ff.propertyValue.cssText = serialize_font(props)
            else:
                style.removeProperty(ff.name)
            changed = True
    return changed
コード例 #2
0
ファイル: fonts.py プロジェクト: Farb/calibre
def change_font_in_declaration(style, old_name, new_name=None):
    changed = False
    ff = style.getProperty('font-family')
    if ff is not None:
        fams = parse_font_family(ff.propertyValue.cssText)
        nfams = filter(None, [new_name if x == old_name else x for x in fams])
        if fams != nfams:
            if nfams:
                ff.propertyValue.cssText = serialize_font_family(nfams)
            else:
                style.removeProperty(ff.name)
            changed = True
    ff = style.getProperty('font')
    if ff is not None:
        props = parse_font(ff.propertyValue.cssText)
        fams = props.get('font-family') or []
        nfams = filter(None, [new_name if x == old_name else x for x in fams])
        if fams != nfams:
            props['font-family'] = nfams
            if nfams:
                ff.propertyValue.cssText = serialize_font(props)
            else:
                style.removeProperty(ff.name)
            changed = True
    return changed
コード例 #3
0
ファイル: normalize_css.py プロジェクト: artbycrunk/calibre
def normalize_font(cssvalue, font_family_as_list=False):
    # See https://developer.mozilla.org/en-US/docs/Web/CSS/font
    composition = font_composition
    val = cssvalue.cssText
    if val == 'inherit':
        ans = {k:'inherit' for k in composition}
    elif val in {'caption', 'icon', 'menu', 'message-box', 'small-caption', 'status-bar'}:
        ans = {k:DEFAULTS[k] for k in composition}
    else:
        ans = {k:DEFAULTS[k] for k in composition}
        ans.update(parse_font(val))
    if font_family_as_list:
        if isinstance(ans['font-family'], basestring):
            ans['font-family'] = [x.strip() for x in ans['font-family'].split(',')]
    else:
        if not isinstance(ans['font-family'], basestring):
            ans['font-family'] = serialize_font_family(ans['font-family'])
    return ans
コード例 #4
0
ファイル: normalize_css.py プロジェクト: qving11/calibre
def normalize_font(cssvalue, font_family_as_list=False):
    # See https://developer.mozilla.org/en-US/docs/Web/CSS/font
    composition = font_composition
    val = cssvalue.cssText
    if val == 'inherit':
        ans = {k:'inherit' for k in composition}
    elif val in {'caption', 'icon', 'menu', 'message-box', 'small-caption', 'status-bar'}:
        ans = {k:DEFAULTS[k] for k in composition}
    else:
        ans = {k:DEFAULTS[k] for k in composition}
        ans.update(parse_font(val))
    if font_family_as_list:
        if isinstance(ans['font-family'], string_or_bytes):
            ans['font-family'] = [x.strip() for x in ans['font-family'].split(',')]
    else:
        if not isinstance(ans['font-family'], string_or_bytes):
            ans['font-family'] = serialize_font_family(ans['font-family'])
    return ans
コード例 #5
0
ファイル: fonts3.py プロジェクト: zyhong/calibre
 def t(raw, **kw):
     q = {('line' if k == 'height' else 'font') + '-' + k: v
          for k, v in iteritems(kw)}
     self.ae(q, parse_font(raw))
     self.ae(q, parse_font(serialize_font(q)))
コード例 #6
0
ファイル: fonts3.py プロジェクト: JimmXinu/calibre
 def t(raw, **kw):
     q = {('line' if k == 'height' else 'font') + '-' + k:v for k, v in iteritems(kw)}
     self.ae(q, parse_font(raw))
     self.ae(q, parse_font(serialize_font(q)))
コード例 #7
0
ファイル: fonts3.py プロジェクト: samlty/calibre
 def t(raw, **kw):
     q = {('line' if k == 'height' else 'font') + '-' + k: v
          for k, v in kw.iteritems()}
     self.ae(q, parse_font(raw))