about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/microformats/parser.clj18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj
index c741549..c44803b 100644
--- a/src/microformats/parser.clj
+++ b/src/microformats/parser.clj
@@ -1,6 +1,20 @@
-(ns microformats.parser)
+(ns microformats.parser
+  (:require [net.cgrand.enlive-html :as html]))
+
+;;; Turn string into stream
+
+(defn parse-p
+  "Parse p-* classes within HTML element."
+  [element]
+  (hash-map :properties (hash-map :name (first (:content (first (html/select element [:.p-name])))))))
+
+(defn parse-h
+  "Parse h-* classes within a HTML document."
+  [html]
+  (mapv parse-p (html/select html [:.h-card])))
 
 (defn parse
   "Parse a HTML string with microformats"
   [html]
-  {:items [] :rels {}})
+  (let [document (html/html-snippet html)]
+    {:items (parse-h document) :rels {}}))