<!-- $Id: deslist.txt v7.1 20/12/2025 06:45:09 $ -->
<!-- Copyright (c) 1998-2007 INRIA -->
<!DOCTYPE html>
<html lang="%lang;">
<head>
  <title>%nn;
    %apply;a_of_b_gr_eq_lev%with;
      [*descendants]%nn;
    %and;
      %if;(public_name!="")%public_name;%else;%first_name;%end;
      %if;(qualifier!="") %qualifier;%end;
      %sp;%surname;
    %end;
  </title>
  <meta name="robots" content="none">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="shortcut icon" href="%images_prefix;favicon_gwd.png">
%include;css
</head>
<body%body_prop;>
<div class="container">
%message_to_wizard;
%include;hed
%include;menubar
%include;buttons
%include;perso_utils

%let;l_v;%if;(bvar.max_desc_level="")%apply;min(e.v, max_desc_level, 12)
  %else;%apply;min(e.v, max_desc_level, bvar.max_desc_level)%end;
%in;

%define;tothegen(xx)
  [upto the %s generation:::xx]%nn;
%end;

%define;togen(xx)
  %if;(xx=0)[*specify::generation/generations]0%nn;
  %elseif;(xx=1)[to the children]%nn;
  %elseif;(xx=2)[to the grandchildren]%nn;
  %elseif;(xx=3)[to the great-grandchildren]%nn;
  %else;
    %apply;tothegen%with;
      %apply;nth([nth (generation)], xx)
    %end;
  %end;
%end;
<h1 class="h2">%nn;
  %apply;a_of_b_gr_eq_lev%with;
    [*descendants]%nn;
  %and;
    %if;(public_name!="")%public_name;%else;%first_name;%end;
    %if;(qualifier!="") <em>%qualifier;</em>%end;
    %sp;%surname;
    %if;(alias!="") <em>(%alias;)</em>%end;
  %end;
  %sp;%apply;togen(l_v)
</h1>

%define;link(xx)
  %if;(e.cgl="on")%xx;%else;<a href="%prefix;%xx.access;">%xx;</a>%end;
  %xx.title;%xx.dates;
%end;

%define;somebody_long_info(xx)
  %if;xx.has_nobility_titles;
   %foreach;xx.nobility_title;, %nobility_title;%end;
  %end;
  %if;xx.has_occupation;, %xx.occupation;%end;
  %if;(xx.has_birth_date or xx.has_birth_place)
    , %if;xx.is_male;[born]0%elseif;xx.is_female;[born]1%else;[born]2%end;
    %if;xx.has_birth_date; %xx.on_birth_date;%end;
    %if;xx.has_birth_place;, %xx.birth_place;%end;
  %end;
  %if;(xx.has_baptism_date or xx.has_baptism_place)
    , %if;xx.is_male;[baptized]0%elseif;xx.is_female;[baptized]1%nn;
    %else;[baptized]2%end;
    %if;xx.has_baptism_date; %xx.on_baptism_date;%end;
    %if;xx.has_baptism_place;, %xx.baptism_place;%end;
  %end;
  %if;xx.is_dead;, %xx.died;
    %if;(xx.has_death_date) %xx.on_death_date;%end;
    %if;(xx.has_death_place), %xx.death_place;%end;
  %end;
  %if;xx.is_buried;,
    %if;xx.is_male;[buried]0%else;[buried]1%end;
    %if;xx.has_burial_date; %xx.on_burial_date;%end;
    %if;xx.has_burial_place;, %xx.burial_place;%end;
  %end;
  %if;xx.is_cremated;,
    %if;xx.is_male;[cremated]0%else;[cremated]1%end;
    %if;xx.has_cremation_date; %xx.on_cremation_date;%end;
    %if;xx.has_cremation_place;, %xx.cremation_place;%end;
  %end;
  %if;xx.computable_death_age;, [aged] %xx.death_age;%end;
  %if;(e.rel="on" and xx.has_relations)
    %foreach;xx.relation; ;
      %relation_type;[:]
      %if;has_relation_him;%apply;link(relation_him.var)%end;%nl;
      %if;has_relation_her;
        %if;has_relation_him; [and] %end;
        %apply;link(relation_her.var)
      %end;
    %end;
    %foreach;xx.related; ;
      %related_type;[:] %apply;link(related.var)%nn;
    %end;
    %foreach;event_witness_relation; ;
      %event_witness_relation_kind;[:]
      %event_witness_relation.event.name;
      %apply;a_of_b%with;
        %if;(event_witness_relation.event.date.year!="")
          %sp;[in (year)] %event_witness_relation.event.date.year;%nn;
        %end;
      %and;
        %apply;short_display_person("event_witness_relation.person")
        %if;(event_witness_relation.event.spouse!="") [and]%sp;
          %apply;short_display_person("event_witness_relation.event.spouse")
        %end;
      %end;
    %end;
  %end;
%end;

%define;married_to(date_place)
  %if;are_married;[married%t to:::date_place]s%nn;
  %elseif;are_not_married;[relationship%t to:::date_place]s%nn;
  %elseif;are_engaged;[engaged%t to:::date_place]s%nn;
  %elseif;is_no_sexes_check;[relationship%t to:::date_place]s%nn;
  %elseif;is_no_mention;date_place [with]%nn;
  %end;
%end;

%define;render_events_table(xx)
  <table>
    %foreach;xx.event;
      <tr>
        <td class="align-top text-nowrap" style="width: 1%">
          <span class="edate">
            %if;event.has_date;%event.date;[:]
            %else;---[:]
            %end;
          </span>
        </td>
        <td class="align-top">
          <span>
            %apply;capitalize(event.name)%sp;
            %if;event.has_spouse;([with] %event.spouse;)%end;
            %if;event.has_place; - %event.place; %end;
          </span>
          %if;event.has_witnesses;
            %foreach;event_witness;
              <span>%apply;capitalize(event_witness_kind)[:]</span>
              %apply;short_display_person("event_witness")<br>
            %end;
          %end;
          %if;event.has_note;<div>%event.note;</div>%end;
          %if;event.has_src;<span><em>[*source/sources]1[:] %event.src;</em></span>%end;
        </td>
      </tr>
    %end;
  </table>
%end;

%define;render_notes_content(xx)
  %if;(e.notes="on" and (xx.has_notes or xx.has_event))
    %xx.notes;
    %if;xx.has_event;%apply;render_events_table("xx")%end;
  %end;
  %if;(e.src="on" and xx.has_sources)
    %if;(e.notes="on" and (xx.has_notes or xx.has_event) and e.inline="on")<hr>%end;
    <div class="h5 small"><b>[*source/sources]1</b></div>
    <small>%foreach;xx.source;%apply;capitalize(source_type)[:] %source;.<br>%end;</small>%nn;
  %end;
%end;

%define;render_notes_sources_inline(xx, ctr)
  %if;((e.notes="on" and (xx.has_notes or xx.has_event) and e.inline="on")
       or (e.src="on" and xx.has_sources and e.inline="on"))
    <div class="mt-2 mb-3 ml-4 mr-2 p-3 shadow">
      %if;(e.notes="on" and (xx.has_notes or xx.has_event))
        <div class="h5">[*note/notes]0</div>
      %end;
     %apply;render_notes_content("xx")
    </div>
  %end;
  %if;((((e.notes="on" and (xx.has_notes or xx.has_event))
         and (wizard or friend or bvar.no_note_for_visitor!="yes"))
        or (e.src="on" and xx.has_sources)) and e.inline!="on")%nn;
    %let;fcnt;%if;("xx"="spouse")%apply;letter(family_cnt)%end;%in;
    %sp;<sup><a href="#note-%ctr;%fcnt;">(<small>[note/notes]0 %ctr;%fcnt;</small>)</a></sup>.
   %end;
%end;

%define;render_notes_reference(xx, ctr)
  %if;(((e.notes="on" and (xx.has_notes or xx.has_event))
        and (wizard or friend or bvar.no_note_for_visitor!="yes"))
        or (e.src="on" and xx.has_sources))
    <div class="p-3 shadow">
      <dt>
        <a id="note-ctr" href="#person-ctr">ctr</a>%sp;
        <span class="small text-muted">(%xx;%xx.dates;)</span>
      </dt>
      <dd>%apply;render_notes_content("xx")</dd>
    </div>
  %end;
%end;

%define;descendants_by_list(xx, yy, curlev, maxlev, famlev, ctr)
  <b class="person-entry" id="person-%ctr;">%nn;
    %if;(e.cgl="on" or xx.is_restricted)%yy;
    %else;<a href="%prefix;%xx.access;">%yy;</a>%end;
  </b>%nn;
  %apply;somebody_long_info("xx")%if;(e.inline="on" or not has_families).%end;
  %apply;render_notes_sources_inline%with;xx%and;ctr%end;
  %incr_count;
  %foreach;xx.family;
    <div class="d-flex">
      <div class="flex-shrink-0 align-self-center">
        …%apply;married_to%with;
           %if;(on_marriage_date!="") %on_marriage_date;%end;
           %if;(marriage_place!="") [in (place)] %marriage_place;%end;
         %end;…
      </div>
      %if;(e.witn="on" and has_witnesses)
        <div class="flex-grow-1 ml-3 small text-muted">
          ([witness/witnesses]1[:]
          %foreach;witness;
            %if;(not is_first),%sp;%end;
            %apply;link(witness.var)
          %end;)
        </div>
      %end;
    </div>
    <b class="person-entry" id="person-%ctr;%apply;letter(family_cnt)">
      %if;(e.cgl="on" or spouse.is_restricted)%spouse;
      %else;<a href="%prefix;%spouse.access;">%spouse;</a>%end;
    </b>%nn;
    %apply;somebody_long_info("spouse")
    %apply;render_notes_sources_inline%with;spouse%and;ctr%end;
    %if;(e.comm="on" and (has_comment or has_marriage_note))
      <span class="text-muted small"> (%comment;
        %if;has_marriage_note;%apply;clean_html_tags(marriage_note)%end;)
      </span>
    %end;
    %if;are_divorced;, <em>[divorced]</em>%end;
    %if;are_separated;, <em>[separated]</em>%end;
    %if;(curlev<maxlev)
      %if;(curlev=0 or e.t="M" and xx.is_male or e.t="F" and xx.is_female or e.t="L")
        %if;(family.desc_level < famlev)
          <div class="ml-4 text-muted">[see further].</div>
        %elseif;(family.desc_level > famlev)
          <div class="ml-4 text-muted">[see above].</div>
        %elseif;has_children;
          <div class="mt-2">
            %apply;havingchildren(nb_children)[:]
            %family.set_infinite_desc_level;
            <ol class="desc-gen desc-gen-%expr(curlev%4) mt-1 %if;(curlev=0) pl-4%end;">
              %foreach;child;
                <li>
                  %if;(e.alwsurn="yes")
                    %apply;descendants_by_list("child", "child", curlev+1, maxlev, famlev+1, count+1)
                  %else;
                    %apply;descendants_by_list("child", "child_name", curlev+1, maxlev, famlev+1, count+1)
                  %end;
                </li>
              %end;
            </ol>
          </div>
        %end;
      %elseif;has_children;, …%sq;
      %end;
    %end;
  %end;
%end;

%define;notes_by_list(xx, curlev, maxlev, famlev, ctr)
  %incr_count;
  %apply;render_notes_reference%with;xx%and;ctr%end;
  %foreach;xx.family;
    %apply;render_notes_reference%with;spouse%and;ctr%apply;letter(family_cnt)%end;
    %if;(curlev<maxlev)
      %if;((curlev=0) or (e.t="M" and xx.is_male) or (e.t="F" and xx.is_female) or (e.t="L"))
        %if;(family.desc_level<famlev)%nn;
        %elseif;(family.desc_level>famlev)%nn;
        %elseif;has_children;
          %family.set_infinite_desc_level;
          %foreach;child;
            %apply;notes_by_list("child", curlev+1, maxlev, famlev+1, count+1)
          %end;
        %end;
      %end;
    %end;
  %end;
%end;

%define;by_list(xx)
  %reset_count;
  %apply;descendants_by_list("self", "self", 0, xx, 0, 1)%nl;
  [*total][:] %expr(count-1) [person/persons]n%sp;
  ([spouses not included]).
  %if;((e.notes="on" or e.src="on") and e.inline!="on")
    <h3 class="mt-2">
      %if;(e.notes="on")[*note/notes]1%else;[*source/sources]1%end;
    </h3>
    <dl class="ml-0">
      %reset_count;%reset_desc_level;
      %apply;notes_by_list("self", 0, xx, 0, 1)%nl;
    </dl>
  %end;
%end;

%apply;by_list(l_v)

%include;trl
%include;copyr
</div>
%include;js
%query_time;
</body>
</html>
