diff options
-rw-r--r-- | src/microformats/parser.clj | 10 | ||||
-rw-r--r-- | test/microformats/parser_expectations.clj | 19 |
2 files changed, 24 insertions, 5 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index 8e325e3..fb0dc0d 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -174,13 +174,13 @@ (defn parse-h "Parse h-* classes within a HTML element." [element] - (let [el (first (html/select element [(html/union [(html/attr-starts :class "p-") - (html/attr-starts :class "u-") - (html/attr-starts :class "dt-") - (html/attr-starts :class "e-")])]))] + (let [el (html/select element [(html/union [(html/attr-starts :class "p-") + (html/attr-starts :class "u-") + (html/attr-starts :class "dt-") + (html/attr-starts :class "e-")])])] (hash-map :type (get-mf-names element) :properties (merge (parse-implied element) - (apply merge ((juxt parse-p parse-u parse-dt parse-e) el)))))) + (apply merge (map #(apply merge %) (map (juxt parse-p parse-u parse-dt parse-e) el))))))) (defn select-h "Select h-* elements within a HTML document." diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj index 93a21b0..2fc8a19 100644 --- a/test/microformats/parser_expectations.clj +++ b/test/microformats/parser_expectations.clj @@ -129,3 +129,22 @@ (expect {:items [{:type ["h-card"] :properties {:name '("Example User")}}] :rels {}} (parse "<p class=\"h-card\">Example User</p>")) + +(expect + {:items [{:type ["h-adr"], + :properties {:street-address '("665 3rd St."), + :extended-address '("Suite 207"), + :locality '("San Francisco"), + :region '("CA"), + :postal-code '("94107"), + :country-name '("U.S.A."), + :name '("665 3rd St. Suite 207 San Francisco, CA 94107 U.S.A.")}}] + :rels {}} + (parse "<p class=\"h-adr\"> +<span class=\"p-street-address\">665 3rd St.</span> +<span class=\"p-extended-address\">Suite 207</span> +<span class=\"p-locality\">San Francisco</span>, +<span class=\"p-region\">CA</span> +<span class=\"p-postal-code\">94107</span> +<span class=\"p-country-name\">U.S.A.</span> +</p>")) |