Implement tiny h-card for posts
This commit is contained in:
parent
0d8a203c3c
commit
0676034b7d
4 changed files with 28 additions and 12 deletions
|
@ -1,6 +1,9 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<article class="h-entry">
|
||||
<div class="author-info">
|
||||
{% include "tiny_h_card.html" %}
|
||||
</div>
|
||||
<h1 class="p-name">{{post.name}}</h1>
|
||||
<div class="e-content">
|
||||
<p>{{post.content}}</p>
|
||||
|
|
5
resources/html/tiny_h_card.html
Normal file
5
resources/html/tiny_h_card.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
{% block card %}
|
||||
|
||||
<a class="h-card" href="{{card.url}}">{{card.first-name}} {{card.family-name}}</a>
|
||||
|
||||
{% endblock %}
|
|
@ -1,9 +1,10 @@
|
|||
(ns shapey-shifty.posts.posts-io
|
||||
(:require
|
||||
[shapey-shifty.posts.core :as core]))
|
||||
[shapey-shifty.posts.core :as core]
|
||||
[shapey-shifty.authors.author-core :as author]))
|
||||
|
||||
(def post-filename "post.json")
|
||||
(def base-path "resources/posts")
|
||||
(def base-posts-path "resources/posts")
|
||||
|
||||
(defn create-path-by-date [year month day]
|
||||
{:year year :month month :day day})
|
||||
|
@ -13,7 +14,7 @@
|
|||
|
||||
(defn count-posts-in-date [dt-path]
|
||||
(let [path (pathmap-to-path dt-path)
|
||||
final-path (format "%s/%s" base-path path)]
|
||||
final-path (format "%s/%s" base-posts-path path)]
|
||||
(->> final-path
|
||||
clojure.java.io/file
|
||||
file-seq
|
||||
|
@ -24,14 +25,22 @@
|
|||
(defn write-post [post dt-path]
|
||||
(let [path (pathmap-to-path dt-path)
|
||||
increment (inc (count-posts-in-date dt-path))
|
||||
final-path (format "%s/%s/%d/%s" base-path path increment post-filename)]
|
||||
final-path (format "%s/%s/%d/%s" base-posts-path path increment post-filename)]
|
||||
(clojure.java.io/make-parents final-path)
|
||||
(spit final-path post)))
|
||||
|
||||
(defn assoc-author [post]
|
||||
(let [filename (get-in post [:properties :author])
|
||||
author (author/load-author filename)
|
||||
card (get author :card)]
|
||||
(assoc post :author card)))
|
||||
|
||||
(defn read-post [dt-path n]
|
||||
(let [path (format "%s/%s/%s/%s" base-path (pathmap-to-path dt-path) n post-filename)
|
||||
(let [path (format "%s/%s/%s/%s" base-posts-path (pathmap-to-path dt-path) n post-filename)
|
||||
f (clojure.java.io/file path)]
|
||||
(when (.exists f)
|
||||
(-> f
|
||||
slurp
|
||||
read-string))))
|
||||
slurp
|
||||
read-string
|
||||
assoc-author
|
||||
))))
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
[shapey-shifty.authors.author-core :as author]
|
||||
[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)}))
|
||||
|
||||
|
@ -20,9 +18,10 @@
|
|||
|
||||
(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))}))))
|
||||
{:keys [year month day n]} path-params
|
||||
post (post-router/get-post year month day n)]
|
||||
(layout/render request "post.html" {:post (:properties post)
|
||||
:card (:author post)})))
|
||||
|
||||
(defn about-page [request]
|
||||
(layout/render request "h_card.html"
|
||||
|
|
Loading…
Reference in a new issue