'; // echo 'Error number: ' . mysqli_connect_errno() . '
'; // echo 'Error message: ' . mysqli_connect_error() . '
'; // die(); // } $loader = new \Twig\Loader\FilesystemLoader(['./templates', './user_content']); $twig = new \Twig\Environment($loader,['debug' => true]); $twig->addExtension(new Twig\Extra\Markdown\MarkdownExtension()); use Twig\Extra\Markdown\DefaultMarkdown; use Twig\Extra\Markdown\MarkdownRuntime; use Twig\RuntimeLoader\RuntimeLoaderInterface; $twig->addRuntimeLoader(new class implements RuntimeLoaderInterface { public function load($class) { if (MarkdownRuntime::class === $class) { return new MarkdownRuntime(new DefaultMarkdown()); } } }); $SURI = $_SERVER['REQUEST_URI']; if($SURI == '/') { echo $twig->render('root.html'); } elseif(preg_match('/^\/api/', $SURI)) { if(preg_match('/^\/api\/posts(.*)$/', $SURI, $match)) { header('Content-Type: application/json'); echo json_encode($adapter->get_post_by_path($match[1])); } elseif(preg_match('/^\/api\/subposts(.*)$/', $SURI, $match)) { header('Content-Type: application/json'); echo json_encode(get_subposts($match[1])); } elseif($SURI == '/api/upload') { if(array_key_exists('post_data', $_FILES)) { $adapter->handle_upload($_POST['post_path'], $_FILES['post_data']['tmp_name']); } echo $twig->render('upload.html'); } } elseif($_SERVER['HTTP_SEC_FETCH_DEST'] == 'image') { header('Location: /raw' . $SURI); exit(0); } elseif(true) { $post = $adapter->get_post_by_path($SURI); if($post['post_metadata']['type'] == 'directory') { if(preg_match('/^(.*[^\/])((?:#.*)?)$/', $SURI, $match)) { header('Location: ' . $match[1] . '/' . $match[2]); exit(0); } echo $twig->render('post_types/directory.html', [ "post" => $post, "subposts" => $post['subposts'] ]); } elseif($post['post_metadata']['type'] == 'text/markdown') { echo $twig->render('post_types/markdown.html', [ "post" => $post, "subposts" => $post['subposts'] ]); } elseif($post['post_metadata']['type'] == 'file') { echo $twig->render('post_types/image.html', [ "post" => $post ]); } } else { echo $twig->render('rrror.html',[ "error_code" => '404 Hoard not found!', "error_description" => "Well, we searched far and wide for `" . $SURI . "` but somehow it must have gotten lost... Sorry!" ]); } ?>