$entry) { $time = strtotime($entry["created_at"]); $data[$id]["date"] = date("Y-m-d",$time); $data[$id]["time"] = date("H:i:s",$time); } return $data; } function getFOSS() { return Yaml::parseFile('content/foss/foss.yaml'); } function getVinyl() { return Yaml::parseFile('content/music/vinyl.yaml'); } function getAOTW() { return Yaml::parseFile('content/music/aotw.yaml'); } function getRSS($params) { header("Content-Type: text/xml"); $feed = new Feed(); $channel = new Channel(); $channel ->title($params['feed']['title']) ->description($params['feed']['description']) ->url($params['feed']['url']) ->atomLinkSelf($params['feed']['linkself']) ->appendTo($feed); $dates = array_column($params['posts'], 'date'); array_multisort($dates, SORT_DESC, $params['posts']); foreach($params['posts'] as $post) { $item = new Item(); $item ->title($post['title']) ->creator($post['author']) // ->content($post['content']) ->description($post['content']) ->url($post['url']) ->guid($post['url'], true) ->pubDate(strtotime($post['date'])) ->appendTo($channel); } echo $feed; } function scandirRec($path, $category, $params) { $Parsedown = new Parsedown(); $mp = new MetaParsedown(); $items = array(); // If a directory if(is_dir($path)) { $files = glob($path . '*', GLOB_MARK); foreach($files as $file) { if(is_dir($file)) { $items = array_merge($items, scandirRec($file, $category, $params)); } else { $return = scandirRec($file, $category, $params); if (!empty($return)) { $items[] = $return; } } } return $items; } // If a file if (($path == '.') || ($path == '..')) { return; } $content = file_get_contents($path); $meta = $mp->meta($content); switch ($category) { case 'blog': $item = array( "type" => "blog", "title" => $meta["title"], "author" => $meta["author"], "urlrel" => "/post/".$meta["slug"], "url" => "https://yarmo.eu/post/".$meta["slug"], "slug" => $meta["slug"], "date" => $meta["date"], "published" => $meta["published"], "discussion" => $meta["discussion"], "content" => $mp->text($content)); $date = new DateTime($item['date']); $item['date_formatted'] = $date->format('Y-m-d'); $item['date_rss'] = $date->format('Y-m-d'); if (!$item['published'] && !(isset($params['slug']) && $item['slug'] == $params['slug'])) { return; } break; case 'notes': $item = array( "type" => "note", "title" => $meta["title"], "author" => $meta["author"], "urlrel" => "/post/".$meta["slug"], "url" => "https://yarmo.eu/post/".$meta["slug"], "slug" => $meta["slug"], "date" => $meta["date"], "published" => $meta["published"], "discussion" => $meta["discussion"], "content" => $mp->text($content)); $date = new DateTime($item['date']); $item['date_formatted'] = $date->format('Y-m-d'); $item['date_rss'] = $date->format('Y-m-d'); if (!$item['published'] && !(isset($params['slug']) && $item['slug'] == $params['slug'])) { return; } break; case 'projects': $item = array( "title" => $meta["title"], "status" => $meta["status"], "urlrel" => "/projects/".$meta["slug"], "url" => "https://yarmo.eu/projects/".$meta["slug"], "slug" => $meta["slug"], "date" => $meta["date"], "listed" => $meta["listed"], "content" => $mp->text($content)); $date = new DateTime($item['date']); $item['date_formatted'] = $date->format('Y-m-d'); $item['date_rss'] = $date->format('Y-m-d'); if (!$item['listed'] && !(isset($params['slug']) && $item['slug'] == $params['slug'])) { return; } break; case 'replies': $item = array( "type" => "note", "title" => $meta["title"], "reply-url" => $meta["reply-url"], "reply-title" => $meta["reply-title"], "author" => $meta["author"], "urlrel" => "/reply/".$meta["slug"], "url" => "https://yarmo.eu/reply/".$meta["slug"], "slug" => $meta["slug"], "date" => $meta["date"], "published" => $meta["published"], "content" => $mp->text($content)); $date = new DateTime($item['date']); $item['date_formatted'] = $date->format('Y-m-d'); $item['date_rss'] = $date->format('Y-m-d'); if (!$item['published'] && !(isset($params['slug']) && $item['slug'] == $params['slug'])) { return; } break; default: return; break; } if (isset($params['slug']) && $item['slug'] != $params['slug']) { return; } if (isset($params['slug'])) { $item["webmentions"] = array_merge( getWebmentions($item["url"]), getWebmentions("https://yarmo.eu/blog/".$meta["slug"]), getWebmentions("https://yarmo.eu/notes/".$meta["slug"]) ); $item["hasWebmentions"] = count($item["webmentions"]) > 0; } return $item; }