From 1fff561ee1e395cb7d034b391ff8db43576c1b27 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Wed, 22 Mar 2023 11:49:46 +0100 Subject: [PATCH] ENHANCEMENT: allowing HTML pages --- src/Controller/DefaultController.php | 1 + src/Repository/Page.php | 35 +++++++++++++++++++++------- src/Twig/AppExtension.php | 20 ---------------- templates/page.html.twig | 6 ++--- 4 files changed, 31 insertions(+), 31 deletions(-) delete mode 100644 src/Twig/AppExtension.php diff --git a/src/Controller/DefaultController.php b/src/Controller/DefaultController.php index 2aad571..0a3f0a0 100644 --- a/src/Controller/DefaultController.php +++ b/src/Controller/DefaultController.php @@ -28,6 +28,7 @@ class DefaultController extends AbstractController $return = $page->getPage($kernel, 'error/' . $status); $response = new Response('', (int)$status); return $this->render('/page.html.twig', [ + 'nav' => $return['nav'], 'header' => $return['header'], 'content' => $return['content'], 'title' => $return['title'], diff --git a/src/Repository/Page.php b/src/Repository/Page.php index f009075..442ce56 100644 --- a/src/Repository/Page.php +++ b/src/Repository/Page.php @@ -10,16 +10,35 @@ class Page { public function getPage(KernelInterface $kernel, string $page) { - $return['header'] = file_get_contents($kernel->getCacheDir() . '/pages/_main.md'); - $return['nav'] = file_get_contents($kernel->getCacheDir() . '/pages/_nav.md'); - $titles = json_decode(file_get_contents($kernel->getCacheDir() . '/pages/titles.json'), true); - if(file_exists($kernel->getCacheDir() . '/pages/' . $page . '.md')) { - $return['title'] = $titles[$page] ?? ''; - $return['content'] = file_get_contents($kernel->getCacheDir() . '/pages/' . $page . '.md'); - $return['status'] = '200'; + $parsedown = new \Parsedown(); + if(file_exists($kernel->getCacheDir() . '/pages/_header.md')) { + $return['header'] = $parsedown->text(file_get_contents($kernel->getCacheDir() . '/pages/_header.md')); + } elseif(file_exists($kernel->getCacheDir() . '/pages/_header.html')) { + $return['header'] = file_get_contents($kernel->getCacheDir() . '/pages/_header.html'); } else { - throw new NotFoundHttpException(); + throw new NotFoundHttpException('Some required files were not found'); } + + if(file_exists($kernel->getCacheDir() . '/pages/_nav.md')) { + $return['nav'] = $parsedown->text(file_get_contents($kernel->getCacheDir() . '/pages/_nav.md')); + } elseif(file_exists($kernel->getCacheDir() . '/pages/_nav.html')) { + $return['nav'] = file_get_contents($kernel->getCacheDir() . '/pages/_nav.html'); + } else { + throw new NotFoundHttpException('Some required files were not found'); + } + + if(file_exists($kernel->getCacheDir() . '/pages/' . $page . '.md')) { + $return['content'] = $parsedown->text(file_get_contents($kernel->getCacheDir() . '/pages/' . $page . '.md')); + } elseif(file_exists($kernel->getCacheDir() . '/pages/' . $page . '.html')) { + $return['content'] = file_get_contents($kernel->getCacheDir() . '/pages/' . $page . '.html'); + } else { + throw new NotFoundHttpException('Some required files were not found'); + } + + $titles = json_decode(file_get_contents($kernel->getCacheDir() . '/pages/titles.json'), true); + $return['title'] = $titles[$page] ?? ''; + $return['status'] = '200'; + return $return; } } \ No newline at end of file diff --git a/src/Twig/AppExtension.php b/src/Twig/AppExtension.php deleted file mode 100644 index eb42f52..0000000 --- a/src/Twig/AppExtension.php +++ /dev/null @@ -1,20 +0,0 @@ -text($markdown); - } -} \ No newline at end of file diff --git a/templates/page.html.twig b/templates/page.html.twig index 3751901..9e2e6c2 100755 --- a/templates/page.html.twig +++ b/templates/page.html.twig @@ -3,17 +3,17 @@ {% block content %}
- {{ header | markdown | raw }} + {{ header | raw }}
- {{ content | markdown | raw }} + {{ content | raw }}
{% endblock %}