IkiWiki::Plugin::syntax::Simple - Simple engine for syntax highlight


IkiWiki-Plugin-syntax documentation Contained in the IkiWiki-Plugin-syntax distribution.

Index


Code Index:

NAME

Top

IkiWiki::Plugin::syntax::Simple - Simple engine for syntax highlight

VERSION

Top

This documentation refers to IkiWiki::Plugin::syntax::Simple version 0.1

SYNOPSIS

Top

	use IkiWiki::Plugin::syntax::Simple;

    my $engine = IkiWiki::Plugin::syntax::Simple->new();

    my $htmlized_text = $engine->syntax_highlight(
                            source   =>  q(....),
                            language => q(pod),
                            linenumbers => 1,
                            );

DESCRIPTION

Top

This module provides a simple syntax highlight engine for use with ikiwiki on installations where don't install third party modules.

The code return the source text received without special CSS marks inside with the exception of the PRE html paragraph.

SUBROUTINES/METHODS

Top

build_plugin_info( )

Returns a hash with information about his capabilities.

can_syntax_from( )

This method returns always true because it don't make any real work with the source.

DIAGNOSTICS

Top

This module don't raise any exceptions.

CONFIGURATION AND ENVIRONMENT

Top

This module don't need any special configuration nor environment.

DEPENDENCIES

Top

IkiWiki::Plugin::syntax::base

BUGS AND LIMITATIONS

Top

There are no known bugs in this module. Please report problems to the author. Patches are welcome.

AUTHOR

Top

Víctor Moral <victor@taquiones.net>

LICENSE AND COPYRIGHT

Top


IkiWiki-Plugin-syntax documentation Contained in the IkiWiki-Plugin-syntax distribution.

package IkiWiki::Plugin::syntax::Simple;
use base qw(IkiWiki::Plugin::syntax::base);
use strict;
use warnings;
use Carp;
use utf8;
use English qw(-no_match_vars);

use HTML::Entities;

our $VERSION = '0.1';

sub can_syntax_from {
    my  $self   =   shift;

    ## and return a positive response (if it's text we can do it :-)
    return 1;
}

sub parse_and_html {
    my  $self   =   shift;

    my  $source =   $self->source();

    if ($self->language() =~ m{x?html}xmsi or 
        $source =~ m{<html>}xmsi) {
        $source = encode_entities($source);
    }
        
    $self->htmlized( $source );

    return;
}

sub build_plugin_info {
    my  $self   =   shift;

    return (        
            name        =>  q(Simple),
            version     =>  $VERSION,
            description =>  <<EOF,
Simple engine for basic installations without third party modules.
EOF
            special     =>  <<EOF,
If the source language matches "x?html" or the source contains a "<html>" string
the plugin uses the HTML::Entities::encode_entities() function.
EOF
            linenumbers =>  1,
            bars        =>  1,
            supported   =>  [
                    {   
                    language    =>  q(All),
                    description =>  q(All text contents),
                    fileext     =>  q(*),       
                    },
                ],
            );
}
                            
1;
__END__