This commit is contained in:
lubiana 2022-03-31 08:34:30 +02:00 committed by Andre Lubian
parent 48c9c9467d
commit b12cf019e7
107 changed files with 8372 additions and 186 deletions

35
app/src/Action/Page.php Normal file
View file

@ -0,0 +1,35 @@
<?php declare(strict_types=1);
namespace Lubian\NoFramework\Action;
use Lubian\NoFramework\Repository\MarkdownPageRepo;
use Lubian\NoFramework\Template\Renderer;
use Parsedown;
use Psr\Http\Message\ResponseInterface;
use function preg_replace;
use function str_replace;
class Page
{
public function __invoke(
string $page,
ResponseInterface $response,
MarkdownPageRepo $repo,
Parsedown $parsedown,
Renderer $renderer,
): ResponseInterface {
$page = $repo->byTitle($page);
$content = $this->linkFilter($page->content);
$content = $parsedown->parse($content);
$html = $renderer->render('page', ['content' => $content]);
$response->getBody()->write($html);
return $response;
}
private function linkFilter(string $content): string
{
$content = preg_replace('/\(\d\d-/m', '(', $content);
return str_replace('.md)', ')', $content);
}
}