|
|
|
@ -20,8 +20,19 @@ |
|
|
|
(def max-title-length 80) |
|
|
|
(def max-title-length 80) |
|
|
|
|
|
|
|
|
|
|
|
; Markdown -> HTML mapper |
|
|
|
; Markdown -> HTML mapper |
|
|
|
(defremote md-to-html [draft] |
|
|
|
(defn md-to-html [md-text] |
|
|
|
(.markdownToHtml (PegDownProcessor.) draft)) |
|
|
|
(.markdownToHtml (PegDownProcessor.) md-text)) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defn get-flash-key [] |
|
|
|
|
|
|
|
(let [k (encrypt (str (rand-int Integer/MAX_VALUE)))] |
|
|
|
|
|
|
|
(do (flash-put! k true) |
|
|
|
|
|
|
|
(print-str k)))) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
; This function answers to a corresponding AJAX request |
|
|
|
|
|
|
|
(defremote get-preview-md [session-key md] |
|
|
|
|
|
|
|
(when (flash-get session-key) |
|
|
|
|
|
|
|
{:session-key (get-flash-key) |
|
|
|
|
|
|
|
:preview (md-to-html md)})) |
|
|
|
|
|
|
|
|
|
|
|
; Template for the error sites |
|
|
|
; Template for the error sites |
|
|
|
(defn page-setter [code message] |
|
|
|
(defn page-setter [code message] |
|
|
|
@ -50,8 +61,7 @@ |
|
|
|
(common/layout "New Markdown Note" |
|
|
|
(common/layout "New Markdown Note" |
|
|
|
[:div.central-element |
|
|
|
[:div.central-element |
|
|
|
(form-to [:post "/post-note"] |
|
|
|
(form-to [:post "/post-note"] |
|
|
|
(hidden-field :session-key (let [k (encrypt (str (rand-int Integer/MAX_VALUE)))] |
|
|
|
(hidden-field :session-key (get-flash-key)) |
|
|
|
(do (flash-put! k true) (print-str k)))) |
|
|
|
|
|
|
|
(hidden-field {:id :session-value} :session-value) |
|
|
|
(hidden-field {:id :session-value} :session-value) |
|
|
|
(text-area {:class :max-width} :draft) |
|
|
|
(text-area {:class :max-width} :draft) |
|
|
|
[:div#buttons.hidden |
|
|
|
[:div#buttons.hidden |
|
|
|
@ -90,6 +100,7 @@ |
|
|
|
valid-hash (= (Short/parseShort session-value) ; the hash code is correct |
|
|
|
valid-hash (= (Short/parseShort session-value) ; the hash code is correct |
|
|
|
(nh/hash #(.codePointAt % 0) (str draft session-key)))] |
|
|
|
(nh/hash #(.codePointAt % 0) (str draft session-key)))] |
|
|
|
(do |
|
|
|
(do |
|
|
|
|
|
|
|
; TODO: delete this if tests are written |
|
|
|
(println "session:" valid-session "draft:" valid-draft "hash:" |
|
|
|
(println "session:" valid-session "draft:" valid-draft "hash:" |
|
|
|
(Short/parseShort session-value) |
|
|
|
(Short/parseShort session-value) |
|
|
|
(nh/hash #(.codePointAt % 0) (str draft session-key))) |
|
|
|
(nh/hash #(.codePointAt % 0) (str draft session-key))) |
|
|
|
|