NAME

Statocles::Plugin::Highlight - Highlight code and configuration syntax

VERSION

version 0.098

SYNOPSIS

# --- Configuration
# site.yml
---
site:
    class: Statocles::Site
    args:
        plugins:
            highlight:
                $class: Statocles::Plugin::Highlight
                $args:
                    style: default

# --- Usage
<%= highlight perl => begin %>
print "Hello, World!\n";
<% end %>

DESCRIPTION

This plugin adds the highlight helper function to all templates and content documents, allowing for syntax highlighting of source code and configuration blocks.

ATTRIBUTES

style

The style to use, which corresponds to a stylesheet file in your theme's /plugin/highlight directory without the trailing .css. Defaults to "default", which refers to the default.css file.

The styles included by default are:

  • default

  • solarized-light

  • solarized-dark

METHODS

highlight

%= highlight $type => $content

Highlight the given $content using the given $type syntax.

The list of supported syntaxes are in the SUPPORTED SYNTAX section, below.

To highlight a block of code, use begin/end:

%= highlight Perl => begin
use strict;
use warnings;
print "Hello, World!\n";
% end

To highlight an included file, use the include helper:

%= highlight Perl => include 'test.pl'

The highlight function adds both pre and code tags.

<p>This example Perl code prints the string "Hello, World" to the screen:</p>
%= highlight Perl => 'print "Hello, World\n"'

We can override the style we want by passing in a -style option:

%= highlight -style => 'solarized-dark', Perl => begin
print "Hello, World!\n";
% end

register

Register this plugin with the site. Called automatically.

SUPPORTED SYNTAX

All of the syntax types supported by the Syntax::Highlight::Engine::Kate Perl module are supported by this module:

.desktop                ferite                  PHP/PHP
4GL                     Fortran                 PicAsm
4GL-PER                 FreeBASIC               Pike
ABC                     GDL                     PostScript
Ada                     GLSL                    POV-Ray
AHDL                    GNU Assembler           progress
Alerts                  GNU Gettext             Prolog
ANSI C89                Haskell                 PureBasic
Ansys                   HTML                    Python
Apache Configuration    IDL                     Quake Script
Asm6502                 ILERPG                  R Script
ASP                     Inform                  RenderMan RIB
AVR Assembler           INI Files               REXX
AWK                     Intel x86 (NASM)        RPM Spec
BaseTest                Java                    RSI IDL
BaseTestchild           Javadoc                 Ruby
Bash                    JavaScript              Sather
BibTeX                  JavaScript/PHP          Scheme
C                       JSP                     scilab
C#                      Kate File Template      SGML
C++                     KBasic                  Sieve
Cg                      LaTeX                   SML
CGiS                    LDIF                    Spice
ChangeLog               Lex/Flex                SQL
Cisco                   LilyPond                SQL (MySQL)
Clipper                 Literate Haskell        SQL (PostgreSQL)
CMake                   Logtalk                 Stata
ColdFusion              LPC                     TaskJuggler
Common Lisp             Lua                     Tcl/Tk
Component-Pascal        M3U                     TI Basic
CSS                     MAB-DB                  txt2tags
CSS/PHP                 Makefile                UnrealScript
CUE Sheet               Mason                   Velocity
D                       Matlab                  Verilog
Debian Changelog        MIPS Assembler          VHDL
Debian Control          Modula-2                VRML
de_DE                   Music Publisher         Wikimedia
Diff                    nl                      WINE Config
Doxygen                 Objective Caml          x.org Configuration
E Language              Objective-C             xHarbour
Eiffel                  Octave                  XML
Email                   Pascal                  xslt
en_US                   Perl                    yacas
Euphoria                PHP (HTML)              Yacc/Bison

ATTRIBUTION

The default, solarized-light, and solarized-dark styles are taken from the Highlight.js project, and are licensed under the BSD license.

SEE ALSO

Syntax::Highlight::Engine::Kate

The underlying syntax highlighter powering this plugin

AUTHOR

Doug Bell <preaction@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2016 by Doug Bell.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.