Rust library and wrapper around the pygmentize CLI. Apply syntax highlighting to over 500 languages and other text formatted. Render into HTML, SVG, LaTeX, and Terminal (ANSI color sequences).
Rendered example of examples/html.rs.
use pygmentize::{HtmlFormatter, PygmentizeError};
let code = r#"fn main() {
println!("Hello, world!");
}"#;
let html = pygmentize::highlight(code, Some("rust"), &HtmlFormatter::default())?;
println!("{html}");
(whitespace added to improve clarity)
<div class="highlight">
<pre>
<span></span>
<span class="k">fn</span>
<span class="nf">main</span>
<span class="p">()</span>
<span class="w"> </span>
<span class="p">{</span>
<span class="w"> </span>
<span class="fm">println!</span>
<span class="p">(</span>
<span class="s">"Hello, world!"</span>
<span class="p">);</span>
<span class="p">}</span>
</pre>
</div>
(with the Dracula theme)
The path to the pygmentize
binary, can be overridden using pygmentize::
set_bin_path()
. The default path is "pygmentize"
.
If pygmentize
is installed in a virtual environment, within your crate directory,
i.e. Cargo.lock
and env/
being within the same directory. Then assuming that
the current directory is the same. Then the path can be overridden by doing:
pygmentize::set_bin_path("./env/Scripts/pygmentize");
The library is a wrapper around the pygmentize CLI, and as such it must be available in the system PATH. The easiest way to install pygmentize is through Python.
pip install Pygments