diff options
| author | Claudine Peyrat <88194877+claudinepeyrat06@users.noreply.github.com> | 2025-04-26 08:52:31 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-26 08:52:31 +0200 |
| commit | 7497a582840fa94415b56a8b45df593328d644ca (patch) | |
| tree | 6f88b587088d8a02f49ac90961f86ba3f87fb426 /lib/marker.py | |
| parent | 4cfb02c370e2f09d59658f652c4b15bd41d46d6e (diff) | |
Claudine/fix font sample (#3684)
* twist monicha
* Update lettering_font_sample.py
* better use default value
* and leave Monicha alone in this branch
* ensure command and marker symbols
---------
Co-authored-by: Kaalleen <reni@allenka.de>
Diffstat (limited to 'lib/marker.py')
| -rw-r--r-- | lib/marker.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/marker.py b/lib/marker.py index 9765fbfb..a2b0965a 100644 --- a/lib/marker.py +++ b/lib/marker.py @@ -15,7 +15,10 @@ from .utils import cache, get_bundled_dir MARKER = ['anchor-line', 'pattern', 'guide-line'] +@cache def ensure_marker(svg, marker): + """Make sure a marker symbol is defined in the svg""" + marker_path = ".//*[@id='inkstitch-%s-marker']" % marker if svg.defs.find(marker_path) is None: marker = deepcopy(_marker_svg().defs.find(marker_path)) @@ -23,6 +26,18 @@ def ensure_marker(svg, marker): svg.defs.append(marker) +def ensure_marker_symbols(group): + """Make sure all marker symbols of an svg group is defined in the svg""" + + for marker in MARKER: + xpath = ".//*[contains(@style, 'marker-start:url(#inkstitch-%s-marker')]" % marker + marked_elements = group.xpath(xpath, namespaces=NSS) + if marked_elements: + ensure_marker(group.getroottree().getroot(), marker) + for element in marked_elements: + element.style['marker-start'] = "url(#inkstitch-%s-marker)" % marker + + @cache def _marker_svg(): marker_path = path.join(get_bundled_dir("symbols"), "marker.svg") |
