SL::HTML::Strip: immer Leerzeichen zwischen Textenteilen lassen
authorMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Nov 2021 13:05:18 +0000 (14:05 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Wed, 10 Nov 2021 15:07:50 +0000 (16:07 +0100)
SL/HTML/Util.pm

index f68fb0a..a54425d 100644 (file)
@@ -27,7 +27,7 @@ sub strip {
   if (!%stripper) {
     %stripper = ( parser => HTML::Parser->new );
 
-    $stripper{parser}->handler(text => sub { $stripper{text} .= $_[1]; });
+    $stripper{parser}->handler(text => sub { $stripper{text} .= ' ' . $_[1]; });
   }
 
   $stripper{text} = '';
@@ -35,6 +35,8 @@ sub strip {
   $stripper{parser}->eof;
 
   $stripper{text} =~ s{\&([^;]+);}{ $entities{$1} || "\&$1;" }eg;
+  $stripper{text} =~ s{^ +| +$}{}g;
+  $stripper{text} =~ s{ {2,}}{ }g;
 
   return delete $stripper{text};
 }