Fork me on GitHub
#hoplon
<
2018-03-20
>
thedavidmeister03:03:00

hey, did anyone ever get a pattern/component library repo happening?

thedavidmeister03:03:49

whelp, i'm going to put something super minimal at https://github.com/thedavidmeister/hoplon-elem-lib

thedavidmeister06:03:52

ah well this is pretty sweet, if i do say so myself 😛

thedavidmeister06:03:03

(defn elem
 [name desc f examples]
 (h/div
  :class/elem-lib "elem-lib-item"
  :id (camel-snake-kebab.core/->kebab-case-string name)

  (h/h2 name)
  (h/code (str f))
  (h/p desc)
  (h/for-tpl [[d & args] examples]
   (h/div :class/elem-lib "elem-lib-example"
    (h/h3 d)
    (h/for-tpl [arg args]
     (j/with-let [code-block (h/code)]
      (code-block
       :class/elem-lib "clojure"
       (let [arg' @arg]
        (j/formula-of
         [arg']
         (h/with-animation-frame (syntax-highlighter.hoplon/highlight! code-block))
         (pr-str @arg))))))
    (apply @f @args)))))

thedavidmeister06:03:32

20 LOC elem library that has syntax highlighting and dynamic updating

thedavidmeister06:03:50

(elem-lib.hoplon/elem
   "Simple div"
   "This is just a div produced by hoplon"
   #'h/div
   [["No args"]
    ["Hello world!" "Hello world!"]
    ["A cell" (j/cell "A cell")]
    ["Attributes and content" :class "some-class" "Hi!"]
    ["A counter" (j/with-let [c (j/cell 0)]
                  (h/with-interval 1000 (swap! c inc)))]])))

thedavidmeister06:03:48

i'll get something up on clojars soonish