rouge-ruby / rouge

A pure Ruby code highlighter that is compatible with Pygments
https://rouge.jneen.net/
Other
3.34k stars 738 forks source link

Apply custom CSS classes to parts of the highlighted code #1767

Open darkstar opened 2 years ago

darkstar commented 2 years ago

Is your enhancement request related to a problem? Please describe. In the documentation I write, I often want to reference certain parts of a larger snippet of code in the text below it. The code is highlighted with rouge. I would like a way to add custom CSS classes to certain parts of the whole highlight block, like highlight a particular keyword in one line, or mark user input bold in a larger terminal session

Describe the solution you'd like Some sort of "meta tag" that I can apply that is not highlighted but instead instructs rouge to apply some CSS class to the enclosed code after highlighting

Something like

def foo():
    # comment
    bar(); baz();
    frob({::blue}23{::});

Which would apply the CSS class blue to the number 23 in the function call on line 4

BenSouchet commented 2 years ago

Check this https://github.com/rouge-ruby/rouge/issues/617 Now you can use : Rouge::Formatters::HTMLLineHighlighter.new(formatter, highlight_lines: [3, 5]) it's indicate on the readme. For "how to use" examples, do a Github search with HTMLLineHighlighter or highlight_lines