X-Git-Url: https://gitweb.fperrin.net/?p=atom.git;a=blobdiff_plain;f=atom.el;h=d159eed7029a85c69e9e33afe78739b0fb6fa599;hp=c645cdabe08313b160472b6e32767c179dadd351;hb=2f1f8729baa9edb46b8b65b101fdfd81e0a8a59e;hpb=2b75d2a99cd209df02c6ee21f69e7499e5dc4a52 diff --git a/atom.el b/atom.el index c645cda..d159eed 100644 --- a/atom.el +++ b/atom.el @@ -66,25 +66,25 @@ (require 'xml) -(defun atom-create (title link &optional author self updated id) +(defun atom-create (title link &optional self id author updated) "Create a new atom structure. TITLE is the title for the feed, a short, text-only, human readable string. -AUTHOR is the author of the feed. See `atom-massage-author' for -the possible ways to specify it. - -SELF is the canonical URL to this feed. - LINK is the URL of a page responible for the content of this feed. -UPDATED is the date the feed was last updated. If not given, -`(current-time)' is used. +SELF is the canonical URL to this feed. ID is a unique identifier for this feed. If not given, it -defaults to LINK." +defaults to SELF. + +AUTHOR is the author of the feed. See `atom-massage-author' for +the possible ways to specify it. + +UPDATED is the date the feed was last updated. If not given, +`(current-time)' is used." (let ((atom-feed (list (list 'title nil title)))) (atom-modify-entry atom-feed 'link `(((href . ,link)))) (atom-modify-entry atom-feed 'author (atom-massage-author author)) @@ -92,7 +92,7 @@ defaults to LINK." `(((href . ,self) (rel . "self") (type . "application/atom+xml"))))) (atom-modify-entry atom-feed 'updated (atom-format-time updated)) - (atom-modify-entry atom-feed 'id (or id link)) + (atom-modify-entry atom-feed 'id (or id self link)) atom-feed)) (defun atom-push-entry (atom entry) @@ -167,6 +167,12 @@ fragment. See `atom-add-entry' for additional details." (xml-print atom) (insert "\n")) +(defun atom-write-file (atom filename) + "Writes the feed ATOM to FILENAME." + (with-temp-buffer + (atom-print atom) + (write-region (point-min) (point-max) filename))) + (defun atom-format-time (&optional time) "Format a time according to RFC3339."