Merge von 588 aus unstable:
authorStephan Köhler <s.koehler@linet-services.de>
Thu, 24 Nov 2005 16:42:13 +0000 (16:42 +0000)
committerStephan Köhler <s.koehler@linet-services.de>
Thu, 24 Nov 2005 16:42:13 +0000 (16:42 +0000)
HTML-Markup zulassen und in das entsprechende Ausgabeformat (HTML oder LaTeX) umsetzen. Unterstuetzt werden <b>...</b> (fett), <i>...</i> (
kursiv), <u>...</u> (unterstrichen) und nur fuer HTML <s>...</s> (durchgestrichen).

SL/Form.pm

index 62a76e7..9253f41 100644 (file)
@@ -1035,6 +1035,32 @@ sub format_string {
     map { $self->{$_} =~ s/$key/$replace{$format}{$key}/g; } @fields;
   }
 
+  # Allow some HTML markup to be converted into the output format's
+  # corresponding markup code, e.g. bold or italic.
+  if ('html' eq $format) {
+    my @markup_replace = ('b', 'i', 's', 'u');
+
+    foreach my $key (@markup_replace) {
+      map({ $self->{$_} =~ s/\&lt;(\/?)${key}\&gt;/<$1${key}>/g } @fields);
+    }
+
+  } elsif ('tex' eq $format) {
+    my %markup_replace = ('b' => 'textbf',
+                          'i' => 'textit',
+                          'u' => 'underline');
+
+    foreach my $field (@fields) {
+      if ($field =~ /descrip/) {
+        print(STDERR "QFT: ${field}: " . $self->{$field} . "\n");
+      }
+      foreach my $key (keys(%markup_replace)) {
+        my $new = $markup_replace{$key};
+        $self->{$field} =~
+          s/\$\<\$${key}\$\>\$(.*?)\$<\$\/${key}\$>\$/\\${new}\{$1\}/gi;
+      }
+    }
+  }
+
   $main::lxdebug->leave_sub();
 }