WP-Syntax

plugin banner

WP-Syntax provides clean syntax highlighting for embedding source code within pages or posts.

Author:Steven A. Zahm (profile at wordpress.org)
WordPress version required:4.7
WordPress version tested:6.4.1
Plugin version:1.2
Added to WordPress repository:21-01-2007
Last updated:01-12-2023
Rating, %:80
Rated by:15
Plugin URI:http://www.connections-pro.com
Total downloads:345 338
Active installs:4 000+
plugin download
Click to start download

WP-Syntax provides clean syntax highlighting using
GeSHi — supporting a wide range of popular
languages. It supports highlighting with or without line numbers and maintains formatting while copying snippets of code
from the browser.

It avoids conflicts with other 3rd party plugins by running an early
pre-filter and a late post-filter that substitutes and pulls the code snippets
out first and then pushes them back in with highlighting at the end. The
result is source code formatted and highlighted the way you intended.

Usage, Supported Languages, Styling Guidelines, and Release Notes are available
in the Other Notes section.

Want to contribute? WP-Syntax can be found on GitHub. Fork and submit your pull requests today!

Basic Usage

Wrap code blocks with <pre lang="LANGUAGE" line="1"> and </pre> where “LANGUAGE”
is a GeSHi supported language syntax.
The line attribute is optional. More usage examples

Usage

Wrap code blocks with <pre lang="LANGUAGE" line="1"> and </pre> where “LANGUAGE” is a GeSHi supported
language syntax. See below for a full list of supported languages.
The line attribute is optional.

Example 1: PHP, no line numbers

<pre lang="php">
<div id="foo">
<?php
  function foo() {
    echo "Hello World!\\n";
  }
?>
</div>
</pre>

Example 2: Java, with line numbers

<pre lang="java" line="1">
public class Hello {
  public static void main(String[] args) {
    System.out.println("Hello World!");
  }
}
</pre>

Example 3: Ruby, with line numbers starting at 18

<pre lang="ruby" line="18">
class Example
  def example(arg1)
    return "Hello: " + arg1.to_s
  end
end
</pre>

Example 4: If your code already has html entities escaped, use escaped="true" as an option

<pre lang="xml" escaped="true">
&lt;xml&gt;Hello&lt;/xml&gt;
</pre>

Example 5: PHP, with line numbers and highlighting a specific line

<pre lang="php" line="1" highlight="3">
<div id="foo">
<?php
  function foo() {
    echo "Hello World!\\n";
  }
?>
</div>
</pre>

Example 6: PHP, with a caption (file and/or file path of the source file)

<pre lang="php" src"https://github.com/shazahm1/Connections/blob/master/connections.php">
<div id="foo">
<?php
  function foo() {
    echo "Hello World!\\n";
  }
?>
</div>
</pre><h3>Supported Languages</h3>

The following languages are most supported in the lang attribute:

abap, actionscript, actionscript3, ada, apache, applescript, apt_sources, asm,
asp, autoit, avisynth, bash, bf, bibtex, blitzbasic, bnf, boo, c,
c_mac, caddcl, cadlisp, cil, cfdg, cfm, cmake, cobol, cpp-qt, cpp,
csharp, css, d, dcs, delphi, diff, div, dos, dot, eiffel, email, erlang,
fo, fortran, freebasic, genero, gettext, glsl, gml, bnuplot, groovy, haskell,
hq9plus, html4strict, idl, ini, inno, intercal, io, java, java5,
javascript, kixtart, klonec, klonecpp, latex, lisp, locobasic, lolcode
lotusformulas, lotusscript, lscript, lsl2, lua, m68k, make, matlab, mirc,
modula3, mpasm, mxml, mysql, nsis, oberon2, objc, ocaml-brief, ocaml,
oobas, oracle11, oracle8, pascal, per, pic16, pixelbender, perl,
php-brief, php, plsql, povray, powershell, progress, prolog, properties,
providex, python, qbasic, rails, rebol, reg, robots, ruby, sas,
scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, tcl, teraterm,
text, thinbasic, tsql, typoscript, vb, vbnet, verilog, vhdl, vim,
visualfoxpro, visualprolog, whitespace, whois, winbatch, xml, xorg_conf,
xpp, z80

See the GeSHi Documentation
for a full list of supported languages.

(Bold languages just highlight the more popular ones.)

Styling Guidelines

WP-Syntax colors code using the default GeSHi colors. It also uses inline
styling to make sure that code highlights still work in RSS feeds. It uses a
default wp-syntax.css stylesheet for basic layout. To customize your styling,
copy the default wp-content/plugins/wp-syntax/wp-syntax.css to your theme’s
template directory and modify it. If a file named wp-syntax.css exists in
your theme’s template directory, this stylesheet is used instead of the default.
This allows theme authors to add their own customizations as they see fit.

Advanced Customization

WP-Syntax supports a wp_syntax_init_geshi action hook to customize GeSHi
initialization settings. Blog owners can handle the hook in a hand-made plugin
or somewhere else like this:

<?php
add_action('wp_syntax_init_geshi', 'my_custom_geshi_styles');

function my_custom_geshi_styles(&$geshi)
{
    $geshi->set_brackets_style('color: #000;');
    $geshi->set_keyword_group_style(1, 'color: #22f;');
}
?>

This allows for a great possibility of different customizations. Be sure to
review the GeSHi Documentation.


Screenshots
FAQ
ChangeLog