File: makedoc.g

package info (click to toggle)
gap-laguna 3.9.7%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 404 kB
  • sloc: xml: 2,521; makefile: 20
file content (90 lines) | stat: -rw-r--r-- 3,518 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
###########################################################################
##
#W makedoc.g                The LAGUNA package           Olexandr Konovalov
##
###########################################################################

SetPackagePath("laguna",".");
LoadPackage("laguna");;

ExtractMyManualExamples:=function( pkgname, main, files )
local path, tst, i, s, basename, name, output, ch, a, location, pos, comment;
path:=Directory( 
        Concatenation(PackageInfo(pkgname)[1].InstallationPath, "/doc") );
Print("Extracting manual examples for ", pkgname, " package ...\n" );
tst:=ExtractExamples( path, main, files, "Chapter" );
Print(Length(tst), " chapters detected\n");
for i in [ 1 .. Length(tst) ] do 
  Print( "Chapter ", i, " : \c" );
  if Length( tst[i] ) > 0 then
    s := String(i);
    if Length(s)=1 then 
      # works for <100 chapters
      s:=Concatenation("0",s); 
    fi;
    basename:=Concatenation( LowercaseString(pkgname), s, ".tst" );
    name := Filename( 
              Directory( 
                Concatenation( PackageInfo(pkgname)[1].InstallationPath, 
                               "/tst" ) ), basename );
    output := OutputTextFile( name, false ); # to empty the file first
    SetPrintFormattingStatus( output, false ); # to avoid line breaks
    ch := tst[i];
    AppendTo(output, "# ", pkgname, ", chapter ",i,"\n");
    AppendTo(output, "#\n",
                     "# DO NOT EDIT THIS FILE - EDIT EXAMPLES IN THE SOURCE INSTEAD!\n",
                     "#\n",
                     "# This file has been autogenerated with GAP. It contains examples\n",
                     "# extracted from the documentation. Each example is preceded by the\n",
                     "# comment which points to the location of its source.\n",
                     "#\n");
    AppendTo(output, "gap> START_TEST( \"", basename, "\");\n\n");
    for a in ch do
      location := a[2][1];
      pos := PositionSublist(location,LowercaseString(pkgname));
      if pos <> fail then
        comment := location{[ pos+Length(pkgname)+1 .. Length(location) ]};
      else
        pos := PositionSublist(location,".//");
        comment := location{[ pos+3 .. Length(location) ]};
      fi;
      AppendTo(output, "# ", comment, ":", a[2][2], "-", a[2][3], a[1]);
    od;
    AppendTo(output, "gap> STOP_TEST(\"", basename, "\", 1 );\n");
    Print("extracted ", Length(ch), " examples \n");
  else
    Print("no examples \n" );    
  fi;  
od;
end;

###########################################################################

LAGUNAMANUALFILES:=[ 
"../PackageInfo.g"
];

MakeGAPDocDoc( "doc",     # path to the directory containing the main file
               "manual",  # the name of the main file (without extension)
                          # list of (probably source code) files relative 
                          # to path which contain pieces of documentation 
                          # which must be included in the document
               LAGUNAMANUALFILES, 
               "LAGUNA"
               );; 

# Copy the *.css and *.js files from the styles directory of the GAPDoc 
# package into the directory containing the package manual.
CopyHTMLStyleFiles( "doc" );

# Create the manual.lab file which is needed if the main manuals or another 
# package is referring to your package
GAPDocManualLab( "LAGUNA" );; 
 
ExtractMyManualExamples( "LAGUNA", "manual.xml", LAGUNAMANUALFILES );

QUIT;
###########################################################################
##
#E
##