package Kwiki::Formatter::Emphasis; use warnings; use strict; use Kwiki::Plugin '-Base'; use mixin 'Kwiki::Installer'; our $VERSION = '0.01'; const class_title => 'Emphasis'; const class_id => 'wikiemphasis'; sub register { my $registry = shift; $registry->add(preload => $self->class_id); $registry->add(hook => 'formatter:all_phrases', post => 'add_emphasis_to_list', ); } sub init { super; my $formatter = $self->hub->load_class('formatter'); $formatter->table->{emphasis} = 'Kwiki::Formatter::Emphasis::Phrase'; $formatter->table->{em} = 'Kwiki::Formatter::Italicize'; } sub add_emphasis_to_list { return [('emphasis', @{$_[-1]->returned})]; } package Kwiki::Formatter::Emphasis::Phrase; use Spoon::Base -Base; use Kwiki ':char_classes'; use base 'Spoon::Formatter::Phrase'; const formatter_id => 'emphasis'; const pattern_start => qr/(^|(?<=[^$ALPHANUM]))\~(?=\S[^\~]*\~(?=\W|\z))/; const pattern_end => qr/\~(?=[^$ALPHANUM]|\z)/; const html_start => ""; const html_end => ""; package Kwiki::Formatter::Italicize; use Spoon::Base -Base; use base 'Spoon::Formatter::Phrase'; use Kwiki ':char_classes'; const formatter_id => 'em'; const pattern_start => qr/(^|(?<=[^$ALPHANUM]))\/(?=\S[^\/]*\/(?=\W|\z))/; const pattern_end => qr/\/(?=[^$ALPHANUM]|\z)/; const html_start => ""; const html_end => ""; package Kwiki::Formatter::Emphasis; 1; # End of Kwiki::Formatter::Emphasis __DATA__ =head1 NAME Kwiki::Formatter::Emphasis - Will add new syntax for emphasizing text and fix a bug in the Kwiki core that will make the built-in italic syntax actually italicize the text. =head1 SYNOPSIS ~foo~ Produces foo /foo/ Produces foo =head1 AUTHOR Eric Anderson, C<< >> =head1 COPYRIGHT & LICENSE Copyright 2006 CorData, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html