diff --git a/map_machine/doc/collections.py b/map_machine/doc/collections.py index 61e6a0f..fe2d41c 100644 --- a/map_machine/doc/collections.py +++ b/map_machine/doc/collections.py @@ -138,7 +138,7 @@ class SVGTable: def draw_delimiter(self) -> None: """Draw line between column and row titles.""" if self.column_values: - line = self.svg.line( + line: Line = self.svg.line( self.start_point - self.half_step - self.border, self.start_point - self.half_step @@ -225,10 +225,9 @@ class Collection: # List of tag values to be used in columns column_values: list[str] = field(default_factory=list) - def generate_table(self) -> tuple[str, list[Icon]]: + def generate_wiki_table(self) -> tuple[str, list[Icon]]: """ Generate Röntgen icon table for the OpenStreetMap wiki page. - """ icons: list[Icon] = [] text: str = '{| class="wikitable"\n' @@ -278,7 +277,7 @@ class Collection: return text, icons - def draw_table(self, svg: Drawing): + def draw_table(self, svg: Drawing) -> np.ndarray: """Draw SVG table.""" table: SVGTable = SVGTable( svg, @@ -409,15 +408,24 @@ collections = [ "two-level", "three-level", "four-level", - "donau", - "donau_inverse", - "barrel", "asymmetric", "triangle", "flag", "delta", "delta_two-level", "delta_three-level", + ], + ), + Collection( + "Key:design_2", + {}, + "power", + ["tower"], + "design", + [ + "donau", + "donau_inverse", + "barrel", "y-frame", "x-frame", "h-frame", @@ -430,17 +438,18 @@ collections = [ ] -def main() -> None: - with Path("result.html").open("w+") as html_file: +def draw_svg_tables(output_path: Path, html_file_path: Path) -> None: + """Draw SVG tables of icon collections.""" + with html_file_path.open("w+") as html_file: for collection in collections: - path: Path = Path("doc") / f"{collection.page_name}.svg" + path: Path = output_path / f"{collection.page_name}.svg" svg: svgwrite = svgwrite.Drawing(path.name) width, height = collection.draw_table(svg) svg.update({"width": width, "height": height}) with path.open("w+") as output_file: svg.write(output_file) - html_file.write(f'\n') + html_file.write(f'\n') if __name__ == "__main__": - main() + draw_svg_tables(Path("doc"), Path("result.html"))