apihtm.gms : Generates HTM apilib library files

Description

Generates HTM apilib library files

GAMS Development Corporation, apilib Tool Box.

  Generates all .htm related files for the set of models
  found in apimod.inc. Uses unpublished and
  unsupported PUT_Utilities features.

  The file apimod.inc is the master file for all other
  derived files.

  Files generated:

     seqindx.htm
     alfindx.htm
     *.htm  for all model and include files


Small Model of Type : GAMS


Category : GAMS API library


Main file : apihtm.gms

$title 'Generates HTM apiplib library files' (APIHTM,SEQ=45);

$ontext
Generates HTM apilib library files

GAMS Development Corporation, apilib Tool Box.

  Generates all .htm related files for the set of models
  found in apimod.inc. Uses unpublished and
  unsupported PUT_Utilities features.

  The file apimod.inc is the master file for all other
  derived files.

  Files generated:

     seqindx.htm
     alfindx.htm
     *.htm  for all model and include files

$offtext

$setglobal apilib '%gams.u1%'

files htm     HTML file handle        / htm.htm /
      seqindx HTML sequence index     / '%apilib%seqindx.htm' /
      alfindx HTML alpha index        / '%apilib%alfindx.htm' /

scalar first;

$offlisting
$include %apilib%apimod.inc
$onlisting
*
*  model htm files
*
put htm; htm.pw=1024; 
*htm.lcase=1;
loop(sm(s,m),
   put_utilities 'ren'/ '%apilib%' m.tl:0 '.htm';
   put   '<html> <head> <title>' m.tl:0 '.gms</title>'
       / '<!--#include virtual="/header.html" -->'
       / '<h2>'m.tl:0 '.gms : ' m.te(m) '</h2>';
   put / '<hr>';
   put_utilities 'htm'/ '%apilib%' m.tl:0 '.gms';
   put / '<hr>';
   if(big(s), put 'Large ' else put 'Small ' );
   put 'Model of Type';
   put$(sum(ts(t,s),1)>1) 's';
   put ':';
*   htm.lcase=2;
   loop(tss(t,s), put ' ' t.te(t) );
*   htm.lcase=1;
   loop(ts(t,s)$(not tss(t,s)), put ' ' t.te(t) );
   first = 1;
   loop(incmap(inc,s),
      if(first,
         put  '&nbsp;&nbsp;&nbsp;Includes:'; first = 0;);
      put '&nbsp; <a href="' inc.tl:0 '.htm">' inc.tl:0 '.inc</a>');
   put   '<hr>'
       / '<plaintext>'
       / '<!--#include virtual="%apilib%' m.tl:0 '.gms" -->'
* Either we do the < > replacement or we use plaintext
*       / '</pre>'
*       / '<!--#include virtual="/footer.html" -->'
*       / '</html>'
   );
*
*  include htm files
*
loop(inc,
   put_utilities 'ren'/ '%apilib%' inc.tl:0 '.htm';
   put   '<html> <head> <title>' inc.tl:0 '.inc</title>'
       / '<!--#include virtual="/header.html" -->'
       / '<h2>'inc.tl:0 '.inc : ' inc.te(inc) '</h2>'
       / '<hr> <p> Used by:';
   loop{(incmap(inc,s),sm(s,m)),
     put '&nbsp; <a href="' m.tl:0 '.htm">' m.tl:0 '.gms</a>';
     if {(htm.cc > 70),
       put /;
     };
   };
   put / '</p> <hr>'
       / '<pre>'
       / '<!--#include virtual="%apilib%' inc.tl:0 '.inc" -->'
       / '</pre>'
       / '<!--#include virtual="/footer.html" -->'
       / '</html>'  );


*
*  seqindx
*
*seqindx.lcase=1;
put seqindx
 '<HTML> <HEAD> <TITLE> GAMS APIlib Library Chronological Index</TITLE></HEAD>'
       / '<!--#include virtual="/header.html" -->'
/'<H1>APIlib Library Chronological Index</H1>'
/'This is a listing of the APIlib library in order of'
/'submission date. The newest ones are at the top.'
/'<P>'
/'There is also an '
/'an <A HREF="alfindx.htm">alphabetical index</A>.'
/'<P>'
/ '<TABLE>'
/ '<TR>'
/ '    <TH ALIGN="LEFT">No</TH>'
/ '    <TH ALIGN="LEFT">Model</TH>'
/ '    <TH ALIGN="LEFT">Description</TH>'
/ '    <TH ALIGN="LEFT">Type</TH>'
/ '</TR>'

loop((srev(ss,s),sm(s,m)),
   put / '<TR>'
       / '    <TD>',s.tl:0,'</TD>'
       / '    <TD><A HREF="',m.tl:0,'.htm">',m.tl:0,'</A></TD>'
       / '    <TD>',m.te(m):0,'</TD>'
       / '    <TD>';
*   seqindx.lcase=2;
   loop(tss(t,s),
      put t.te(t):0 );
*   seqindx.lcase=0;
   put   '</TD>'
       / '</TR>';
*   seqindx.lcase=1; 
);
put / '</TABLE>'
    / '<!--#include virtual="/footer.html" -->'
    / '</html>';


*
*  alfindx
*
*alfindx.lcase=1;
put alfindx
 '<HTML> <HEAD><TITLE> GAMS APIlib Library Alphabetical Index</TITLE></HEAD>'
/ '<!--#include virtual="/header.html" -->'
/'<H1>APIlib Library Alphabetical Index</H1>'
/'This is an alphabetical listing of the models available'
/'in the on-line APIlib library.'
/'There is also a '
/'a <A HREF="seqindx.htm">chronological index</A>.'
/'<P><b>Shortcuts:</b> ';
*alfindx.lcase=2;
loop (letters,
  put alfindx '<A HREF="#' letters.tl:0 '"> ' letters.tl:0   '</A>' /
);
*alfindx.lcase=1;
put alfindx
/'<P><TABLE>'
/'<TR>'
/'    <TD></TD>'
/'    <TH ALIGN="LEFT">Model</TH>'
/'    <TH ALIGN="LEFT">Description</TH>'
/'    <TH ALIGN="LEFT">Type</TH>'
/ '</TR>'

loop(m,
   if(letters(m),
*      alfindx.lcase=2;
      put /'<TR>'
          /' <TD></TD>'
          /'<TH COLSPAN=4 ALIGN="LEFT"><A NAME="'m.tl:0'">',m.tl:0,'</TH>'
          /'</TR>';
*      alfindx.lcase=1;
   else
      put / '<TR>'
*                <TD><IMG SRC="/pics/new.gif"></TD>
          / '    <TD></TD>'
          / '    <TD><A HREF="',m.tl:0,'.htm">',m.tl:0,'</A></TD>'
          / '    <TD>',m.te(m):0,'</TD>'
          / '    <TD>';
*      alfindx.lcase=2;
      loop(sm(s,m),
         loop(tss(t,s),
            put t.te(t):0 );
*      alfindx.lcase=0;
         put   '</TD>'
             / '</TR>';
*         alfindx.lcase=1
         ) ));
put / '</TABLE>'
    / '<!--#include virtual="/footer.html" -->'
    / '</html>';