Remove font=family processing

This commit is contained in:
Kiryl
2022-06-28 16:38:21 +03:00
parent eab4f0130a
commit f01f6ad778
3 changed files with 23 additions and 41 deletions

View File

@@ -78,7 +78,7 @@ def convert_indents_tag_values(size_value: str) -> str:
"""
Dictionary LIVECARTA_STYLE_ATTRS = { css property: value }
Style properties that can be used to fit livecarta css style convention.
Style properties that can be used to fit LiveCarta css style convention.
If property has empty list, it means that any value can be converted.
If property has not empty list, it means that only certain property-value combinations can be transformed.
"""
@@ -88,8 +88,7 @@ LIVECARTA_STYLE_ATTRS = {
"text-align": [x for x in LiveCartaConfig.ALIGN_STYLES if x != LiveCartaConfig.DEFAULT_ALIGN_STYLE],
"align": [],
"font": [],
"font-family": [x for x in LiveCartaConfig.FONT_CORRESPONDANCE_TABLE.keys()
if x != LiveCartaConfig.DEFAULT_FONT_NAME],
"font-family": [],
"font-size": [],
"font-weight": ["bold", "600", "700", "800", "900"], # <strong>
"font-style": ["italic"], # <i>
@@ -118,15 +117,14 @@ LIVECARTA_STYLE_ATTRS = {
Dictionary LIVECARTA_STYLE_ATTRS_MAPPING = { property: mapping function }
Warning, if LIVECARTA_STYLE_ATTRS is changed, LIVECARTA_STYLE_ATTRS_MAPPING should be updated
to suit livecarta style convention.
to suit LiveCarta style convention.
"""
LIVECARTA_STYLE_ATTRS_MAPPING = {
"text-indent": convert_indents_tag_values,
"font-variant": lambda x: x,
"text-align": lambda x: x,
"font": lambda x: "",
"font-family": lambda x: LiveCartaConfig.FONT_CORRESPONDANCE_TABLE.get(re.sub(r"^\s+|\s+$", "", x.title()))
or LiveCartaConfig.FONT_CORRESPONDANCE_TABLE.get(re.sub(r"^\s+|\s+$", "", x)),
"font-family": lambda x: x,
"font-size": convert_tag_style_values,
"color": get_text_color,
"background-color": get_bg_color,
@@ -146,6 +144,15 @@ LIVECARTA_STYLE_ATTRS_MAPPING = {
}
def style_conditions(style_value, style_name):
cleaned_value = style_value.replace("\"", "")
constraints_on_value = LIVECARTA_STYLE_ATTRS.get(
style_name)
value_not_in_possible_values_list = cleaned_value not in LIVECARTA_STYLE_ATTRS[
style_name]
return cleaned_value, constraints_on_value, value_not_in_possible_values_list
def update_inline_styles_to_livecarta_convention(split_style: list):
for i, style in enumerate(split_style):
style_name, style_value = style.split(":")
@@ -154,11 +161,8 @@ def update_inline_styles_to_livecarta_convention(split_style: list):
split_style[i] = ""
return split_style
cleaned_value = style_value.replace("\"", "").split()[-1]
constraints_on_value = LIVECARTA_STYLE_ATTRS.get(
style_name)
value_not_in_possible_values_list = cleaned_value not in LIVECARTA_STYLE_ATTRS[
style_name]
cleaned_value, constraints_on_value, value_not_in_possible_values_list =\
style_conditions(style_value, style_name)
if constraints_on_value and value_not_in_possible_values_list:
# there are constraints + value not in LIVECARTA_STYLE_ATTRS, remove from css file
split_style[i] = ""
@@ -172,7 +176,7 @@ def update_inline_styles_to_livecarta_convention(split_style: list):
def build_inline_style_content(style: str) -> str:
"""Build inline style with livecarta convention"""
"""Build inline style with LiveCarta convention"""
# replace all spaces between "; & letter" to ";"
style = re.sub(r"; *", ";", style)
# when we split style by ";", last element of the list is "" - None
@@ -189,16 +193,15 @@ def build_inline_style_content(style: str) -> str:
def update_css_styles_to_livecarta_convention(css_rule: cssutils.css.CSSStyleRule,
style_type: cssutils.css.property.Property):
if style_type.name == "font-family":
pass
if style_type.name not in LIVECARTA_STYLE_ATTRS:
# property not in LIVECARTA_STYLE_ATTRS, remove from css file
css_rule.style[style_type.name] = ""
return
cleaned_value = style_type.value.replace("\"", "")
constraints_on_value = LIVECARTA_STYLE_ATTRS.get(
style_type.name)
value_not_in_possible_values_list = cleaned_value not in LIVECARTA_STYLE_ATTRS[
style_type.name]
cleaned_value, constraints_on_value, value_not_in_possible_values_list =\
style_conditions(style_type.value, style_type.name)
if constraints_on_value and value_not_in_possible_values_list:
# there are constraints + value not in LIVECARTA_STYLE_ATTRS, remove from css file
css_rule.style[style_type.name] = ""
@@ -210,7 +213,7 @@ def update_css_styles_to_livecarta_convention(css_rule: cssutils.css.CSSStyleRul
def build_css_file_content(css_content: str) -> str:
"""Build css content with livecarta convention"""
"""Build css content with LiveCarta convention"""
sheet = cssutils.parseString(css_content, validate=False)
for css_rule in sheet: