$item) { // Use year as the first dimension if (!array_key_exists($item->year(), $timeline)) { $timeline[$item->year()] = []; } // And month as the second dimension if (!array_key_exists($item->month(), $timeline[$item->year()])) { $timeline[$item->year()][$item->month()] = []; } // Lastly, day as the third dimension if (!array_key_exists($item->day(), $timeline[$item->year()][$item->month()])) { $timeline[$item->year()][$item->month()][$item->day()] = []; } // Append Work instance on Timeline object to the output array by year->month->day $timeline[$item->year()][$item->month()][$item->day()][] = $item->work(); // Bail out here if we've reached the theshold for items to display if ($limit && $idx === $limit) { return $timeline; } } return $timeline; } } ?>

This timeline has most but not all of my FOSS software. If you want to see a list of all things I've created for the free software world, check out my repos on Codeberg or Forgejo.

$months): ?>

$days): ?>

$items): ?>

tags()): ?>
tags() as $tag): ?>

label()->name ?>

title()): ?>

title() ?>

summary() ?>

actions()): ?>