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

from tablate.classes.options.html.style.CssStyler import CssStyler
from tablate.library.calcs.calc_column_percent import calc_column_percent
from tablate.library.renderers.html.render_html_foot import render_html_foot
from tablate.library.renderers.html.render_html_frames import render_html_frames
from tablate.library.renderers.html.render_html_head import render_html_head
from tablate.type.type_global import Globals


[docs] def render_html(frame_list: dict, global_options: Globals, css_injection: list) -> str: processed_frame_list = [] for _, frame_item in frame_list.items(): if frame_item.type == "table": if frame_item.args["hide_header"] is not True: processed_frame_list.append(frame_item.store[0]) processed_frame_list.append(frame_item.store[1]) else: processed_frame_list.append(frame_item.store) global_options.html.styler = CssStyler() for css_injection in css_injection: global_options.html.styler.inject_scoped_css(css_injection["selector"], css_injection["css"], css_injection["sub_selector"]) global_options.html.styler.inject_css_block(global_options.html.css_injection) return_html = "" if len(processed_frame_list) > 0: processed_frame_list, column_baselines = calc_column_percent(frame_list=processed_frame_list, container_width=global_options.console.outer_styles.container_width) global_options.html.column_baselines = column_baselines return_html += render_html_head(global_options=global_options) return_html += render_html_frames(frame_list=processed_frame_list, global_options=global_options) return_html += render_html_foot() css_head = global_options.html.styler.return_head_styles() css_foot = global_options.html.styler.return_foot_styles() return_html = f"{css_head}{return_html}{css_foot}" return return_html