From b3e47e148a3851824071b8aa62654fc133f8b1d2 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Sat, 27 Mar 2021 15:05:48 +0100 Subject: [PATCH] Generalize metadata filling, change placeholder syntax --- src/wireviz/templates/din-6771.html | 107 ++++++++++++++-------------- src/wireviz/templates/simple.html | 14 ++-- src/wireviz/wv_html.py | 46 ++++++------ 3 files changed, 87 insertions(+), 80 deletions(-) diff --git a/src/wireviz/templates/din-6771.html b/src/wireviz/templates/din-6771.html index 3cc0087..efc2618 100644 --- a/src/wireviz/templates/din-6771.html +++ b/src/wireviz/templates/din-6771.html @@ -1,9 +1,10 @@ + - - <!-- title --> + + <!-- %title% --> -

WireViz Demo 01

+

Diagram

- +
- +
- +

Bill of Materials

- +
diff --git a/src/wireviz/wv_html.py b/src/wireviz/wv_html.py index e4ee277..8e51e51 100644 --- a/src/wireviz/wv_html.py +++ b/src/wireviz/wv_html.py @@ -29,7 +29,7 @@ def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]], '^<[?]xml [^?>]*[?]>[^<]*]*>', '', svgdata, 1) - html = html.replace('', svgdata) + html = html.replace('', svgdata) # generate BOM table bom = flatten2d(bom_list) @@ -55,42 +55,48 @@ def generate_html_output(filename: Union[str, Path], bom_list: List[List[str]], bom_html_reversed = '\n' + ''.join(list(reversed(bom_contents))) + bom_header_html + '
\n' # insert BOM table - html = html.replace('', bom_html) - html = html.replace('', bom_html_reversed) + html = html.replace('', bom_html) + html = html.replace('', bom_html_reversed) - # fill out title block + # insert other metadata if metadata: - html = html.replace('', metadata.get('title', '')) - html = html.replace('', metadata.get('pn', '')) - html = html.replace('', metadata.get('company', '')) - html = html.replace('', html_line_breaks(metadata.get('description', ''))) - html = html.replace('', html_line_breaks(metadata.get('notes', ''))) - html = html.replace('', f'{APP_NAME} {__version__} - {APP_URL}') - # TODO: handle multi-page documents - html = html.replace('', 'Sheet
1') - html = html.replace('', 'of 1') + html = html.replace('', f'{APP_NAME} {__version__} - {APP_URL}') + # fill out authors for i, (k, v) in enumerate(metadata.get('authors', {}).items(), 1): title = k name = v['name'] date = v['date'].strftime('%Y-%m-%d') - html = html.replace(f'', title) - html = html.replace(f'', name) - html = html.replace(f'', date) + html = html.replace(f'', title) + html = html.replace(f'', name) + html = html.replace(f'', date) + # fill out revisions for i, (k, v) in enumerate(metadata.get('revisions', {}).items(), 1): # TODO: for more than 8 revisions, keep only the 8 most recent ones number = k changelog = v['changelog'] name = v['name'] date = v['date'].strftime('%Y-%m-%d') - html = html.replace(f'', '{:02d}'.format(number)) - html = html.replace(f'', changelog) - html = html.replace(f'', name) - html = html.replace(f'', date) + html = html.replace(f'', '{:02d}'.format(number)) + html = html.replace(f'', changelog) + html = html.replace(f'', name) + html = html.replace(f'', date) html = html.replace(f'"sheetsize_default"', '"{}"'.format(metadata.get('template',{}).get('sheetsize', ''))) # include quotes so no replacement happens within