Timeline with end-date and not with limit 100

Experts,

more and more I like tiddlywiki and find out more and more functions.

I implemented this makro call to have an overview about the changes:

<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>

But this stops after 100 entries.
I checked the code in $:/core/macros/timeline

<!-- Override one or both of the following two macros with a global or local macro of the same name 
if you need to change how titles are displayed on a timeline -->

\define timeline-title() <$view field="title"/>
\define timeline-link() <$link to={{!!title}}><<timeline-title>></$link>
\define timeline(limit:"100",format:"DDth MMM YYYY",subfilter:"",dateField:"modified")
\whitespace trim
<div class="tc-timeline">
<$list filter="[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]">
<div class="tc-menu-list-item">
<$view field="$dateField$" format="date" template="$format$"/>
<$list filter="[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]">
<div class="tc-menu-list-subitem">
<<timeline-link>>
</div>
</$list>
</div>
</$list>
</div>
\end

Is there a chance to limit the output by a given date/time eg. 202306051835 (YYYYMMDDhhmm) and not by 100 entries? Of yourse, if the date/time is really far in the past the list can be long :wink: .

Thx for support

Try this:

\define timeline-recent(end:"")
<$set name="recent" filter="[!is[system]!sort[modified]] :filter[get[modified]compare:date:gteq<__end__>]">
<div class="tc-timeline">
   <$list filter="[enlist<recent>eachday[modified]get[modified]]" variable="thisdate">
      <div class="tc-menu-list-item">
         <div><$text text={{{ [<thisdate>format:date[DDth MMM YYYY]] }}}/></div>
         <$list filter="[enlist<recent>sameday<thisdate>]">
            <div class="tc-menu-list-subitem"><<timeline-link>></div>
         </$list>
      </div>
   </$list>
</div>
\end

<<timeline-recent end:"20230201">>

Hi EricShulman,

thank you for the fast solution.

How to extend the end date with a given time eg. 202302011805?

Thx so far
Stefan

Change the first line (the $set widget) to:

<$let end={{{ [<__end__>pad:suffix[17]] }}}>
<$set name="recent" filter="[!is[system]!sort[modified]] :filter[get[modified]compare:integer:gteq<end>]">
  • The end value is padded with trailing 0's so it is a proper 17-digit TWCore datetime value (i.e., using format YYYY0MM0DD0hh0mm0ss0XXX)
  • This allows use of compare:integer:gteq<end> instead of compare:date:gteq<__end__>
  • Note that contents of each tiddler’s modified field is always stored using UTC date and time. Thus, the specified end value must also use UTC date and time, NOT local time