Skip to content

codehilite extension: Pygments style only applied to first block #1240

Closed
@gertvdijk

Description

@gertvdijk

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': 🤔

Screenshot_20220402_001102

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.

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
)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug report.confirmedConfirmed bug report or approved feature request.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