Revision 5ada8632
Von Moritz Bunkus vor etwa 17 Jahren hinzugefügt
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
Die Option zum Setzen des Tag-Stils etwas verallgemeinert und dokumentiert.