diff options
-rw-r--r-- | src/microformats/parser.clj | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index 03e543f..4706992 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -222,15 +222,27 @@ :url (list (parse-implied-url element)) :photo (list (parse-implied-photo element))}))) +(defn- select-p + [element] (html/select element [(html/attr-contains :class "p-")])) + +(defn- select-u + [element] (html/select element [(html/attr-contains :class "u-")])) + +(defn- select-dt + [element] (html/select element [(html/attr-contains :class "dt-")])) + +(defn- select-e + [element] (html/select element [(html/attr-contains :class "e-")])) + (defn get-mf-properties "Parse children of a microformat, returning a map of properties" [element] (let [cappend (partial merge-with concat)] (merge (parse-implied element) - (apply cappend (map parse-p (html/select element [(html/attr-contains :class "p-")]))) - (apply cappend (map parse-u (html/select element [(html/attr-contains :class "u-")]))) - (apply cappend (map parse-dt (html/select element [(html/attr-contains :class "dt-")]))) - (apply cappend (map parse-e (html/select element [(html/attr-contains :class "e-")])))))) + (apply cappend (map parse-p (select-p element))) + (apply cappend (map parse-u (select-u element))) + (apply cappend (map parse-dt (select-dt element))) + (apply cappend (map parse-e (select-e element)))))) (defn parse-h "Parse h-* classes within a HTML element." |