1 package SL::Template::Plugin::KiviLatex;
4 use parent qw( Template::Plugin::Filter );
11 return $cached_instance ||= $class->SUPER::new(@_);
17 $self->install_filter($self->{ _ARGS }->[0] || 'KiviLatex');
23 my ($self, $text, $args) = @_;
24 return $::locale->quote_special_chars('Template/LaTeX', $text);
29 '<ul>' => "\\begin{itemize} ",
30 '</ul>' => "\\end{itemize} ",
31 '<ol>' => "\\begin{enumerate} ",
32 '</ol>' => "\\end{enumerate} ",
37 '<strong>' => "\\textbf{",
41 '<em>' => "\\textit{",
47 '<sub>' => "\\textsubscript{",
49 '<sup>' => "\\textsuperscript{",
51 '<br/>' => "\\newline ",
52 '<br>' => "\\newline ",
56 my ($self, $text, $args) = @_;
58 $text =~ s{ \r+ }{}gx;
59 $text =~ s{ \n+ }{ }gx;
60 $text =~ s{ (?:\ |\s)+ }{ }gx;
63 if (substr($_, 0, 1) eq '<') {
65 $html_replace{$_} || '';
68 $::locale->quote_special_chars('Template/LaTeX', HTML::Entities::decode_entities($_));
70 } split(m{(<.*?>)}x, $text);
72 return join('', @parts);
75 sub required_packages_for_html {
83 return 'SL::Template::Plugin::KiviLatex';