Syntax Highlighting With Line Numbering And Classes In Rust
This is how I'm doing syntax highlighting in Rust.
This is the main way I'm doing it where instead of adding the styles inline it adds classes.
[] Uses classes instead of inline styles
[] Trim leading empty lines, but not white space before the first character on the first line
[] Trim trailing empty lines
[] Provide HTML that can have line numbers added via CSS
[] Fall back to plain-text if the requested language isn't found
[] link to: 2fbld7l3 for generating stylesheets
```cargo
= "1.10.4"
syntect = "5.2.0"
```
use Regex;
use ;
use SyntaxSet;
use LinesWithEndings;
regex
Output:
<span class="line-marker"></span><span class="source rust"> <span class="meta function rust"><span class="meta function rust"><span class="storage type function rust">fn</span> </span><span class="entity name function rust">main</span></span><span class="meta function rust"><span class="meta function parameters rust"><span class="punctuation section parameters begin rust">(</span></span><span class="meta function rust"><span class="meta function parameters rust"><span class="punctuation section parameters end rust">)</span></span></span></span><span class="meta function rust"> </span><span class="meta function rust"><span class="meta block rust"><span class="punctuation section block begin rust">{</span>
<span class="line-marker"></span> <span class="support macro rust">println!</span><span class="meta group rust"><span class="punctuation section group begin rust">(</span></span><span class="meta group rust"></span><span class="meta group rust">`Hello<span class="punctuation separator rust">,</span> World
<span class="line-marker"></span> alfa
<span class="line-marker"></span> bravo
<span class="line-marker"></span> `<span class="punctuation section group end rust">)</span></span>
<span class="line-marker"></span></span><span class="meta block rust"><span class="punctuation section block end rust">}</span></span></span></span>
CSS
}
}
}
-- end of line --
References
See this for how to output the styelsheet: