From jpff@codemist.co.uk Thu Jul 08 17:49:17 2004
Date: Thu, 8 Jul 2004 17:49:13 +0100
From: jpff@codemist.co.uk
To: acn1@cam.ac.uk
Subject: Not tested
but I think the changed to add logos to help are as below. Not sure
it deals with the top node but I have not found where that is done.
Also not sure if one can escape " in a string in Standard LISP, or
whether one needs to use the %c or equivalent stuff. May be that some
of the " as not needed.
==John
------------------------------------------------------------------------
in help/htmlhelp2.red
symbolic procedure emit_node_title(u,dummy,type);
<<fonton();
myterpri();
html_open "TITLE";
textout_name u;
html_close "TITLE";
html_close "A"; % from emit_node_label
myterpri();
%%% Two new lines
channelprintf(outfile!*,"<p align=\"center\"><img src=\"redlogo.gif\" width=621 height=60 border=0 alt=\"REDUCE\"></p>");
myterpri();
%%% End of insert
channelprintf(outfile!*,"<b><a href=%w>INDEX</a></b><p><p>%n",indexfilename);
>>;
and later in same file
symbolic procedure html_indexfile();
begin scalar u,v,q,r,s,rr,!*lower;
prin2t "..... compiling html index file";
s := for each q in node_file_labels join
if pairp car q then {sort_term car q . q};
s := sort(s,'html_indexfile_sort);
% remove trivial entries
r:=s;
while r do
<<u:=car r; r:=cdr r;
if car u member
'((c o m m a n d)
(c o n c e p t)
(c o n s t a n t)
(d e c l a r a t i o n)
(i n t r o d u c t i o n)
(o p e r a t o r)
(p a c k a g e)
(s w i t c h)
(v a r i a b l e)
)
then s:=deletip(u,s);
>>;
% remove duplicates
r:=s;
while r and cdr r do
<<u:=car r; rr:=r:=cdr r;
while rr and html_indexfile_subsetp(car u,car (v:=car rr)) do
<<if cddr u = cddr v then s:=deletip(u,s); rr:=cdr rr>>;
>>;
open_node_file "index";
channelprintf(outfile!*, "<title>%w search index</title>%n",rootname());
% channelprintf(outfile!*, "<dl compact><isindex>%n");
channelprintf(outfile!*, "<dl compact>%n");
%%% Two new lines
channelprintf(outfile!*,"<p align=\"center\"><img src=\"redlogo.gif\" width=621 height=60 border=0 alt=\"REDUCE\"></p>");
myterpri();
%%% End of insert
channelprintf(outfile!*, "<menu>%n");
for each x in s do
<<channelprin2(outfile!*, "<dt>");
for each c in cadr x do
if c='!_ then channelprin2(outfile!*," ") else
if not(c='!\) then channelprin2(outfile!*,c);
channelprintf(outfile!*, ": <a href=%w>",cddr x);
q := cdr assoc(cddr x,labels2nodes);
for each c in q do
if c='!_ then channelprin2(outfile!*," ") else
if not(c='!\) then channelprin2(outfile!*,c);
channelprin2t(outfile!*, "</a>");
>>;
channelprintf(outfile!*, "</menu>%n");
close outfile!*;
outfile!*:=nil;
end;