Skip to content

When CodeHilite is enabled, fenced_code includes the language class in list of general classes. #1032

Description

@Phuker

In new version 3.3, I found that a new language class appeared in the generated HTML code block, which not exist in previous version 3.2.2.

My code:

import markdown

s = '''
```c
```
'''

extensions = ['extra', 'codehilite']
print(markdown.markdown(s, extensions=extensions))

Output with c class:

<div class="c codehilite"><pre><span></span><code>
</code></pre></div>

Then I read the docs and tried to disable pygments

configs={
    'codehilite': {
        'use_pygments': False
    }
}

print(markdown.markdown(s, extensions=extensions, extension_configs=configs))

This time it outputs:

<pre><code class="language-c"></code></pre>

My version info:

$ python3 --version
Python 3.8.5
$ python3 -m pip show markdown
pyName: Markdown
Version: 3.3
Summary: Python implementation of Markdown.
Home-page: https://Python-Markdown.github.io/
Author: Manfred Stienstra, Yuri takhteyev and Waylan limberg
Author-email: waylan.limberg@icloud.com
License: BSD License
Location: /usr/local/lib/python3.8/dist-packages
Requires:
Required-by: xxx
$ python3 -m pip show pygments
Name: Pygments
Version: 2.7.1
Summary: Pygments is a syntax highlighting package written in Python.
Home-page: https://pygments.org/
Author: Georg Brandl
Author-email: georg@python.org
License: BSD License
Location: /usr/local/lib/python3.8/site-packages
Requires:
Required-by: xxx

According to this page https://pygments.org/docs/lexers/, there are so many possibilities that the language class mess up with other class with the same name.

When pygments is disabled, the class name has a language- prefix, which is acceptable.

It would be better if we always add language- prefix, or just remove it.

Thank you!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug report.extensionRelated to one or more of the included extensions.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions