about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAlan Pearce2014-09-24 13:30:11 +0100
committerAlan Pearce2014-09-24 13:30:11 +0100
commit2b01c9e53ded6e44d75b45fe955f00b79f3ef75e (patch)
tree090f27fbbbbae5e78ff10119a79d7be4951069dd
parentcdf600e89d0008ea42eaa60cc7b3abf0a18acff2 (diff)
downloadmicroformats-2b01c9e53ded6e44d75b45fe955f00b79f3ef75e.tar.lz
microformats-2b01c9e53ded6e44d75b45fe955f00b79f3ef75e.tar.zst
microformats-2b01c9e53ded6e44d75b45fe955f00b79f3ef75e.zip
Parse child implied URLs
-rw-r--r--src/microformats/parser.clj3
-rw-r--r--test/microformats/parser_expectations.clj4
2 files changed, 6 insertions, 1 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj
index ab14cd6..5786f7c 100644
--- a/src/microformats/parser.clj
+++ b/src/microformats/parser.clj
@@ -192,7 +192,8 @@
   [element]
   (case (:tag element)
     :a (-> element :attrs :href)
-    nil))
+    (if-let [% (first (html/select element [html/root :> [:a (html/attr? :href) html/only-of-type (html/but-node (html/attr-contains :class "h-"))]]))]
+      (-> % :attrs :href))))
 
 (defn- parse-implied-photo
   [element]
diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj
index 639c417..5c9984d 100644
--- a/test/microformats/parser_expectations.clj
+++ b/test/microformats/parser_expectations.clj
@@ -169,6 +169,10 @@
                                                 :photo '("http://example.com/me.png")}}] :rels {}}
         (parse "<div class=\"h-card\"><div><img alt=\"Example User\" src=\"http://example.com/me.png\"></div></div>"))
 
+(expect {:items [{:type ["h-card"] :properties {:name '("Example User") :url '("http://example.com")}}] :rels {}}
+        (parse "<div class=\"h-card\"><a href=\"http://example.com\">Example User</a></div>"))
+
+
 (expect
  {:items [{:type ["h-adr"],
            :properties {:street-address '("665 3rd St."),