Use valid css class names when pygments language contains invalid chars, eg html+django #994

Merged
merged 2 commits into from Mar 17, 2014

3 participants

@stephenmcd

Pygments has some lexers that combine multiple languages and are referenced by name using the plus sign, eg "html+django" is a valid lexer name.

In the highlight tag, the lexer name also gets used as the CSS class name in the wrapping HTML <code> block, but the plus sign is invalid here.

This change simply converts plus signs to minus signs, to conform with valid CSS class names.

@parkr
Jekyll member

I think we'd want to normalize the lang elsewhere, right? And I'd love tests for this so we don't break it in the future. They're in ./test/test_tags.rb.

@stephenmcd

Is it used as a CSS classname anywhere else? As far as Pygments goes it's doing the right thing, so nothing needs to change there.

As for tests I haven't written Ruby for a couple of years, so I'm a bit out of my depth there. Happy to give it a go but I'd need some guidance.

@mattr-
Jekyll member

@stephenmcd I'd be happy to pair with you remotely on this

@stephenmcd

Thanks @mattr- !

Might not be right away - I've a ton of outstanding work on my own projects unfortunately. But if I get around to it I'll ping you here.

@parkr parkr closed this Mar 17, 2014
@stephenmcd

Did this get fixed?

@parkr parkr reopened this Mar 17, 2014
@parkr
Jekyll member

Nope, it was just closed by accident.

@stephenmcd

Cool!

Would you like to go ahead and merge the fix? I don't do Ruby or anything with Jekyll these days, so I have almost no exposure to the code base - but as I understood, the line changed in this fix is the only location that deals with mapping language names to CSS class names, which the issue specifically is.

Doesn't seem worthwhile to leave a bug opened for this long when the fix is literally as trivial as they get. Just my 2 cents as someone who does way too much open source maintenance :-)

@parkr
Jekyll member

So this fix is pretty trivial but it doesn't take into account @lang being nil, in which case it'll just freak out. Can you call .to_s first, before gsub? Thanks!

@stephenmcd

No sweat, all done - thanks a lot!

@parkr parkr merged commit d80471c into jekyll:master Mar 17, 2014

1 check was pending

Details default The Travis CI build is in progress
@parkr
Jekyll member

Boom! Thanks @stephenmcd :)

@parkr parkr added a commit that referenced this pull request Mar 17, 2014
@parkr parkr Update history to reflect merge of #994 [ci skip] d3f12c8
@lmullen lmullen added a commit to lmullen/jekyll that referenced this pull request Mar 24, 2014
@parkr parkr Update history to reflect merge of #994 [ci skip] d8e36b1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment