From 6b505a48a23f77867dd9dc75a542ede6ce4ae955 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sat, 4 Jul 2026 10:53:44 +0530 Subject: Fix html transformation for about + syntax hl changes --- cgit/filters/html-transform.py | 83 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 cgit/filters/html-transform.py (limited to 'cgit/filters/html-transform.py') diff --git a/cgit/filters/html-transform.py b/cgit/filters/html-transform.py new file mode 100755 index 0000000..9fc7aec --- /dev/null +++ b/cgit/filters/html-transform.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +# Rewrite image urls in about section + +import sys +from html.parser import HTMLParser +import html +from urllib.parse import urljoin, urlparse +import re + +def is_absolute_url(url): + if not url: return False + parsed = urlparse(url) + return bool(parsed.netloc or parsed.scheme) + +def is_relative_path(url): + if not url: return False + return not url.startswith("/") and not is_absolute_url(url) + +def linkify(text, make_link): + url_pattern = r'(?" + + def handle_starttag(self, tag, attrs): + self.output.append(self._build_tag(tag, attrs)) + + def handle_startendtag(self, tag, attrs): + self.output.append(self._build_tag(tag, attrs, self_closing=True)) + + def handle_endtag(self, tag): + self.output.append(f"") + + def handle_data(self, data): + data_with_links = linkify(data, + lambda url: self._build_tag("a", [('href', url)]) + html.escape(url) + "") + self.output.append(data_with_links) + + def handle_entityref(self, name): + self.output.append(f"&{name};") + + def handle_charref(self, name): + self.output.append(f"&#{name};") + + def handle_comment(self, data): + self.output.append(f"") + +html_in = sys.stdin.read() + +parser = LinkRewriter() +parser.feed(html_in) + +print(parser.get_html()) -- cgit v1.3.1