Add the helpers for timestamp and brief contents.
This commit is contained in:
@@ -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."
|
||||||
|
|||||||
Reference in New Issue
Block a user