When CodeHilite is enabled, fenced_code includes the language class in list of general classes. · Issue #1032 · Python-Markdown/markdown (original) (raw)

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 = '''

'''

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

Output with c class:


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:

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!