Source code for tablate.library.renderers.html.render_html_head

from tablate.library.formatters.html.style.attributes.divider import divider_attr
from tablate.library.formatters.html.style.attributes.margin import margin_attr
from tablate.library.formatters.html.style.attributes.space import space_attr
from tablate.type.type_global import Globals


[docs] def render_html_head(global_options: Globals) -> str: container_padding = global_options.html.html_container_styles.html_container_padding frame_border_style = global_options.html.html_container_styles.html_container_border_style frame_border_weight = global_options.html.html_container_styles.html_container_border_weight frame_border_color = global_options.html.html_container_styles.html_container_border_color html_px_multiplier = global_options.html.html_container_styles.html_px_multiplier html_width = global_options.html.html_container_styles.html_container_width column_baselines = global_options.html.column_baselines margin_left_px = container_padding border_string = divider_attr(divider_style=frame_border_style, divider_weight=frame_border_weight, divider_color=frame_border_color) global_options.html.styler.add_global_style_attribute("font-family", "'Roboto', sans-serif") global_options.html.styler.add_global_style_attribute("box-sizing", "border-box") global_options.html.styler.add_global_style_attribute("margin", 0) global_options.html.styler.add_global_style_attribute("padding", 0) global_options.html.styler.wrapper.add_style_attribute("cursor", "default") if global_options.html.html_container_styles.html_default_colors: global_options.html.styler.wrapper.add_style_attribute("background-color", "transparent", " tbody tr") global_options.html.styler.wrapper.add_style_attribute("background-color", "rgba(255,255,255,0.95)") global_options.html.styler.wrapper.add_style_attribute("background-color", "transparent", " tr:nth-child(odd)") global_options.html.styler.wrapper.add_style_attribute("background-color", "rgba(123,123,123,0.10)", " tr:nth-child(even)") global_options.html.styler.wrapper.add_style_attribute("background-color", "rgba(50,123,200,0.15)", " tr:hover") global_options.html.styler.wrapper.add_style_attribute("background-color", "rgba(123,123,123,0.15)", " th") global_options.html.styler.wrapper.add_style_attribute("border", "black", " *") global_options.html.styler.wrapper.add_style_attribute("color", "#030303", " *") margin_edge = space_attr(html_spacer=margin_left_px, html_px_multiplier=html_px_multiplier)[1] global_options.html.styler.wrapper.add_style_attribute("width", f"calc({html_width} - {margin_edge}px)") global_options.html.styler.wrapper.add_style_attribute("margin", margin_attr(margin=margin_left_px, html_px_multiplier=html_px_multiplier)) global_options.html.styler.table.add_style_attribute("width", "100%") global_options.html.styler.table.add_style_attribute("height", "1px") global_options.html.styler.table.add_style_attribute("padding", "0", " tr th td") global_options.html.styler.table.add_style_attribute("border", border_string) global_options.html.styler.table.add_style_attribute("border-collapse", "collapse") wrapper_classes = global_options.html.styler.wrapper.generate_class_names() table_classes = global_options.html.styler.table.generate_class_names() return_string = '' return_string += f'<div class="{wrapper_classes}">' return_string += f'<table class="{table_classes}">' return_string += f'<colgroup>' previous_baseline_value = 0 for baseline_column_width in column_baselines: column_width = baseline_column_width - previous_baseline_value return_string += f'<col style="width:{column_width}%;">' previous_baseline_value = baseline_column_width return_string += f'</colgroup>' return return_string