Add the helpers for timestamp and brief contents.

main
KKlochko 1 year ago
parent 5ce17d3aa8
commit 9c0e888284

@ -0,0 +1,23 @@
(ns blog.helpers
(:require ["date-fns" :refer [format]]))
(defn truncatestring-factory
[]
(fn [text limit]
(-> (. text substring 0 limit)
(str "..."))))
(defn full-timestamp-factory
[]
(clj->js
(fn [timestamp]
(format timestamp "HH:mm MMM. do, yyyy"))))
(defn is-brief-factory
[]
(clj->js
(fn [length]
(if (> length 60)
"..."
""))))

@ -1,15 +1,33 @@
(ns blog.server (ns blog.server
(:require ["express" :as express] (:require ["express" :as express]
["express-handlebars" :refer [engine]] ["express-handlebars" :refer [engine create]]
["body-parser" :as body-parser] ["body-parser" :as body-parser]
[blog.db :as db] [blog.db :as db]
[blog.env :as env] [blog.env :as env]
[blog.handlers :as handlers])) [blog.handlers :as handlers]
[blog.helpers :as helpers]))
(def app (express)) (def app (express))
(def port (env/get-port)) (def port (env/get-port))
(def client (db/create-client)) (def client (db/create-client))
(defn register-helpers
"Register helpers to use them in the handlebars's templates."
[]
(let [hbs (create (clj->js {}))]
(.registerHelper (.-handlebars hbs)
"full-timestamp"
(helpers/full-timestamp-factory))
(.registerHelper (.-handlebars hbs)
"truncatestring"
(helpers/truncatestring-factory))
(.registerHelper (.-handlebars hbs)
"is-brief"
(helpers/is-brief-factory))))
(defn setup-engine (defn setup-engine
"Sets the engine to handlebars and simple set up." "Sets the engine to handlebars and simple set up."
[] []
@ -18,13 +36,15 @@
(. app (. app
engine ".hbs" (engine (-> {:extname ".hbs" engine ".hbs" (engine (-> {:extname ".hbs"
:defaultLayout "main"} :defaultLayout "main"}
(cljs.core/clj->js)))) (clj->js))))
(. app (. app
set "view engine" ".hbs") set "view engine" ".hbs")
(. app (. app
set "views" "./views")) set "views" "./views")
(register-helpers))
(defn set-routes (defn set-routes
"Sets the routes for server." "Sets the routes for server."

Loading…
Cancel
Save