X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FTemplate%2FPlugin%2FKiviLatex.pm;h=ca40971ce11a8657bf826763249daa4aed657951;hb=ae20c836befe77f5277b3df14b7cf9810836634b;hp=21725cba05fe5d26e25e5e1827dc8b0b6e3b72d3;hpb=277178ad7536a56f6984ad62cfa2cc9a95115e16;p=kivitendo-erp.git
diff --git a/SL/Template/Plugin/KiviLatex.pm b/SL/Template/Plugin/KiviLatex.pm
index 21725cba0..ca40971ce 100644
--- a/SL/Template/Plugin/KiviLatex.pm
+++ b/SL/Template/Plugin/KiviLatex.pm
@@ -58,6 +58,7 @@ sub filter_html {
$text =~ s{ \r+ }{}gx;
$text =~ s{ \n+ }{ }gx;
$text =~ s{ (?:\ |\s)+ }{ }gx;
+ $text =~ s{
| \s*
}{}gx; # Remove lists without items. Can happen with copy & paste from e.g. LibreOffice.
my @parts = map {
if (substr($_, 0, 1) eq '<') {
@@ -81,3 +82,98 @@ EOLATEX
}
return 'SL::Template::Plugin::KiviLatex';
+__END__
+
+=pod
+
+=encoding utf8
+
+=head1 NAME
+
+SL::Template::Plugin::KiviLatex - Template::Toolkit plugin for
+escaping text for use in LaTeX templates
+
+=head1 SYNOPSIS
+
+From within a LaTeX template. Activate both Template::Toolkit in
+general and this plugin in particular; must be located before
+C<\begin{document}>:
+
+ % config: use-template-toolkit=1
+ % config: tag-style=$( )$
+ $( USE KiviLatex )$
+
+Later escape some text:
+
+ $( KiviLatex.format(longdescription) )$
+
+=head1 FUNCTIONS
+
+=over 4
+
+=item C
+
+Escapes characters in C<$text> with the appropriate LaTeX
+constructs. Expects normal text without any markup (no HTML, no XML
+etc). Returns the whole escaped text.
+
+=item C
+
+Converts HTML markup in C<$html> to the appropriate LaTeX
+constructs. Only the following HTML elements are supported:
+
+=over 2
+
+=item * C, C â bold text
+
+=item * C, C â italic text
+
+=item * C â underlined text
+
+=item * C â striked out text
+
+=item * C, C â subscripted and superscripted text
+
+=item * C, C, C- â unordered lists (converted to an itemized
+list), ordered lists (converted to enumerated lists) and their list
+items
+
+=item * C
, C
â Paragraph markers and line breaks
+
+=back
+
+This function is tailored for working on the input of CKEditor, not on
+arbitrary HTML content. It works nicely in tandem with the
+Rose::DB::Object helper functions C<â¦_as_restricted_html> (see
+L).
+
+Attributes are silently removed and ignored. All other markup and the
+normal text are escaped the same as in L
.
+
+=item C
+
+=item C
+
+Initializes the plugin. Automatically called by Template::Toolkit when
+the plugin is loaded.
+
+=item C
+
+Returns LaTeX code loading packages that are required for the
+formatting done with L. This function must be called and
+its output inserted before the C<\begin{document}> line if that
+function is used within the document.
+
+It is not required for normal text escaping with L.
+
+=back
+
+=head1 BUGS
+
+Nothing here yet.
+
+=head1 AUTHOR
+
+Moritz Bunkus Em.bunkus@linet-services.deE
+
+=cut