var lien,jmp,signet,Titre,Nom,texte,TitreListe,NiveauTitre,cssTitre: string;
i,nbr,j:integer;
Skip :TStringList;
iSkip,nSkip:integer;
okSkip:boolean;
Level,ALevel:integer;
FlagLi:boolean;
name,cssClass:string;
TypeListe:string;
begin
//skip contient les noms des signets à ne pas reprendre
Skip := TStringList.create;
Skip.text := GetParam('Skip','');
nSkip := Skip.count-1;

if GetParam('Numeroter','false')='true' then TypeListe:='ol' else TypeListe:='ul';

TitreListe := GetParam('Titre','');
NiveauTitre:= GetParam('NiveauTitre','2');
cssTitre := GetParam('cssTitre','');

Name := GetParam('id','');
if name<>'' then name:=' id="'+Name+'"';
cssClass := GetParam('css','');
if cssClass<>'' then cssClass := ' class="'+cssClass+'"';

Lien := '<<MCR(JI(qchPath,`%s>%s')>>+<<FNT(NUMBER.-,-,-,-:#39)>>+<<FNT(STRING.-,-,-,-:'):%s)>>';


// Titre & nom de la rubrique
Titre := GetTitre;
Nom := GetNom;

// obtenir le nombre de signet de la rubrique
nbr := GetSignetCount(Titre);

if nbr>0 then
begin
// début de la liste
write('<<WEB(<div')>>+name+cssClass+<<FNT(STRING.-,-,-,-:'>)>>');

if TitreListe<>'' then
begin
if Condition('_HTML_') then
begin
write('<<WEB(<h')>>+NiveauTitre);
<<FNT(KEYWORD.-,-,-,-:if)>> cssTitre<><<FNT(STRING.-,-,-,-:'')>> <<FNT(KEYWORD.-,-,-,-:then)>> <<FNT(KEYWORD.-,-,-,-:write)>>(<<FNT(STRING.-,-,-,-:' class="')>>+cssTitre+<<FNT(STRING.-,-,-,-:'"')>>);
<<FNT(KEYWORD.-,-,-,-:write)>>(<<FNT(STRING.-,-,-,-:'>)>>'
+TitreListe);
write('<<WEB(</h')>>+NiveauTitre+<<FNT(STRING.-,-,-,-:'>)>>');
end else writeln('<<FNT(')>>+cssTitre+<<FNT(STRING.-,-,-,-:'.-,14,-,G:')>>+TitreListe+<<FNT(STRING.-,-,-,-:')>>');
end;

write('<<WEB(')>>+TypeListe+<<FNT(STRING.-,-,-,-:')>>');

Level := 0;
ALevel := 0;
FlagLI := false;
// pour chaque signet, un bouton à son nom et lié sur lui
for i:=0 to nbr-1 do
begin
signet := GetSignetOf(Titre,i);
if (signet<>'') then
begin

// vérifier que le signet est autorisé
okSkip := false;
for iSkip := 0 to nSkip do
if (Match(SKip.strings[iSkip],Signet)=true) then okSkip := true;

if not okSkip then
begin
Level := 0;
texte := signet ;
// déterminer le niveau, indiqué par les espaces en début du signet
while GetChar(texte,1)=' ' do
begin
Level := Level + 1;
texte := copy(texte,2,length(signet));
end;

if Level>ALevel then
begin
writeln('<<WEB(<')>>+TypeListe+<<FNT(STRING.-,-,-,-:'>)>>');
end else if Level<ALEvel then
begin
while ALevel>0 do
begin
ALevel := ALevel-1;
writeln('<<WEB(</li>)>>');
writeln('<<WEB(</')>>+TypeListe+<<FNT(STRING.-,-,-,-:'>)>>');
end;
end;
ALevel := Level;
for j:=1 to Level do write(' ');
write('<<WEB(li)>> ');
write(Format(Lien,[nom,signet,texte]));
if FlagLI then writeln('<<WEB(</li>)>>');
FlagLI := true;


end;
end;
end;

while ALevel>0 do
begin
ALevel := ALevel-1;
writeln('<<WEB(</li>)>>');
writeln('<<WEB(</')>>+TypeListe+<<FNT(STRING.-,-,-,-:'>)>>');
end;


writeln('<<WEB(</')>>+TypeListe+<<FNT(STRING.-,-,-,-:'>)>>');
writeln('<<WEB(</div>)>>');

Skip.free;
end;
end;
end.

Sommaire