diff options
author | Alan Pearce | 2014-09-24 18:34:11 +0100 |
---|---|---|
committer | Alan Pearce | 2014-09-24 18:34:11 +0100 |
commit | eaf3f2052b41f813a30a081b3882136fa178a538 (patch) | |
tree | 63ff24324eab8398d69a1a2ca94d05aba70831e9 | |
parent | 078d97a2f8ca6da814ff0a6d405d5c375f860185 (diff) | |
download | microformats-eaf3f2052b41f813a30a081b3882136fa178a538.tar.lz microformats-eaf3f2052b41f813a30a081b3882136fa178a538.tar.zst microformats-eaf3f2052b41f813a30a081b3882136fa178a538.zip |
Parse multiple types of properties on a single element
-rw-r--r-- | src/microformats/parser.clj | 10 | ||||
-rw-r--r-- | test/microformats/parser_expectations.clj | 4 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index eee04c4..03e543f 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -227,10 +227,10 @@ [element] (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-")])))))) + (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-")])))))) (defn parse-h "Parse h-* classes within a HTML element." @@ -241,7 +241,7 @@ (defn select-h "Select h-* elements within a HTML document." [element] - (html/select element [(html/attr-starts :class "h-")])) + (html/select element [(html/attr-contains :class "h-")])) (defn parse-rel "Parse rel attributes of an HTML link element" diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj index 893872c..e89833b 100644 --- a/test/microformats/parser_expectations.clj +++ b/test/microformats/parser_expectations.clj @@ -127,6 +127,10 @@ (expect {:items [{:properties {:name '("Example User")} :type ["h-card"]}] :rels {}} (parse "<div class=\"h-card\"><p class=\"p-name\"> Example User </p></div>")) +(expect {:items [{:properties {:name '("Example User") :url '("http://example.com")} + :type ["h-card"]}] :rels {}} + (parse "<div class=\"h-card\"><a class=\"p-name u-url\" href=\"http://example.com\">Example User</></div>")) + (expect {:items [{:type ["h-card"] :properties {:name '("Example User")}}] :rels {}} (parse "<p class=\"h-card\">Example User</p>")) |