about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2014-09-22 20:02:22 +0100
committerAlan Pearce2014-09-22 20:02:22 +0100
commit21830ef89ee29c4dfbaa4340601ef837ffb53159 (patch)
tree213eb221c90ae927b30cfb5a49b105e8a30e0074
parentd5b6c2d56e84a93232c2d3c87d93b70102006bee (diff)
downloadmicroformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.tar.lz
microformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.tar.zst
microformats-21830ef89ee29c4dfbaa4340601ef837ffb53159.zip
Output lists of values according to spec
-rw-r--r--src/microformats/parser.clj12
-rw-r--r--test/microformats/parser_expectations.clj62
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>"))