Function: nnatom--read-links
nnatom--read-links is a byte-compiled function defined in
nnatom.el.gz.
Signature
(nnatom--read-links ARTICLE)
Documentation
Return all links contained in ARTICLE, or nil.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnatom.el.gz
(defun nnatom--read-links (article)
"Return all links contained in ARTICLE, or nil."
(let ((alt 0) (rel 0) (sel 0) (enc 0) (via 0) (aut 0))
(mapcan
(lambda (link)
(when-let* ((l (car-safe link)))
(or
(when-let* (((eq l 'content))
(src (dom-attr link 'src))
(label (concat "Link"
(and (< 1 (incf alt))
(format " %s" alt)))))
`(((("text/plain") . ,(format "%s: %s\n" label src))
(("text/html") . ,(format "<a href=\"%s\">[%s]</a> "
src label)))))
(when-let* (((or (eq l 'author) (eq l 'contributor)))
(name (nnatom--dom-line (dom-child-by-tag link 'name)))
(name (if (string-blank-p name)
(concat "Author"
(and (< 1 (incf aut))
(format " %s" aut)))
name))
(uri (nnatom--dom-line (dom-child-by-tag link 'uri)))
((not (string-blank-p uri))))
`(((("text/plain") . ,(format "%s: %s\n" name uri))
(("text/html") . ,(format "<a href=\"%s\">[%s]</a> "
uri name)))))
(when-let* (((eq l 'link))
(attrs (dom-attributes link))
(label (or (cdr (assq 'title attrs))
(pcase (cdr (assq 'rel attrs))
("related"
(concat "Related"
(and (< 1 (incf rel))
(format " %s" rel))))
("self"
(concat "More"
(and (< 1 (incf sel))
(format " %s" sel))))
("enclosure"
(concat "Enclosure"
(and (< 1 (incf enc))
(format " %s" enc))))
("via"
(concat "Source"
(and (< 1 (incf via))
(format " %s" via))))
(_ (if-let*
((lang (cdr (assq 'hreflang link))))
(format "Link (%s)" lang)
(concat
"Link"
(and (< 1 (incf alt))
(format " %s" alt))))))))
(link (cdr (assq 'href attrs))))
`(((("text/plain") . ,(format "%s: %s\n" label link))
(("text/html") . ,(format "<a href=\"%s\">[%s]</a> "
link label))))))))
(dom-children (dom-child-by-tag article 'links)))))