(defn camel-case
"Returns camel case version of the key, e.g. :http-equiv becomes :httpEquiv."
[k]
(if (or (keyword? k)
(string? k)
(symbol? k))
(let [[first-word & words] (.split (name k) "-")]
(if (or (empty? words)
(= "aria" first-word)
(= "data" first-word))
k
(-> (map str/capitalize words)
(conj first-word)
str/join
keyword)))
k))