diff options
Diffstat (limited to 'cgit/filters')
| -rwxr-xr-x | cgit/filters/html-transform.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cgit/filters/html-transform.py b/cgit/filters/html-transform.py index e12ffda..51b3538 100755 --- a/cgit/filters/html-transform.py +++ b/cgit/filters/html-transform.py @@ -41,12 +41,18 @@ class LinkRewriter(HTMLParser): else: value = "../" + urljoin("plain/", value) attr_map[name] = value - # Open in new tab - if tag == "a" and name == "href" and is_absolute_url(value): - if not 'target' in attr_map: attr_map['target'] = '_blank _parent' - if not 'rel' in attr_map: attr_map['rel'] = 'noopener' - attr_str = "".join( + # Open in new tab + if tag == 'a' and 'href' in attr_map and is_absolute_url(attr_map['href']): + if not 'target' in attr_map: attr_map['target'] = '_blank _parent' + if not 'rel' in attr_map: attr_map['rel'] = 'noopener' + + # Image tag lazy loading + if tag == 'img': + attr_map['loading'] = 'lazy' + attr_map['decoding'] = 'async' + + attr_str = ''.join( f' {name}="{html.escape(value, quote=True)}"' if value is not None else f" {name}" for name, value in attr_map.items() ) |
