about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2014-09-24 19:07:20 +0100
committerAlan Pearce2014-09-24 19:11:28 +0100
commitb14be70cb06dc34dfc1823c5cf5151a798ac7379 (patch)
treeb6c4166761c1d58b2f857d35fd16319172f14e7e
parentabce14ea6914678045a0d69adf182e5a2d5b5ee1 (diff)
downloadmicroformats-b14be70cb06dc34dfc1823c5cf5151a798ac7379.tar.lz
microformats-b14be70cb06dc34dfc1823c5cf5151a798ac7379.tar.zst
microformats-b14be70cb06dc34dfc1823c5cf5151a798ac7379.zip
Ignore <br> and <hr>, even if they have mf classes
This isn't actually in the spec, but microformats-tests expects it.
-rw-r--r--src/microformats/parser.clj8
-rw-r--r--test/microformats/parser_expectations.clj10
2 files changed, 14 insertions, 4 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj
index 4706992..0454d21 100644
--- a/src/microformats/parser.clj
+++ b/src/microformats/parser.clj
@@ -223,16 +223,16 @@
                     :photo (list (parse-implied-photo element))})))
 
 (defn- select-p
-  [element] (html/select element [(html/attr-contains :class "p-")]))
+  [element] (html/select element [[(html/but-node #{:br :hr}) (html/attr-contains :class "p-")]]))
 
 (defn- select-u
-  [element] (html/select element [(html/attr-contains :class "u-")]))
+  [element] (html/select element [[(html/but-node #{:br :hr}) (html/attr-contains :class "u-")]]))
 
 (defn- select-dt
-  [element] (html/select element [(html/attr-contains :class "dt-")]))
+  [element] (html/select element [[(html/but-node #{:br :hr}) (html/attr-contains :class "dt-")]]))
 
 (defn- select-e
-  [element] (html/select element [(html/attr-contains :class "e-")]))
+  [element] (html/select element [[(html/but-node #{:br :hr}) (html/attr-contains :class "e-")]]))
 
 (defn get-mf-properties
   "Parse children of a microformat, returning a map of properties"
diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj
index e89833b..7a94929 100644
--- a/test/microformats/parser_expectations.clj
+++ b/test/microformats/parser_expectations.clj
@@ -186,6 +186,16 @@
 <a class=\"u-url\" href=\"http://myblog.com\">My Blog</a>
 </div>"))
 
+(expect {:items [{:type ["h-card"]
+                  :properties {:name '("Example")
+                               :tel '("01234567890")}}]
+         :rels {}}
+        (parse "<div class=\"h-card\">
+<p class=\"p-name\">Example</p>
+<p class=\"p-tel\">01234567890</p>
+<br class=\"p-tel\">
+</div>"))
+
 (expect
  {:items [{:type ["h-adr"],
            :properties {:street-address '("665 3rd St."),