From: Frédéric Perrin Date: Tue, 2 Apr 2024 18:32:10 +0000 (+0100) Subject: Add atom:link with rel=self for RSS feeds X-Git-Url: https://gitweb.fperrin.net/?p=atom.el.git;a=commitdiff_plain;h=89d25037a27e22d46eed0cf9dea6018b098c66db Add atom:link with rel=self for RSS feeds --- diff --git a/atom.el b/atom.el index 39bfef7..b0d0512 100644 --- a/atom.el +++ b/atom.el @@ -171,11 +171,15 @@ fragment. See `atom-add-entry' for additional details." (write-file filename))) -(defun atom-to-rss (atom) +(defun atom-to-rss (atom &optional rss-self) "Translate an Atom feed into an RSS one, returning the translation. Some information may be lost or approximated." (let ((rss (list (assoc 'title atom)))) + (if rss-self + (atom-modify-entry rss 'atom:link + `(((href . ,rss-self) (rel . "self") + (type . "application/atom+xml"))))) (atom-to-rss-translator atom rss '((subtitle . description) (updated . pubDate) (link . link))) @@ -217,10 +221,11 @@ Some information may be lost or approximated." (setcar (cdr link) nil) (setcdr (cdr link) (cons link-addr nil))))) -(defun atom-print-as-rss (atom) - (let ((rss (atom-to-rss atom))) +(defun atom-print-as-rss (atom &optional rss-self) + (let ((rss (atom-to-rss atom rss-self))) (insert atom-xml-declaration) - (insert "\n") + ;; xmlns:atom included in order to allow the atom:link rel=self element + (insert "\n") (insert " \n") (xml-print rss " ") (insert "\n \n") @@ -238,10 +243,10 @@ format used by RSS." (setcar (cddr pubDate) (atom-to-rss-time (car (xml-node-children pubDate)))))) -(defun atom-to-rss-write-file (atom filename) +(defun atom-to-rss-write-file (atom filename &optional rss-self) "Saves ATOM as a RSS feed into FILENAME." (with-temp-buffer - (atom-print-as-rss atom) + (atom-print-as-rss atom rss-self) (write-file filename)))