71 lines
2.3 KiB
ReStructuredText
71 lines
2.3 KiB
ReStructuredText
=====================
|
|
Use Pygments in Java
|
|
=====================
|
|
|
|
Thanks to `Jython <http://www.jython.org>`_ it is possible to use Pygments in
|
|
Java.
|
|
|
|
This page is a simple tutorial to get an idea of how this works. You can
|
|
then look at the `Jython documentation <http://www.jython.org/docs/>`_ for more
|
|
advanced uses.
|
|
|
|
Since version 1.5, Pygments is deployed on `Maven Central
|
|
<http://repo1.maven.org/maven2/org/pygments/pygments/>`_ as a JAR, as is Jython
|
|
which makes it a lot easier to create a Java project.
|
|
|
|
Here is an example of a `Maven <http://www.maven.org>`_ ``pom.xml`` file for a
|
|
project running Pygments:
|
|
|
|
.. sourcecode:: xml
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
|
http://maven.apache.org/maven-v4_0_0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>example</groupId>
|
|
<artifactId>example</artifactId>
|
|
<version>1.0-SNAPSHOT</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.python</groupId>
|
|
<artifactId>jython-standalone</artifactId>
|
|
<version>2.5.3</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.pygments</groupId>
|
|
<artifactId>pygments</artifactId>
|
|
<version>1.5</version>
|
|
<scope>runtime</scope>
|
|
</dependency>
|
|
</dependencies>
|
|
</project>
|
|
|
|
The following Java example:
|
|
|
|
.. sourcecode:: java
|
|
|
|
PythonInterpreter interpreter = new PythonInterpreter();
|
|
|
|
// Set a variable with the content you want to work with
|
|
interpreter.set("code", code);
|
|
|
|
// Simple use Pygments as you would in Python
|
|
interpreter.exec("from pygments import highlight\n"
|
|
+ "from pygments.lexers import PythonLexer\n"
|
|
+ "from pygments.formatters import HtmlFormatter\n"
|
|
+ "\nresult = highlight(code, PythonLexer(), HtmlFormatter())");
|
|
|
|
// Get the result that has been set in a variable
|
|
System.out.println(interpreter.get("result", String.class));
|
|
|
|
will print something like:
|
|
|
|
.. sourcecode:: html
|
|
|
|
<div class="highlight">
|
|
<pre><span class="k">print</span> <span class="s">"Hello World"</span></pre>
|
|
</div>
|