From 2bf7f18a47beb329f6dcd3776a819d6541cff166 Mon Sep 17 00:00:00 2001
From: Alan Pearce
Date: Tue, 23 Sep 2014 19:10:40 +0100
Subject: Add basic img property inferring
---
src/microformats/parser.clj | 13 +++++++++++--
test/microformats/parser_expectations.clj | 3 +++
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/microformats/parser.clj b/src/microformats/parser.clj
index 4f9f9e9..b28fce7 100644
--- a/src/microformats/parser.clj
+++ b/src/microformats/parser.clj
@@ -164,7 +164,9 @@
(defn- imply-name
"Imply the name of an entity from the element"
[element]
- (node-to-text (:content element)))
+ (case (:tag element)
+ :img (-> element :attrs :alt)
+ (node-to-text (:content element))))
(defn- imply-url
[element]
@@ -172,12 +174,19 @@
:a (-> element :attrs :href)
nil))
+(defn- imply-photo
+ [element]
+ (case (:tag element)
+ :img (-> element :attrs :src)
+ nil))
+
(defn parse-implied
"Parse implied properties of a HTML element"
[element]
(into {} (filter #(first (second %))
{:name (list (imply-name element))
- :url (list (imply-url element))})))
+ :url (list (imply-url element))
+ :photo (list (imply-photo element))})))
(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 bf39778..c903165 100644
--- a/test/microformats/parser_expectations.clj
+++ b/test/microformats/parser_expectations.clj
@@ -133,6 +133,9 @@
(expect {:items [{:type ["h-card"] :properties {:name '("Example User") :url '("http://example.com")}}] :rels {}}
(parse "Example User"))
+(expect {:items [{:type ["h-card"] :properties {:name '("Example User")
+ :photo '("http://example.com/me.png")}}] :rels {}}
+ (parse ""))
(expect
{:items [{:type ["h-adr"],
:properties {:street-address '("665 3rd St."),
--
cgit 1.4.1