Die Option zum Setzen des Tag-Stils etwas verallgemeinert und dokumentiert.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 13 Sep 2007 15:42:35 +0000 (15:42 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 13 Sep 2007 15:42:35 +0000 (15:42 +0000)
SL/Template.pm
doc/dokumentenvorlagen-und-variablen.html

index 3439f52..f6afe69 100644 (file)
@@ -400,6 +400,52 @@ sub parse_first_line {
   return 1;
 }
 
+sub _parse_config_option {
+  my $self = shift;
+  my $line = shift;
+
+  $line =~ s/^\s*//;
+  $line =~ s/\s*$//;
+
+  my ($key, $value) = split m/\s*=\s*/, $line, 2;
+
+  if ($key eq 'tag-style') {
+    $self->set_tag_style(split(m/\s+/, $value, 2));
+  }
+}
+
+sub _parse_config_lines {
+  my $self  = shift;
+  my $lines = shift;
+
+  my ($comment_start, $comment_end) = ("", "");
+
+  if (ref $self eq 'LaTeXTemplate') {
+    $comment_start = '\s*%';
+  } elsif (ref $self eq 'HTMLTemplate') {
+    $comment_start = '\s*<!--';
+    $comment_end   = '>\s*';
+  } else {
+    $comment_start = '\s*\#';
+  }
+
+  my $num_lines = scalar @{ $lines };
+  my $i         = 0;
+
+  while ($i < $num_lines) {
+    my $line = $lines->[$i];
+
+    if ($line !~ m/^${comment_start}\s*config\s*:(.*)${comment_end}$/i) {
+      $i++;
+      next;
+    }
+
+    $self->_parse_config_option($1);
+    splice @{ $lines }, $i, 1;
+    $num_lines--;
+  }
+}
+
 sub parse {
   my $self = $_[0];
   local *OUT = $_[1];
@@ -412,7 +458,7 @@ sub parse {
   my @lines = <IN>;
   close(IN);
 
-  return 0 if (!$self->parse_first_line($lines[0]));
+  $self->_parse_config_lines(\@lines);
 
   my $contents = join("", @lines);
 
index 5516de8..b9ca939 100644 (file)
@@ -48,6 +48,9 @@ td {
   <li><a href="dokumentenvorlagen-und-variablen.html#zuordnung_dateinamen">
     Zuordnung von Dateinamen zu den Funktionen</a></li>
 
+  <li><a href="dokumentenvorlagen-und-variablen.html#tag_style">
+    Anfang und Ende der Tags ver&auml;ndern</a></li>
+
   <li><a href="dokumentenvorlagen-und-variablen.html#allgemeine_variablen">
     Allgemeine Variablen, die in allen Vorlagen vorhanden sind</a><br>
 
@@ -133,7 +136,11 @@ td {
  <p>Dies ist eine Auflistung der Standard-Dokumentenvorlagen und aller
   zur Bearbeitung verf&uuml;gbaren Variablen. Eine Variable wird in
   einer Vorlage durch ihren Inhalt ersetzt, wenn sie in der Form
-  <code>&lt;%variablenname%&gt;</code> verwendet wird.</p>
+  <code>&lt;%variablenname%&gt;</code> verwendet wird. F&uuml;r LaTeX-
+  und HTML-Vorlagen kann man die Form dieser Tags auch
+  <a href="dokumentenvorlagen-und-variablen.html#tag_style">
+   ver&auml;ndern</a>.
+ </p>
 
  <p>Fr&uuml;her wurde hier nur &uuml;ber LaTeX gesprochen. Inzwischen
   unterst&uuml;tzt Lx-Office aber auch OpenDocument-Vorlagen. Sofern
@@ -168,6 +175,36 @@ td {
    zum Inhaltsverzeichnis</a></small><br>
  <hr>
 
+ <h2><a name="tag_style">
+   Anfang und Ende der Tags ver&auml;ndern</a></h2>
+
+ <p>Der Standardstil f&uuml;r Tags sieht vor, dass ein Tag mit dem
+  Kleinerzeichen und einem Prozentzeichen beginnt und mit dem
+  Prozentzeichen und dem Gr&ouml;&szlig;erzeichen endet,
+  beispielsweise <code>&lt;%customer%&gt;</code>. Da diese Form aber
+  z.B. in LaTeX zu Problemen f&uuml;hren kann, weil das Prozentzeichen
+  dort Kommentare einleitet, kann pro HTML- oder
+  LaTeX-Dokumentenvorlage der Stil umgestellt werden.</p>
+
+ <p>Dazu werden in die Datei Zeilen geschrieben, die mit dem f&uuml;r
+  das Format g&uuml;ltigen Kommentarzeichen anfangen,
+  dann <code>config:</code> enthalten, die entsprechende Option setzen
+  und bei HTML-Dokumentenvorlagen mit dem Kommentarendzeichen
+  enden. Beispiel f&uuml;r LaTeX:</p>
+
+ <p><code>% config: tag-style=($ $)</code></p>
+
+ <p>Dies w&uuml;rde Lx-Office dazu veranlassen, Variablen zu ersetzen,
+  wenn sie wie folgt aussehen: <code>($customer$)</code>. Das
+  äquivalente Beispiel f&uuml;r HTML-Dokumentenvorlagen sieht so
+  aus:</p>
+
+ <p><code>&lt;!-- config: tag-stye=($ $)&gt;</code></p>
+
+ <small><a href="dokumentenvorlagen-und-variablen.html#inhaltsverzeichnis">
+   zum Inhaltsverzeichnis</a></small><br>
+ <hr>
+
  <h2><a name="zuordnung_dateinamen">
    Zuordnung von den Dateinamen zu den Funktionen</a></h2>