Playing around with routing

This commit is contained in:
Charlotte Allen 2020-01-27 23:14:01 -08:00
parent 66303327eb
commit a268607e98
No known key found for this signature in database
GPG Key ID: 3A64C3A6C69860B0
4 changed files with 38 additions and 7 deletions

9
resources/html/post.html Normal file
View File

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block content %}
<article class="h-entry">
<h1 class="p-name">{{post.name}}</h1>
<div class="e-content">
<p>{{post.content}}</p>
</div>
</article>
{% endblock %}

View File

@ -9,7 +9,7 @@
{:year year :month month :day day})
(defn pathmap-to-path [{:keys [year month day]}]
(format "%d/%d/%d" year month day))
(format "%s/%s/%s" year month day))
(defn count-posts-in-date [dt-path]
(let [path (pathmap-to-path dt-path)
@ -29,7 +29,7 @@
(spit final-path post)))
(defn read-post [dt-path n]
(let [path (format "%s/%s/%d/%s" base-path (pathmap-to-path dt-path) n post-filename)
(let [path (format "%s/%s/%s/%s" base-path (pathmap-to-path dt-path) n post-filename)
f (clojure.java.io/file path)]
(when (.exists f)
(-> f

View File

@ -1,14 +1,28 @@
(ns shapey-shifty.routes.home
(:require
[shapey-shifty.layout :as layout]
[clojure.java.io :as io]
[shapey-shifty.middleware :as middleware]
[ring.util.response]
[ring.util.http-response :as response]))
[shapey-shifty.layout :as layout]
[clojure.java.io :as io]
[shapey-shifty.middleware :as middleware]
[ring.util.response]
[shapey-shifty.posts.core :as posts]
[shapey-shifty.posts.posts-io :as post-io]
[shapey-shifty.routes.post-router :as post-router]
[ring.util.http-response :as response]))
(def p (atom 0))
(defn home-page [request]
(layout/render request "home.html" {:docs (-> "docs/docs.md" io/resource slurp)}))
(defn test-view [request]
(layout/render request "post.html" {:post (-> (posts/create-empty-post) (posts/set-content "Hey there everyone!") (posts/set-name "Yolo") :properties)}))
(defn post-view [request]
(let [{:keys [path-params query-params body-params]} request
{:keys [year month day n]} path-params]
(do (reset! p request)
(layout/render request "post.html" {:post (:properties (post-router/get-post year month day n))}))))
(defn about-page [request]
(layout/render request "about.html"))
@ -17,5 +31,6 @@
{:middleware [middleware/wrap-csrf
middleware/wrap-formats]}
["/" {:get home-page}]
["/blog/:year/:month/:day/:n" {:get post-view}]
["/about" {:get about-page}]])

View File

@ -0,0 +1,7 @@
(ns shapey-shifty.routes.post-router
(:require [shapey-shifty.posts.core :as po]
[shapey-shifty.posts.posts-io :as io]))
(defn get-post
([dt-path n] (io/read-post dt-path n))
([year month day n] (#(io/read-post % n) (io/create-path-by-date year month day))))