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
|
||||
(:require ["express" :as express]
|
||||
["express-handlebars" :refer [engine]]
|
||||
["express-handlebars" :refer [engine create]]
|
||||
["body-parser" :as body-parser]
|
||||
[blog.db :as db]
|
||||
[blog.env :as env]
|
||||
[blog.handlers :as handlers]))
|
||||
[blog.handlers :as handlers]
|
||||
[blog.helpers :as helpers]))
|
||||
|
||||
(def app (express))
|
||||
(def port (env/get-port))
|
||||
(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
|
||||
"Sets the engine to handlebars and simple set up."
|
||||
[]
|
||||
@@ -18,13 +36,15 @@
|
||||
(. app
|
||||
engine ".hbs" (engine (-> {:extname ".hbs"
|
||||
:defaultLayout "main"}
|
||||
(cljs.core/clj->js))))
|
||||
(clj->js))))
|
||||
|
||||
(. app
|
||||
set "view engine" ".hbs")
|
||||
|
||||
(. app
|
||||
set "views" "./views"))
|
||||
set "views" "./views")
|
||||
|
||||
(register-helpers))
|
||||
|
||||
(defn set-routes
|
||||
"Sets the routes for server."
|
||||
|
||||
Reference in New Issue
Block a user