module Server where
 
+import Control.Monad.IO.Class (liftIO)
 import CssContentType
 import Lucid
 import RenderBlog (renderBlog)
 import Servant
 import Servant.HTML.Lucid (HTML(..))
 import qualified Data.Text as T
+import qualified Data.Text.IO as T
 
 app :: Application
 app = serve apiProxy api
     meta_ [charset_ "utf8"]
     meta_ [name_ "description", content_ "width=device-width"]
     link_ [rel_ "stylesheet", href_ "/dark"]
-  body_ $ do
+  body_ $ div_ [role_ "main"] $ do
     h1_ $ toHtml siteTitle
 
 blogPost :: Maybe BlogId -> Handler (Html ())
 blogPost Nothing = mainPage
-blogPost (Just blogId) = mainPage
+blogPost (Just blogId) = findBlogPost blogId >>= pure . renderBlog
+
+findBlogPost :: BlogId -> Handler T.Text
+findBlogPost = liftIO . T.readFile . (<>) "/static/"
 
 themes :: Server Themes
 themes = darkTheme :<|> lightTheme
 
+-- TODO Modify this endpoint to take in a single hex colour value and produce a stylesheet from it.
 darkTheme :: Handler T.Text
 darkTheme = pure mempty
 
+-- TODO Modify this endpoint to take in a single hex colour value and produce a stylesheet from it. The strategy used here should be the inverse of the one used by the dark path.
 lightTheme :: Handler T.Text
 lightTheme = pure mempty