diff --git a/src/Http/Handlers/InfoHandler.php b/src/Http/Handlers/InfoHandler.php index 33cbe204..84f02c40 100644 --- a/src/Http/Handlers/InfoHandler.php +++ b/src/Http/Handlers/InfoHandler.php @@ -3,6 +3,7 @@ namespace Misuzu\Http\Handlers; use HttpResponse; use HttpRequest; +use Misuzu\Parsers\Parser; final class InfoHandler extends Handler { public function index(HttpResponse $response): void { @@ -24,43 +25,36 @@ final class InfoHandler extends Handler { if($isMisuzuDoc) { $filename = substr($name, 7); $filename = empty($filename) ? 'README' : strtoupper($filename); - - if($filename !== 'README') { + if($filename !== 'README') $titleSuffix = ' - Misuzu Project'; - } - } else { - $filename = strtolower($name); - } + } else $filename = strtolower($name); - if(!preg_match('#^([A-Za-z0-9_]+)$#', $filename)) { + if(!preg_match('#^([A-Za-z0-9_]+)$#', $filename)) return 404; - } - if($filename !== 'LICENSE') { + if($filename !== 'LICENSE') $filename .= '.md'; - } $filename = MSZ_ROOT . ($isMisuzuDoc ? '/' : '/docs/') . $filename; $document['content'] = is_file($filename) ? file_get_contents($filename) : ''; - if(empty($document['content'])) { + if(empty($document['content'])) return 404; - } 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 { + } else $document['title'] = ucfirst(basename($filename)); - } - if(!empty($titleSuffix)) { + if(!empty($titleSuffix)) $document['title'] .= $titleSuffix; - } } + $document['content'] = Parser::instance(Parser::MARKDOWN)->parseText($document['content']); + $response->setTemplate('info.view', [ 'document' => $document, ]); diff --git a/templates/info/view.twig b/templates/info/view.twig index 8c46a905..33f31ef5 100644 --- a/templates/info/view.twig +++ b/templates/info/view.twig @@ -8,7 +8,7 @@ {{ container_title(document.title) }}