about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/microformats/parser.clj11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj
index 5786f7c..eee04c4 100644
--- a/src/microformats/parser.clj
+++ b/src/microformats/parser.clj
@@ -225,11 +225,12 @@
 (defn get-mf-properties
   "Parse children of a microformat, returning a map of properties"
   [element]
-  (merge (parse-implied element)
-         (apply merge (map parse-p (html/select element [(html/attr-starts :class "p-")])))
-         (apply merge (map parse-u (html/select element [(html/attr-starts :class "u-")])))
-         (apply merge (map parse-dt (html/select element [(html/attr-starts :class "dt-")])))
-         (apply merge (map parse-e (html/select element [(html/attr-starts :class "e-")])))))
+  (let [cappend (partial merge-with concat)]
+    (merge (parse-implied element)
+           (apply cappend (map parse-p (html/select element [(html/attr-starts :class "p-")])))
+           (apply cappend (map parse-u (html/select element [(html/attr-starts :class "u-")])))
+           (apply cappend (map parse-dt (html/select element [(html/attr-starts :class "dt-")])))
+           (apply cappend (map parse-e (html/select element [(html/attr-starts :class "e-")]))))))
 
 (defn parse-h
   "Parse h-* classes within a HTML element."