MCPcopy Create free account
hub / github.com/Python-Markdown/markdown / WikiLinksInlineProcessor

Class WikiLinksInlineProcessor

markdown/extensions/wikilinks.py:68–101  ·  view source on GitHub ↗

Build link from `wikilink`.

Source from the content-addressed store, hash-verified

66
67
68class WikiLinksInlineProcessor(InlineProcessor):
69 """ Build link from `wikilink`. """
70
71 def __init__(self, pattern: str, config: dict[str, Any]):
72 super().__init__(pattern)
73 self.config = config
74
75 def handleMatch(self, m: re.Match[str], data: str) -> tuple[etree.Element | str, int, int]:
76 if m.group(1).strip():
77 base_url, end_url, html_class = self._getMeta()
78 label = m.group(1).strip()
79 url = self.config['build_url'](label, base_url, end_url)
80 a = etree.Element('a')
81 a.text = label
82 a.set('href', url)
83 if html_class:
84 a.set('class', html_class)
85 else:
86 a = ''
87 return a, m.start(0), m.end(0)
88
89 def _getMeta(self) -> tuple[str, str, str]:
90 """ Return meta data or `config` data. """
91 base_url = self.config['base_url']
92 end_url = self.config['end_url']
93 html_class = self.config['html_class']
94 if hasattr(self.md, 'Meta'):
95 if 'wiki_base_url' in self.md.Meta:
96 base_url = self.md.Meta['wiki_base_url'][0]
97 if 'wiki_end_url' in self.md.Meta:
98 end_url = self.md.Meta['wiki_end_url'][0]
99 if 'wiki_html_class' in self.md.Meta:
100 html_class = self.md.Meta['wiki_html_class'][0]
101 return base_url, end_url, html_class
102
103
104def makeExtension(**kwargs): # pragma: no cover

Callers 1

extendMarkdownMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected