- Notifications
You must be signed in to change notification settings - Fork 886
Description
I have tracked down a bug and written a fix for this, wanted to explain the issue in an Issue. PR: #1241.
I'm running a small static blog using Pelican, the Elegant theme and I have enabled the Markdown plugin to do code highlighting for me.
My Markdown configuration via Pelican is like this (note 'pygments_style': 'native'
):
MARKDOWN = { 'output_format': 'html5', 'extension_configs': { 'markdown.extensions.admonition': {}, 'markdown.extensions.codehilite': { 'css_class': 'highlight', 'noclasses': True, 'pygments_style': 'native', }, 'markdown.extensions.extra': {}, 'markdown.extensions.meta': {}, # Enable permalink on headings. # Note: value set to a space, so that the symbol doesn't become # part of the RSS feed as per recommendation. # https://elegant.oncrashreboot.com/permalinks-to-headings 'markdown.extensions.toc': {'permalink': ' '}, }, }
With the upgrade of the Markdown package from 3.2.2 to 3.3.any, the highlighting of any subsequent blocks after the first would be 'default' instead of 'native': 🤔
The commit 10058fa (Refactor fenced_code & codehilite options) seems to have introduced a 'pop' rather than proper 'get' from the local configuration in the sequence of blocks, resulting in this behaviour.
markdown/markdown/extensions/codehilite.py
Lines 238 to 245 in 383de86
for block in blocks: | |
if len(block) == 1 and block[0].tag == 'code': | |
code = CodeHilite( | |
self.code_unescape(block[0].text), | |
tab_length=self.md.tab_length, | |
style=self.config.pop('pygments_style', 'default'), | |
**self.config | |
) |