diff options
| author | Kaalleen <36401965+kaalleen@users.noreply.github.com> | 2024-02-10 20:17:36 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-02-10 20:17:36 +0100 |
| commit | 0825da15db5984c70a9aa9e61b0018352447d1a9 (patch) | |
| tree | 6ec3783d7e51314524f0e87b1f5c7d96793faad7 /lib | |
| parent | 0fb7d82f72adaa44009bfaa173d94eaf22b559c3 (diff) | |
Fix lettering id-error and trims (#2711)
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/lettering/font.py | 2 | ||||
| -rw-r--r-- | lib/svg/svg.py | 11 |
2 files changed, 3 insertions, 10 deletions
diff --git a/lib/lettering/font.py b/lib/lettering/font.py index fb17f760..2aeff3de 100644 --- a/lib/lettering/font.py +++ b/lib/lettering/font.py @@ -365,7 +365,7 @@ class Font(object): line_break_indices = [i for i, t in enumerate(text) if t == "\n"] for group in destination_group.iterdescendants(SVG_GROUP_TAG): # make sure we are only looking at glyph groups - if group.get("id") != "glyph": + if not group.get("id", "").startswith("glyph"): continue i += 1 diff --git a/lib/svg/svg.py b/lib/svg/svg.py index 3bd9a693..2c521098 100644 --- a/lib/svg/svg.py +++ b/lib/svg/svg.py @@ -14,20 +14,13 @@ def get_document(node): return node.getroottree().getroot() -def generate_unique_id(document_or_element, prefix="path"): +def generate_unique_id(document_or_element, prefix="path", blocklist=None): if isinstance(document_or_element, etree._ElementTree): document = document_or_element.getroot() else: document = get_document(document_or_element) - doc_ids = {node.get('id') for node in document.iterdescendants() if 'id' in node.attrib} - - i = 1 - while True: - new_id = "%s%d" % (prefix, i) - if new_id not in doc_ids: - break - i += 1 + new_id = document.get_unique_id(prefix, blacklist=blocklist) return new_id |
