2 unstable releases
0.2.0 | May 14, 2023 |
---|---|
0.1.0 | May 1, 2023 |
#1551 in Text processing
26 downloads per month
20KB
315 lines
pygmentize
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 HTML Output
Rendered example of examples/html.rs.
Example
use pygmentize::{HtmlFormatter, PygmentizeError};
let code = r#"fn main() {
println!("Hello, world!");
}"#;
let html = pygmentize::highlight(code, Some("rust"), &HtmlFormatter::default())?;
println!("{html}");
Output
(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>
Rendered
(with the Dracula theme)
Override Pygmentize Path
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");
Install
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
Dependencies
~0–7MB
~35K SLoC