emphtm.gms : Generates HTM emplib library files

Description

Generates HTM emplib library files

GAMS Development Corporation, emplib Tool Box.

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

  The file empmod.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 EMP library


Main file : emphtm.gms   includes :  empmod.inc [html]

$title 'Generates HTM emplib library files' (EMPHTM,SEQ=17);

$ontext
Generates HTM emplib library files

GAMS Development Corporation, emplib Tool Box.

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

  The file empmod.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 emplib '%gams.u1%'

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

scalar first;

$offlisting
$include %emplib%empmod.inc
$onlisting
*
*  model htm files
*
put htm; htm.pw=1024; htm.lcase=1;
loop(sm(s,m),
   put_utilities 'ren'/ '%emplib%' 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'/ '%emplib%' m.tl:0 '.' s.tl:0;
   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.tl );
   htm.lcase=1;
   loop(ts(t,s)$(not tss(t,s)), put ' ' t.tl );
   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="%emplib%' m.tl:0 '.' s.tl:0 '" -->'
* Either we do the < > replacement or we use plaintext
*       / '</pre>'
*       / '<!--#include virtual="/footer.html" -->'
*       / '</html>'
   );
*
*  include htm files
*
loop(inc,
   put_utilities 'ren'/ '%emplib%' 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="%emplib%' inc.tl:0 '.inc" -->'
       / '</pre>'
       / '<!--#include virtual="/footer.html" -->'
       / '</html>'  );


*
*  seqindx
*
seqindx.lcase=1;
put seqindx
 '<HTML> <HEAD> <TITLE> GAMS EMPlib Library Chronological Index</TITLE></HEAD>'
       / '<!--#include virtual="/header.html" -->'
/'<H1>EMPlib Library Chronological Index</H1>'
/'This is a listing of the EMPlib 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.tl: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 EMPlib Library Alphabetical Index</TITLE></HEAD>'
/ '<!--#include virtual="/header.html" -->'
/'<H1>EMPlib Library Alphabetical Index</H1>'
/'This is an alphabetical listing of the models available'
/'in the on-line EMPlib 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.tl:0 );
      alfindx.lcase=0;
         put   '</TD>'
             / '</TR>';
         alfindx.lcase=1) ));
put / '</TABLE>'
    / '<!--#include virtual="/footer.html" -->'
    / '</html>';