From 6d5093970156cc85794c9a5f503f93c9989d461b Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sun, 21 Sep 2014 20:53:25 +0100 Subject: Parse mf names into type array --- src/microformats/parser.clj | 11 ++++++++++- test/microformats/parser_expectations.clj | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj index b993a76..38bca21 100644 --- a/src/microformats/parser.clj +++ b/src/microformats/parser.clj @@ -144,6 +144,14 @@ (r/map #(hash-map % (get-e-value element))) (into {}))) +(defn- get-mf-names + "Get the microformat names from an element" + [element] + (->> element + element-to-classes + (r/filter (mf-names-from-class "h-")) + (into []))) + (defn parse-h "Parse h-* classes within a HTML element." [element] @@ -151,7 +159,8 @@ (html/attr-starts :class "u-") (html/attr-starts :class "dt-") (html/attr-starts :class "e-")])]))] - (hash-map :properties (apply merge ((juxt parse-p parse-u parse-dt parse-e) el))))) + (hash-map :type (get-mf-names element) + :properties (apply merge ((juxt parse-p parse-u parse-dt parse-e) el))))) (defn select-h "Select h-* elements within a HTML document." diff --git a/test/microformats/parser_expectations.clj b/test/microformats/parser_expectations.clj index 8f84cfc..8948840 100644 --- a/test/microformats/parser_expectations.clj +++ b/test/microformats/parser_expectations.clj @@ -113,5 +113,5 @@ (expect {:items [] :rels {}} (parse "")) -(expect {:items [{:properties {:name "Example User"}}] :rels {}} +(expect {:items [{:properties {:name "Example User"} :type ["h-card"]}] :rels {}} (parse "
Example User