maximilian senftleben
include('canonical.php');
$entries = [];
$alltags = [];
$filtertags = false;
if(isset($_REQUEST['tag'])) {
$filtertags = $_REQUEST['tag'];
}
// Entries
function filenameinfo($file, &$alltags) {
$skip = ['.','..'];
if(in_array($file,$skip)) return false;
if(substr($file,-3) === '.md') $file = substr($file,0,-3);
$parts = explode(",",$file);
if(count($parts)<2) return false;
$tags = array_slice($parts,2);
sort($tags);
foreach($tags as $tag) { if($tag!='dead') { $alltags[$tag] = $tag; } }
return [ 'date' => $parts[0], 'title' => $parts[1], 'tags' => $tags, 'dead' => (in_array('dead',$tags)) ];
}
$files = scandir('entries');
foreach($files as $file) {
if(($entry = filenameinfo($file,$alltags)) === false) continue;
if(isset($mapFileToCanonical[$file])) $file = $mapFileToCanonical[$file];
$entry['path'] = 'entries/'.$file;
$entries[] = (object)$entry;
}
// Files
$files = scandir('projects');
foreach($files as $file) {
if(($entry = filenameinfo($file,$alltags)) === false) continue;
if(isset($mapFileToCanonical[$file])) $file = $mapFileToCanonical[$file];
$entry['path'] = 'projects/'.$file;
$entries[] = (object)$entry;
}
arsort($entries);
sort($alltags);
?>
$curdate = '';
foreach($entries as $entry) {
if($filtertags!==false && count(array_intersect($entry->tags,$filtertags))===0) continue;
$checkdate = substr($entry->date,0,7);
if($curdate !== $checkdate) {
$curdate =$checkdate;
echo '- '.$checkdate.'
';
}
echo '- ';
echo ''.substr($entry->date,8).'';
if($entry->dead) echo ' ';
echo ''.$entry->title.'';
foreach($entry->tags as $tag) { if($tag!='dead') {echo ' #'.$tag.''; } }
echo '
';
}
?>