Rearrange code and rename variables

This commit is contained in:
Daniel Rojas 2021-03-27 15:50:10 +01:00
parent 6a7f1fdcd8
commit 24585ae441

View File

@ -12,6 +12,7 @@ from wireviz.wv_gv_html import html_line_breaks
def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]], metadata: Metadata, options: Options): def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]], metadata: Metadata, options: Options):
# load HTML template
if 'name' in metadata.get('template',{}): if 'name' in metadata.get('template',{}):
# if relative path to template was provided, check directory of YAML file first, fall back to built-in template directory # if relative path to template was provided, check directory of YAML file first, fall back to built-in template directory
templatefile = smart_file_resolve(f'{metadata["template"]["name"]}.html', [Path(filename).parent, Path(__file__).parent / 'templates']) templatefile = smart_file_resolve(f'{metadata["template"]["name"]}.html', [Path(filename).parent, Path(__file__).parent / 'templates'])
@ -58,10 +59,11 @@ def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]],
html = html.replace('<!-- %bom% -->', bom_html) html = html.replace('<!-- %bom% -->', bom_html)
html = html.replace('<!-- %bom_reversed% -->', bom_html_reversed) html = html.replace('<!-- %bom_reversed% -->', bom_html_reversed)
# insert generator
html = html.replace('<!-- %generator% -->', f'{APP_NAME} {__version__} - {APP_URL}')
# insert other metadata # insert other metadata
if metadata: if metadata:
html = html.replace('<!-- %generator% -->', f'{APP_NAME} {__version__} - {APP_URL}')
html = html.replace(f'"sheetsize_default"', '"{}"'.format(metadata.get('template',{}).get('sheetsize', ''))) # include quotes so no replacement happens within <style> definition html = html.replace(f'"sheetsize_default"', '"{}"'.format(metadata.get('template',{}).get('sheetsize', ''))) # include quotes so no replacement happens within <style> definition
# TODO: handle multi-page documents # TODO: handle multi-page documents
@ -69,11 +71,11 @@ def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]],
html = html.replace('<!-- %sheet_total% -->', 'of 1') html = html.replace('<!-- %sheet_total% -->', 'of 1')
# fill out other generic metadata # fill out other generic metadata
for item, value in metadata.items(): for item, contents in metadata.items():
if isinstance(value, (str, int, float)): if isinstance(contents, (str, int, float)):
html = html.replace(f'<!-- %{item}% -->', value) html = html.replace(f'<!-- %{item}% -->', contents)
elif isinstance(value, Dict): # useful for authors, revisions elif isinstance(contents, Dict): # useful for authors, revisions
for index, (category, entry) in enumerate(value.items()): for index, (category, entry) in enumerate(contents.items()):
if isinstance(entry, Dict): if isinstance(entry, Dict):
html = html.replace(f'<!-- %{item}_{index+1}% -->', str(category)) html = html.replace(f'<!-- %{item}_{index+1}% -->', str(category))
for entry_key, entry_value in entry.items(): for entry_key, entry_value in entry.items():