date("Y-m-d"), "title" => $id, "author" => "UnchainedTech", "cover" => null, "extract" => "", "admin" => false, "category" => "Uncategorized" ]; $list[$id]["id"] = $id; $propertiesMode = false; $propertiesDone = false; $cline = 0; $upline = 0; foreach ($lines as $line) { if (!$propertiesDone) { if (trim($line) === "---") { if ($propertiesMode) { $propertiesDone = true; $propertiesMode = false; $upline = $cline + 1; } else { $propertiesMode = true; } } else if ($propertiesMode) { $parts = explode(":", $line); $p_ins = trim($parts[0]); array_shift($parts); $p_data = trim(implode(":", $parts)); switch ($p_ins) { case "date": $pp_dt = DateTime::createFromFormat('Y-m-d', $p_data); $list[$id]["date"] = $pp_dt->format("Ymd"); break; case "title": $list[$id]["title"] = $p_data; break; case "author": $list[$id]["author"] = explode("|", $p_data); break; case "cover": $list[$id]["cover"] = $p_data; break; case "category": $list[$id]["category"] = $p_data; break; } } } $cline++; } $i = 0; while ($i++ < $upline) { array_shift($lines); } $text = implode("\n", $lines); $list[$id]["content"] = []; $list[$id]["content"]["full"] = $Parsedown->text($text); $list[$id]["content"]["clean"] = strip_tags($list[$id]["content"]["full"]); if (strlen($list[$id]["content"]["clean"]) > 100) { $list[$id]["content"]["mini"] = substr($list[$id]["content"]["clean"], 0, 100) . "…"; } else { $list[$id]["content"]["mini"] = $list[$id]["content"]["clean"]; } if (strlen($list[$id]["content"]["clean"]) > 500) { $list[$id]["content"]["little"] = substr($list[$id]["content"]["clean"], 0, 500) . "…"; } else { $list[$id]["content"]["little"] = $list[$id]["content"]["clean"]; } } } $files = scandir($_SERVER['DOCUMENT_ROOT'] . "/../_posts/_drafts"); foreach ($files as $file) { if (is_file($_SERVER['DOCUMENT_ROOT'] . "/../_posts/_drafts/" . $file) && $file !== "_template.md" && $file !== ".gitkeep") { $content = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/../_posts/_drafts/" . $file); $lines = explode("\n", $content); $unlined = []; $id = substr($file, 0, -3); $list[$id] = [ "date" => date("Ymd"), "title" => $id, "author" => [ "UnchainedTech Authors" ], "cover" => null, "extract" => "", "admin" => true, "category" => "Uncategorized" ]; $list[$id]["id"] = $id; $propertiesMode = false; $propertiesDone = false; $cline = 0; $upline = 0; foreach ($lines as $line) { if (!$propertiesDone) { if (trim($line) === "---") { if ($propertiesMode) { $propertiesDone = true; $propertiesMode = false; $upline = $cline + 1; } else { $propertiesMode = true; } } else if ($propertiesMode) { $parts = explode(":", $line); $p_ins = trim($parts[0]); array_shift($parts); $p_data = trim(implode(":", $parts)); switch ($p_ins) { case "date": $pp_dt = DateTime::createFromFormat('Y-m-d', $p_data); $list[$id]["date"] = $pp_dt->format("Ymd"); break; case "title": $list[$id]["title"] = $p_data; break; case "author": $list[$id]["author"] = explode("|", $p_data); break; case "cover": $list[$id]["cover"] = $p_data; break; case "category": $list[$id]["category"] = $p_data; break; } } } $cline++; } $i = 0; while ($i++ < $upline) { array_shift($lines); } $text = implode("\n", $lines); $list[$id]["content"] = []; $list[$id]["content"]["full"] = $Parsedown->text($text); $list[$id]["content"]["clean"] = strip_tags($list[$id]["content"]["full"]); if (strlen($list[$id]["content"]["clean"]) > 100) { $list[$id]["content"]["mini"] = substr($list[$id]["content"]["clean"], 0, 100) . "…"; } else { $list[$id]["content"]["mini"] = $list[$id]["content"]["clean"]; } if (strlen($list[$id]["content"]["clean"]) > 500) { $list[$id]["content"]["little"] = substr($list[$id]["content"]["clean"], 0, 500) . "…"; } else { $list[$id]["content"]["little"] = $list[$id]["content"]["clean"]; } } } $listGetEnd = new DateTime("now"); $listGetTimeoutA = $listGetStart->diff($listGetEnd); $listGetTimeout = $listGetTimeoutA->f; if ($ordered) { usort($list, function($a, $b) { return strtoupper($a['date']) <=> strtoupper($b['date']); }); $list = array_reverse($list); } return $list; }