diff options
-rw-r--r-- | src/microformats/parser.clj | 14 | ||||
-rw-r--r-- | test/microformats/parser_expectations.clj | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index 0b26372..4f63d55 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -92,6 +92,13 @@ [root url] (url/resolve (get-base-url root) url)) +(defn get-value-title-class + "Get the value-title class of elements" + [elements] + (str/join " " (into [] ((comp (r/map :title) + (r/map :attrs)) + elements)))) + (defn get-value-class "Get the value class of elements" [elements] @@ -103,8 +110,11 @@ (defn find-value-class "Find and get the value class of elements" [el] - (when-let [values (seq (html/select el [html/root :> :.value]))] - (get-value-class values))) + (anacond + (not-empty (html/select el [html/root :> :.value-title])) + (get-value-title-class %) + (not-empty (html/select el [html/root :> :.value ])) + (get-value-class %))) (declare parse-h) diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj index 92e4448..5486898 100644 --- a/test/microformats/parser_expectations.clj +++ b/test/microformats/parser_expectations.clj @@ -67,6 +67,9 @@ (expect {:name '("Name")} (parse-p (snippet "<p class=\"p-name\"><span class=\"value\">Name</span></p>"))) +(expect {:name '("Name")} + (parse-p (snippet "<p class=\"p-name\"><span class=\"value-title\" title=\"Name\">Not this name</span></p>"))) + (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>"))) |