summaryrefslogtreecommitdiff
path: root/src/clarktown/parsers/heading_block.clj
blob: 84a5fdb704807eaca69f63416b6ab19787d567b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(ns clarktown.parsers.heading-block
  (:require
    [clojure.string :as string]))


(defn is?
  "Determines whether the given block is a heading block or not."
  [block]
  (= true (-> (string/replace block #"\n" "")
              string/trim
              (string/starts-with? "#"))))


(defn render
  "Renders the heading block."
  [block _]
  (let [single-line-block (-> (string/replace block #"\n" "")
                              string/trim)
        size (-> (string/split single-line-block #" ")
                 first
                 string/trim
                 count)
        value (->> (string/split single-line-block #" ")
                   next
                   (string/join " ")
                   string/trim)]
    (str "<h" size ">" value "</h" size ">")))