From 0d8a203c3c8cac2b174c9845d42d1d2a6910f2db Mon Sep 17 00:00:00 2001 From: Charlotte Allen Date: Tue, 28 Jan 2020 16:23:05 -0800 Subject: [PATCH] Add means to record and display an author --- resources/author/sample_user | 15 +++++++----- resources/html/h_card.html | 18 ++++++++++++++ src/clj/shapey_shifty/authors/author_core.clj | 24 +++++++++++++++++++ src/clj/shapey_shifty/routes/home.clj | 12 ++++++---- 4 files changed, 59 insertions(+), 10 deletions(-) create mode 100644 resources/html/h_card.html create mode 100644 src/clj/shapey_shifty/authors/author_core.clj diff --git a/resources/author/sample_user b/resources/author/sample_user index 946a3b5..9f1a777 100644 --- a/resources/author/sample_user +++ b/resources/author/sample_user @@ -1,8 +1,11 @@ { - :first-name nil - :family-name nil - :rel-me [] - :job-title nil - :org nil - :photo nil + :card { + :first-name nil + :family-name nil + :rel-me [] + :job-title nil + :org nil + :photo nil + } + :password-hash nil } diff --git a/resources/html/h_card.html b/resources/html/h_card.html new file mode 100644 index 0000000..c76989f --- /dev/null +++ b/resources/html/h_card.html @@ -0,0 +1,18 @@ +{% block card %} + +
+ +

{{ card.first-name }} {{ card.family-name }}

+ +
+ +{% endblock %} + diff --git a/src/clj/shapey_shifty/authors/author_core.clj b/src/clj/shapey_shifty/authors/author_core.clj new file mode 100644 index 0000000..94a9297 --- /dev/null +++ b/src/clj/shapey_shifty/authors/author_core.clj @@ -0,0 +1,24 @@ +(ns shapey-shifty.authors.author-core + (:require [clojure.edn :as edn] + [clojure.java.io :as io])) + +(def base-path "resources/author") + +(defn create-author [] + {:card nil :password-hash nil}) + +(defn load-author [author-name] + (let [path (format "%s/%s" base-path author-name) + file (io/file path)] + (when (.exists file) + (->> file + slurp + edn/read-string)))) + +(defn load-all-authors [] + (->> base-path + io/file + file-seq + (filter #(.isFile %)) + (map #(->> % slurp edn/read-string)))) + diff --git a/src/clj/shapey_shifty/routes/home.clj b/src/clj/shapey_shifty/routes/home.clj index 9334e72..6ba1d7e 100644 --- a/src/clj/shapey_shifty/routes/home.clj +++ b/src/clj/shapey_shifty/routes/home.clj @@ -7,6 +7,7 @@ [shapey-shifty.posts.core :as posts] [shapey-shifty.posts.posts-io :as post-io] [shapey-shifty.routes.post-router :as post-router] + [shapey-shifty.authors.author-core :as author] [ring.util.http-response :as response])) (def p (atom 0)) @@ -19,12 +20,15 @@ (defn post-view [request] (let [{:keys [path-params query-params body-params]} request - {:keys [year month day n]} path-params] + {: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))})))) + (layout/render request "post.html" {:post (:properties (post-router/get-post year month day n))})))) (defn about-page [request] - (layout/render request "about.html")) + (layout/render request "h_card.html" + { + :card (:card (author/load-author (get-in request [:path-params :name]))) + })) (defn home-routes [] ["" @@ -32,5 +36,5 @@ middleware/wrap-formats]} ["/" {:get home-page}] ["/blog/:year/:month/:day/:n" {:get post-view}] - ["/about" {:get about-page}]]) + ["/about/:name" {:get about-page}]])