Md_It_Highlight_Code.Py

None

!! function

highlight_code function

Code highlighter for markdown-it-py.

highlight_code source


        def highlight_code(code, name, attrs, markata=None):
            """Code highlighter for markdown-it-py."""

            try:
                lexer = get_lexer_by_name(name or "text")
            except ClassNotFound:
                lexer = get_lexer_by_name("text")

            import re

            pattern = r'(\w+)\s*=\s*(".*?"|\S+)'
            matches = re.findall(pattern, attrs)
            attrs = dict(matches)

            if attrs.get("hl_lines"):
                formatter = HtmlFormatter(hl_lines=attrs.get("hl_lines"))
            else:
                formatter = HtmlFormatter()

            copy_button = f"""<button class='copy' title='copy code to clipboard' onclick="navigator.clipboard.writeText(this.parentElement.parentElement.querySelector('pre').textContent)">{COPY_ICON}</button>"""

            from markdown_it import MarkdownIt

            md = MarkdownIt(
                "commonmark",
                {
                    "html": True,
                    "typographer": True,
                },
            )

            if attrs.get("help"):
                help = f"""
                <a href={attrs.get('help').strip('<').strip('>').strip('"').strip("'")} title='help link' class='help'>{HELP_ICON}</a>
                """
            else:
                help = ""
            if attrs.get("title"):
                file = f"""
        <div class='filepath'>
        {md.render(attrs.get('title').strip('"').strip("'"))}
        <div class='right'>
        {help}
        {copy_button}
        </div>
        </div>
        """
            else:
                file = f"""
        <div class='copy-wrapper'>
        {help}
        {copy_button}
        </div>
                """
            return f"""<pre class='wrapper'>
        {file}
        {highlight(code, lexer, formatter)}
        </pre>
        """