Changeset 4ab8ef3 in trac.git
- Timestamp:
- Apr 9, 2022, 8:27:22 AM (2 years ago)
- Branches:
- 1.6-stable, trunk
- Children:
- c3461d9
- Parents:
- fb873ab2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
contrib/checkwiki.py
rfb873ab2 r4ab8ef3 21 21 from trac.loader import load_components 22 22 from trac.test import EnvironmentStub, Mock, MockPerm 23 from trac.util.html import Element 23 24 from trac.util.text import printout 24 25 from trac.web.chrome import web_context … … 26 27 from trac.wiki.formatter import Formatter 27 28 from trac.wiki.model import WikiPage 29 from trac.wiki.parser import WikiParser 28 30 29 31 … … 37 39 Formatter.__init__(self, env, context) 38 40 self.__name = name 41 self.__mark = None 39 42 self.__marks = [] 40 43 self.__super = super() 44 namespaces = set(('http', 'https', 'data', 't', 'trac')) 45 namespaces.update(WikiParser(env).link_resolvers) 46 self.__namespaces = frozenset(namespaces) 41 47 42 48 def handle_match(self, fullmatch): 49 self.__mark = None 43 50 rv = self.__super.handle_match(fullmatch) 44 if rv: 45 text = str(rv) if not isinstance(rv, str) else rv 46 if text.startswith('<a ') and text.endswith('</a>') and \ 47 'class="missing ' in text: 48 self.__marks.append((fullmatch.start(0), fullmatch.end(0))) 51 if self.__mark is True: 52 self.__marks.append((fullmatch.start(0), fullmatch.end(0))) 53 return rv 54 55 def _make_link(self, ns, target, match, label, fullmatch): 56 rv = self.__super._make_link(ns, target, match, label, fullmatch) 57 mark = ns.lower() not in self.__namespaces 58 if not mark and isinstance(rv, Element): 59 mark = 'missing' in rv.attrib.get('class').split() 60 self.__mark = mark 49 61 return rv 50 62
Note:
See TracChangeset
for help on using the changeset viewer.