Modification to allow the generated rss xml to pass xsd validation.
1) Removed the <author> tag from each <item>. The presence of this tag is ok here but the xsd requires that the content include a valid email address, not just the name string coming from the site config (Forms that pass validation are "test@xyz.com" or "test@xyz.com (Test McTester)" ). And who would want to advertise their real email like that? :) 2) Removed the <author> tag from the <channel>. <author> isn't a valid child element of a channel. There is a child element called <webMaster> that is a close analogue but it also requires content as above.
This commit is contained in:
parent
e3641885a2
commit
6b45fdc35a
1 changed files with 5 additions and 7 deletions
|
@ -5,7 +5,7 @@
|
||||||
(:import java.util.Date))
|
(:import java.util.Date))
|
||||||
|
|
||||||
|
|
||||||
(defn posts-to-items [site-url author posts]
|
(defn posts-to-items [site-url posts]
|
||||||
(map
|
(map
|
||||||
(fn [{:keys [uri title content date]}]
|
(fn [{:keys [uri title content date]}]
|
||||||
(let [link (str (if (.endsWith site-url "/") (apply str (butlast site-url)) site-url) uri)]
|
(let [link (str (if (.endsWith site-url "/") (apply str (butlast site-url)) site-url) uri)]
|
||||||
|
@ -13,8 +13,7 @@
|
||||||
:link link
|
:link link
|
||||||
:title title
|
:title title
|
||||||
:description content
|
:description content
|
||||||
:pubDate date
|
:pubDate date}))
|
||||||
:author author}))
|
|
||||||
posts))
|
posts))
|
||||||
|
|
||||||
(defn make-channel [config posts]
|
(defn make-channel [config posts]
|
||||||
|
@ -24,12 +23,11 @@
|
||||||
{:title (:site-title config)
|
{:title (:site-title config)
|
||||||
:link (:site-url config)
|
:link (:site-url config)
|
||||||
:description (:description config)
|
:description (:description config)
|
||||||
:lastBuildDate (Date.)
|
:lastBuildDate (Date.)})
|
||||||
:author (:author config)})
|
(posts-to-items (:site-url config) posts)))
|
||||||
(posts-to-items (:site-url config) (:author config) posts)))
|
|
||||||
|
|
||||||
(defn make-filtered-channels [public {:keys [rss-filters blog-prefix] :as config} posts-by-tag]
|
(defn make-filtered-channels [public {:keys [rss-filters blog-prefix] :as config} posts-by-tag]
|
||||||
(doseq [filter rss-filters]
|
(doseq [filter rss-filters]
|
||||||
(let [uri (str public blog-prefix "/" (name filter) ".xml")]
|
(let [uri (str public blog-prefix "/" (name filter) ".xml")]
|
||||||
(println "\t-->" (cyan uri))
|
(println "\t-->" (cyan uri))
|
||||||
(spit uri (make-channel config (get posts-by-tag filter))))))
|
(spit uri (make-channel config (get posts-by-tag filter))))))
|
||||||
|
|
Loading…
Reference in a new issue