createdoc.pl.svn-base
上传用户:market2
上传日期:2018-11-18
资源大小:18786k
文件大小:2k
源码类别:

外挂编程

开发平台:

Windows_Unix

  1. #!/usr/bin/env perl
  2. # Documentation extractor. Extracts documentation from comments from .pm files and put them in HTML files.
  3. use strict;
  4. use warnings;
  5. use File::Spec;
  6. use FindBin;
  7. use Extractor;
  8. use Writer;
  9. our @modules;
  10. open(F, "< modules.txt");
  11. foreach (<F>) {
  12. s/[rn]//;
  13. next if ($_ eq "");
  14. my $package = $_;
  15. my $file = "../$_.pm";
  16. $file =~ s/::///g;
  17. Extractor::addModule($file, $package);
  18. push @modules, $package;
  19. }
  20. close F;
  21. foreach (values %Extractor::modules) {
  22. Writer::writeModuleHTML($_);
  23. }
  24. writeContentTable();
  25. sub error {
  26. print STDERR "** Error: @_";
  27. }
  28. sub writeContentTable {
  29. my $html;
  30. my $f;
  31. if (!open($f, "< $FindBin::Bin/data/index-template.html")) {
  32. error "Unable to open $FindBin::Bin/data/index-template.htmln";
  33. exit 1;
  34. }
  35. local($/);
  36. $html = <$f>;
  37. close($f);
  38. sub writeModulesList {
  39. my ($pattern, $negative) = @_;
  40. my $list = '';
  41. foreach my $package (@modules) {
  42. next unless (defined $pattern && ( (!$negative && $package =~ /$pattern/) || ($negative && $package !~ /$pattern/) ));
  43. my $file = $Extractor::modules{$package}{htmlFile};
  44. $list .= "<tr onclick="location.href='$file';">n" .
  45. "t<td class="moduleName"><a href="$file">$package</a></td>n" .
  46. "t<td class="moduleDesc">$Extractor::modules{$package}{name}</td>n" .
  47. "</tr>";
  48. }
  49. return $list;
  50. }
  51. $html =~ s/@MODIFIED@/gmtime/ge;
  52. $html =~ s/@MODULES@/&writeModulesList('^(Base|Utils::|Interface::Wx)', 1)/ge;
  53. $html =~ s/@UTILS_MODULES@/&writeModulesList('^(Base|Utils::)')/ge;
  54. $html =~ s/@WXMODULES@/&writeModulesList('^Interface::Wx')/ge;
  55. if (!open($f, "> srcdoc/index.html")) {
  56. error "Unable to write to srcdoc/index.htmln";
  57. exit 1;
  58. }
  59. print $f $html;
  60. close($f);
  61. }