def run(self, lines):
        text = "\n".join(lines)
        while 1:
            m = FENCED_BLOCK_RE.search(text)
            if not m:
                break
            lang = m.group('lang')
            linenums = bool(m.group('linenums'))
            html = highlight_syntax(m.group('code'), lang, linenums=linenums)
            placeholder = self.markdown.htmlStash.store(html, safe=True)
            text = '{}\n{}\n{}'.format(
                text[:m.start()],
                placeholder,
                text[m.end():]
            )

        return text.split("\n")
Match and store Fenced Code Blocks in the HtmlStash.
dataset/ETHPy150Open lucuma/Clay/clay/markdown_ext/md_fencedcode.py/FencedBlockPreprocessor.run