Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 5ada8632

Von Moritz Bunkus vor etwa 17 Jahren hinzugefügt

  • ID 5ada8632263f93bfaa78d9136cc815fbeee95ead
  • Vorgänger e032c24a
  • Nachfolger 6555d5f7

Die Option zum Setzen des Tag-Stils etwas verallgemeinert und dokumentiert.

Unterschiede anzeigen:

SL/Template.pm
400 400
  return 1;
401 401
}
402 402

  
403
sub _parse_config_option {
404
  my $self = shift;
405
  my $line = shift;
406

  
407
  $line =~ s/^\s*//;
408
  $line =~ s/\s*$//;
409

  
410
  my ($key, $value) = split m/\s*=\s*/, $line, 2;
411

  
412
  if ($key eq 'tag-style') {
413
    $self->set_tag_style(split(m/\s+/, $value, 2));
414
  }
415
}
416

  
417
sub _parse_config_lines {
418
  my $self  = shift;
419
  my $lines = shift;
420

  
421
  my ($comment_start, $comment_end) = ("", "");
422

  
423
  if (ref $self eq 'LaTeXTemplate') {
424
    $comment_start = '\s*%';
425
  } elsif (ref $self eq 'HTMLTemplate') {
426
    $comment_start = '\s*<!--';
427
    $comment_end   = '>\s*';
428
  } else {
429
    $comment_start = '\s*\#';
430
  }
431

  
432
  my $num_lines = scalar @{ $lines };
433
  my $i         = 0;
434

  
435
  while ($i < $num_lines) {
436
    my $line = $lines->[$i];
437

  
438
    if ($line !~ m/^${comment_start}\s*config\s*:(.*)${comment_end}$/i) {
439
      $i++;
440
      next;
441
    }
442

  
443
    $self->_parse_config_option($1);
444
    splice @{ $lines }, $i, 1;
445
    $num_lines--;
446
  }
447
}
448

  
403 449
sub parse {
404 450
  my $self = $_[0];
405 451
  local *OUT = $_[1];
......
412 458
  my @lines = <IN>;
413 459
  close(IN);
414 460

  
415
  return 0 if (!$self->parse_first_line($lines[0]));
461
  $self->_parse_config_lines(\@lines);
416 462

  
417 463
  my $contents = join("", @lines);
418 464

  

Auch abrufbar als: Unified diff