From 90d4ef777d61af7ad1990e9b3a65e42f591ed1ce Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Thu, 11 Sep 2014 18:10:03 +0100 Subject: Get correct property value for special tags img, area, abbr, data and input tags are all consumed differently. --- src/microformats/parser.clj | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index c39e396..959e1af 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -34,12 +34,23 @@ :class split-classes)) +(defn get-property + "Get the p-x property value of an element" + [el] + (case (:tag el) + :img (-> el :attrs :alt) + :area (-> el :attrs :alt) + :abbr (-> el :attrs :title) + :data (-> el :attrs :value) + :input (-> el :attrs :value) + (first (:content el)))) + (defn parse-p "Parse p-* classes within HTML element." [element] (let [el (first (html/select element [(html/attr-starts :class "p-")])) props (into [] ((classes-to-props "p-") (element-to-classes el)))] - (hash-map :properties (apply hash-map (first props) (repeat (count props) (first (:content el))))))) + (hash-map :properties (apply hash-map (first props) (repeat (count props) (get-property el)))))) (defn parse-h "Parse h-* classes within a HTML document." -- cgit 1.4.1