After some more playing around, I discovered that there was still a bug. In 
one of my previous posts, I should some pictures of a couple of the outputs 
of my macro. If you look at Carl Anders Fehr, you will notice that he had 
two spouses and children by both. They macro worked great when he was the 
starting person, but if one of his spouses were the starting person, the 
macro would show all of Carl's children and not just the children of that 
particular spouse. After noodling it for a while and sleeping on it, I 
realized what the problem was. I needed to subtract the children that 
didn't belong. The following new macro fixes that problem:
\define each-other-level()
<$list filter="[all[current]]" variable="Parent">
  <ol>
    <$list filter=
"[title<currentTiddler>tagging[]sortan[birth]tags[]!title<currentTiddler>]">
      <li>
        with: <$link><$view field='caption'><$view field='title'/></$view></
$link>
        <$list filter=
"[title<currentTiddler>tagging[]limit[1]has[parents-marriage]]">
          -> married: <$macrocall $name="date-str" date={{!!parents-marriage
}}/>
        </$list>
        <ol>
          <$list 
filter="[title<currentTiddler>kin:tags:to:1[]sortan[birth]!title<currentTiddler>]
                         -[!kin:tags:to<Parent>]">
            <li>
              <$link><$view field='caption'><$view field='title'/></$view></
$link> -> born: <$macrocall $name="date-str" date={{!!birth}}/>
              <<each-other-level>>
            </li>
          </$list>
        </ol>
      </li>
    </$list>
  </ol>
</$list>
\end


\define descendants()
  ''Descendants of <$view field='caption'><$view field='title'/></$view>''
  <<each-other-level>>
\end

Assuming I don't find any bugs in this one, then it's off to investigate 
using fields instead of tags as Tony has suggested






On Saturday, June 27, 2020 at 4:27:54 PM UTC-7, Damon Pritchett wrote:
>
> All,
>
> I've spent the last few days working on a new wiki for use with my family 
> history. I'm going to use it, not as a substitute for my genealogy program, 
> but as a supplement to keep track of documentation and such. In so doing, 
> I've managed to figure out a nice way of using tidgraph to generate my 
> pedigree chart and I've written a "children of" using nested list widgets. 
> I have tiddlers for each person with that person's parents as tags. With 
> tidgraph, I was able to get the desired behavior by using mode="tags[]" 
> instead of tagging which is the default. Tidgraph is a wonderful plugin and 
> it's too bad that it doesn't seem to be supported any longer. I'm still 
> learning Javascript, so am a long way from making any changes to it myself.
>
> I've created a ViewTemplate that I've included here:
> \import [title<currentTiddler>]
>
> <$list filter="[all[current]search:description[People]]">
>
> <div class="tc-tiddler-body" style="border: none;">
>
>
> <$tidgraph start=<<currentTiddler>> mode="tags[]sort[sex]reverse[]" 
> maxdepth="2" nocollapse />
>
> <$list filter="[all[current]has:field[birth]] 
> [all[current]has:field[death]]">
> <table class="highlight1">
>   <caption style="text-align: left; font-weight: bold; caption-side: 
> top;">Birth / Death:</caption>
>   <tr>
>     <td>Birth</td>
>     <td><$macrocall $name="date-str" date={{!!birth}}/></td>
>     <td><<birthplace>></td>
>   </tr>
>   <tr>
>     <td>Death</td>
>     <td><$macrocall $name="date-str" date={{!!death}}/></td>
>     <td><<deathplace>></td>
>   </tr>
> </table>
> </$list>
>
> <$list filter="[all[current]]" variable="Parent">
>
> <$list filter="[all[current]tagging[]search:description[People]limit[1]]" 
> variable=null>
>
> <div class="list-tree">
>   Children of <<currentTiddler>>:
>   <ol>
>     <$list 
> filter="[title<currentTiddler>tagging[]sortan[birth]tags[]!title<Parent>]">
>       <li>with: <$link><$view field='caption'><$view 
> field='title'/></$view></$link>
>         <$list 
> filter="[title<currentTiddler>tagging[]limit[1]has[parents-marriage]]">
>           -> married: <$macrocall $name="date-str" 
> date={{!!parents-marriage}}/>
>         </$list>
>         <ol>
>           <$list filter="[title<currentTiddler>tagging[]sortan[birth]]">
>             <li><$link><$view field='caption'><$view 
> field='title'/></$view></$link> -> born: <$macrocall $name="date-str" 
> date={{!!birth}}/></li>
>           </$list>
>         </ol>
>       </li>
>     </$list>
>   </ol>
> </div>
>
> </$list>
>
> </$list>
>
> <$list 
> filter="[all[current]backlinks[]!search:description[People]!is[missing]limit[1]]"
>  
> variable=null>
>
> <<table-dynamic 
> filter:"[title<currentTiddler>backlinks[]!search:description[People]]" 
> fields:"tbl-expand record-date description title" sortOp:sortan 
> stateTiddler:"recordsearch" class:"highlight1" editButton:no 
> caption:"''Mentioned or connected with the following records:''">>
>
> </$list>
>
>
> </div>
>
> </$list>
>
>
> The result is this:
>
>
>
> I'm suing the class "list-tree" which has been around for quite a while 
> and created by Mat. There's also a dynamic table called out from the Shiraz 
> plugin that I use to show any documents that the person is listed in.
>
> This all works just how I want it to work, but being that my skills at 
> Tiddlywiki are still forming, I'm wondering if there might be a more 
> efficient or effective way of doing the same thing. I am definitely open to 
> any better ways of doing things.
>
> I'm also thinking of expanding the "children of" code to a recursive macro 
> to get multiple generations, but I don't know exactly how to proceed down 
> that path. Any suggestions would be highly appreciated.
>
> Feel free to use this code if you think you'd find it useful. I only ask 
> that, if you make any improvements or additions, that you let me know so I 
> might incorporate those.
>
> Thanks,
>
> Damon
>
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/b4ec7ac5-883e-41fe-982f-2f4421b4cabdo%40googlegroups.com.

Reply via email to