Source of template.plp
Back
  1. <(template.plp)>
  2. Choose: <br>
  3. <:

  4. BEGIN { $title = 'Documentation'; }

  5. print map qq{&#149; <a href="pod.plp?document=$_">$_</a><br>},
  6.     qw/PLP PLP::Functions PLP::Fields PLP::FAQ PLP::HowTo/;

  7. my %commands = (
  8.     head1   => '<h1>%</h1>',
  9.     head2   => '<h2>%</h2>',
  10.     over    => '<ul>',
  11.     back    => '</ul>',
  12.     item    => '<li><b>%</b></li>',
  13. );

  14. my %markup = (
  15.     B            => '<b>%</b>',
  16.     E            => '&%;',
  17.     C            => '<b><tt>%</tt></b>',
  18.     L            => '<i>%</i>',
  19. );

  20. $get{document} ||= 'PLP';

  21. {
  22.     my $dir = (glob 'files/PLP-*/lib')[-1];
  23.     $get{document} =~ s/[^\w:]//g;
  24.     $get{document} =~ s!::!/!g;
  25.     my $file = glob("$dir/$get{document}.p*") or last;
  26.     my $pod = ReadFile $file;
  27.     ($pod) = join '', $pod =~ /^=.*?\n=cut\b/smg;
  28.     $pod =~ s(([A-Z])<{$_} (.*?) >{$_}){
  29.         my $html = $markup{$1} || '%';
  30.         my $t = $2;
  31.         $t =~ s/(\W)/'&#' . ord($1) . ';'/ge;
  32.         $t =~ s/&#9;/'&nbsp;' x 8/ge;
  33.         $t =~ s/&#32;/&nbsp;/g;
  34.         $html =~ s/%/$t/;
  35.         $html;
  36.     }gem for reverse 2..6;
  37.     $pod =~ s(L<([^>]*)>){
  38.         my $t = $1;
  39.         $t =~ /^PLP/ ? qq{<a href="pod.plp?document=$t">$t</a>} : $t;
  40.     }gem;
  41.     $pod =~ s(([A-Z])<([^/][^>]*)>){
  42.         my $html = $markup{$1} || '%';
  43.         my $t = $2;
  44.         $t =~ s/(\W)/'&#' . ord($1) . ';'/ge;
  45.         $t =~ s/&#9;/'&nbsp;' x 8/ge;
  46.         $t =~ s/&#32;/&nbsp;/g;
  47.         $html =~ s/%/$t/;
  48.         $html;
  49.     }gem;
  50.     $pod =~ s(^=(\w+)[ \t]*(.*)){
  51.         my $html = $commands{$1} || '<div>%</div>';
  52.         my $t = $2;
  53.         $t =~ s/^\*//;
  54.         $html =~ s/%/$t/;
  55.         $html;
  56.     }gem;
  57.     $pod =~ s/^$/<p>/gm;
  58.     $pod =~ s(^([ \t].*)){
  59.         my $t = $1;
  60.         $t =~ s/(\W)/'&#' . ord($1) . ';'/ge;
  61.         $t =~ s/&#9;/'&nbsp;' x 8/ge;
  62.         $t =~ s/&#32;/&nbsp;/g;
  63.         '<tt>' . $t . '</tt><br>';
  64.     }gem;
  65.     print AutoURL($pod);
  66. }

  67. :>