Changeset 0789e55 in trac.git
- Timestamp:
- Apr 9, 2022, 8:25:20 AM (2 years ago)
- Branches:
- 1.4-stable, 1.6-stable, trunk
- Children:
- 3ab92f3
- Parents:
- d1943cd4
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
contrib/checkwiki.py
rd1943cd4 r0789e55 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(DefaultWikiChecker, self) 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 if not isinstance(rv, basestring): 46 text = unicode(rv) 47 else: 48 text = rv 49 if text.startswith('<a ') and text.endswith('</a>') and \ 50 'class="missing ' in text: 51 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 52 61 return rv 53 62
Note:
See TracChangeset
for help on using the changeset viewer.