'', 'title' => '', ]; $isMisuzuDoc = $pathInfo === '/misuzu' || starts_with($pathInfo, '/misuzu/'); if ($isMisuzuDoc) { $filename = substr($pathInfo, 8); $filename = empty($filename) ? 'README' : strtoupper($filename); if ($filename !== 'README') { $titleSuffix = ' - Misuzu Project'; } } else { $filename = strtolower(substr($pathInfo, 1)); } if (!preg_match('#^([A-Za-z0-9_]+)$#', $filename)) { echo render_error(404); return; } if ($filename !== 'LICENSE') { $filename .= '.md'; } $filename = __DIR__ . '/../' . ($isMisuzuDoc ? '' : 'docs/site/') . $filename; $document['content'] = is_file($filename) ? file_get_contents($filename) : ''; if (empty($document['content'])) { echo render_error(404); return; } if (empty($document['title'])) { if (starts_with($document['content'], '# ')) { $titleOffset = strpos($document['content'], "\n"); $document['title'] = trim(substr($document['content'], 2, $titleOffset - 1)); $document['content'] = substr($document['content'], $titleOffset); } else { $document['title'] = ucfirst(basename($filename)); } if (!empty($titleSuffix)) { $document['title'] .= $titleSuffix; } } echo tpl_render('info.view', [ 'document' => $document, ]);