Coverage for app/venv/lib/python3.14/site-packages/weblate/trans/autofixes/html.py: 58%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 07:15 +0000

1# Copyright © Michal Čihař <michal@weblate.org> 

2# 

3# SPDX-License-Identifier: GPL-3.0-or-later 

4 

5from django.utils.translation import gettext_lazy 

6 

7from weblate.checks.markup import SafeHTMLCheck 

8from weblate.trans.autofixes.base import AutoFix 

9from weblate.utils.html import HTMLSanitizer 

10 

11 

12class BleachHTML(AutoFix): 

13 """Cleanup unsafe HTML markup.""" 

14 

15 fix_id = "safe-html" 

16 name = gettext_lazy("Unsafe HTML") 

17 

18 @staticmethod 

19 def get_related_checks(): 

20 return [SafeHTMLCheck()] 

21 

22 def fix_single_target(self, target: str, source: str, unit): 

23 flags = unit.all_flags 

24 if "safe-html" not in flags or "ignore-safe-html" in flags: 

25 return target, False 

26 

27 sanitizer = HTMLSanitizer() 

28 new_target = sanitizer.clean(target, source, flags) 

29 

30 return new_target, new_target != target