diff options
author | Alan Pearce | 2014-09-22 20:02:22 +0100 |
---|---|---|
committer | Alan Pearce | 2014-09-22 20:02:22 +0100 |
commit | 21830ef89ee29c4dfbaa4340601ef837ffb53159 (patch) | |
tree | 213eb221c90ae927b30cfb5a49b105e8a30e0074 | |
parent | d5b6c2d56e84a93232c2d3c87d93b70102006bee (diff) | |
download | microformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.tar.lz microformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.tar.zst microformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.zip |
Output lists of values according to spec
-rw-r--r-- | src/microformats/parser.clj | 12 | ||||
-rw-r--r-- | test/microformats/parser_expectations.clj | 62 |
2 files changed, 37 insertions, 37 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index b3af5e3..de53855 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -105,8 +105,8 @@ "Get the e-x propery value of an element" [el] (let [content (:content el)] - {:html (apply str (node-to-html content)) - :value (apply str (html/texts content))})) + (list {:html (apply str (node-to-html content)) + :value (apply str (html/texts content))}))) (defn parse-p "Parse p-* classes within HTML element." @@ -114,7 +114,7 @@ (->> element element-to-classes ((classes-to-props "p-")) - (r/map #(hash-map % (get-p-value element))) + (r/map #(hash-map % (list (get-p-value element)))) (into {}))) (defn parse-u @@ -123,7 +123,7 @@ (->> element element-to-classes ((classes-to-props "u-")) - (r/map #(hash-map % (get-u-value element))) + (r/map #(hash-map % (list (get-u-value element)))) (into {}))) (defn parse-dt @@ -132,7 +132,7 @@ (->> element element-to-classes ((classes-to-props "dt-")) - (r/map #(hash-map % (get-dt-value element))) + (r/map #(hash-map % (list (get-dt-value element)))) (into {}))) (defn parse-e @@ -155,7 +155,7 @@ (defn- imply-name "Imply the name of an entity from the element" [element] - (or (first (:content element)))) + (:content element)) (defn parse-implied "Parse implied properties of a HTML element" diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj index 53f9ca5..498d8e1 100644 --- a/test/microformats/parser_expectations.clj +++ b/test/microformats/parser_expectations.clj @@ -16,91 +16,91 @@ (expect "Foo <strong>bar</strong>" (apply str (#'microformats.parser/node-to-html '("Foo " {:tag :strong, :attrs nil, :content ("bar")})))) -(expect {:name "Name"} +(expect {:name '("Name")} (parse-p (snippet "<p class=\"p-name\"><span class=\"value\">Name</span></p>"))) -(expect {:name "Name Endname"} +(expect {:name '("Name Endname")} (parse-p (snippet "<p class=\"p-name\"><span class=\"value\">Name</span> (this should not be included) <span class=\"value\">Endname</span></p>"))) -(expect {:name "Example User"} +(expect {:name '("Example User")} (parse-p (snippet "<p class=\"p-name\">Example User</p>"))) -(expect {:nickname "exuser"} +(expect {:nickname '("exuser")} (parse-p (snippet "<p class=\"p-nickname\">exuser</p>"))) -(expect {:name "Example User"} +(expect {:name '("Example User")} (parse-p (snippet "<img class=\"p-name\" alt=\"Example User\">"))) -(expect {:name "Example User"} +(expect {:name '("Example User")} (parse-p (snippet "<abbr class=\"p-name\" title=\"Example User\">@example</abbr>"))) -(expect {:name "@example"} +(expect {:name '("@example")} (parse-p (snippet "<abbr class=\"p-name\">@example</abbr>"))) -(expect {:name "Example User"} +(expect {:name '("Example User")} (parse-p (snippet "<data class=\"p-name\" value=\"Example User\"></data>"))) -(expect {:name "Example User"} +(expect {:name '("Example User")} (parse-p (snippet "<data class=\"p-name\">Example User</data>"))) -(expect {:name ""} +(expect {:name '("")} (parse-p (snippet "<br class=\"p-name\"/>"))) -(expect {:name ""} +(expect {:name '("")} (parse-p (snippet "<hr class=\"p-name\"/>"))) -(expect {:url "http://example.com"} +(expect {:url '("http://example.com")} (parse-u (snippet "<a class=\"u-url\" href=\"http://example.com\">Awesome example website</a>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<img class=\"u-photo\" src=\"http://example.com/someimage.png\">"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<area class=\"u-photo\" href=\"http://example.com/someimage.png\"></area>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<object class=\"u-photo\" data=\"http://example.com/someimage.png\"></object>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<abbr class=\"u-photo\" title=\"http://example.com/someimage.png\"></abbr>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<abbr class=\"u-photo\">http://example.com/someimage.png</abbr>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<data class=\"u-photo\" value=\"http://example.com/someimage.png\"></data>"))) -(expect {:photo "http://example.com/someimage.png"} +(expect {:photo '("http://example.com/someimage.png")} (parse-u (snippet "<data class=\"u-photo\">http://example.com/someimage.png</data>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<time class=\"dt-start\" datetime=\"2012-08-05T14:50\"></time>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<time class=\"dt-start\">2012-08-05T14:50</time>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<ins class=\"dt-start\" datetime=\"2012-08-05T14:50\"></ins>"))) -(expect {:end "2012-08-05T18:00"} +(expect {:end '("2012-08-05T18:00")} (parse-dt (snippet "<del class=\"dt-end\" datetime=\"2012-08-05T18:00\"></del>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<abbr class=\"dt-start\" title=\"2012-08-05T14:50\"></abbr>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<abbr class=\"dt-start\">2012-08-05T14:50</abbr>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<data class=\"dt-start\" value=\"2012-08-05T14:50\"></data>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<data class=\"dt-start\">2012-08-05T14:50</data>"))) -(expect {:start "2012-08-05T14:50"} +(expect {:start '("2012-08-05T14:50")} (parse-dt (snippet "<input class=\"dt-start\" value=\"2012-08-05T14:50\">"))) -(expect {:content {:html "Here is a load of <strong>embedded markup</strong>" :value "Here is a load of embedded markup"}} +(expect {:content '({:html "Here is a load of <strong>embedded markup</strong>" :value "Here is a load of embedded markup"})} (parse-e (snippet "<div class=\"e-content\">Here is a load of <strong>embedded markup</strong></div>"))) (expect {:author ["http://example.com/a"]} @@ -113,8 +113,8 @@ (expect {:items [] :rels {}} (parse "")) -(expect {:items [{:properties {:name "Example User"} :type ["h-card"]}] :rels {}} +(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 [{:type ["h-card"] :properties {:name "Example User"}}] :rels {}} +(expect {:items [{:type ["h-card"] :properties {:name '("Example User")}}] :rels {}} (parse "<p class=\"h-card\">Example User</p>")) |