Handle 'abbr' and 'acronym' tags in shr.el

* lisp/net/shr.el (shr-tag-abbr, shr-tag-acronym): New functions
handling 'abbr' and 'acronym' tags, respectively.
* etc/NEWS: Announce change in shr behavior (bug#36475).
This commit is contained in:
Nick Drozd 2019-07-06 14:02:37 +02:00 committed by Lars Ingebrigtsen
parent 72e21777d0
commit bda8a57141
2 changed files with 22 additions and 1 deletions

View file

@ -987,7 +987,7 @@ This attribute is meant to tell screen readers to ignore a tag.
*** 'shr-tag-ol' now respects the ordered list 'start' attribute.
---
*** The <code ...> tag is now handled.
*** The following tags are now handled: <code>, <abbr>, and <acronym>.
** Htmlfontify

View file

@ -161,6 +161,12 @@ temporarily blinks with this face."
:version "27.1"
:group 'shr)
(defface shr-abbreviation
'((t :inherit underline :underline (:style wave)))
"Face for <abbr> elements."
:version "27.1"
:group 'shr)
(defvar shr-inhibit-images nil
"If non-nil, inhibit loading images.")
@ -1472,6 +1478,21 @@ ones, in case fg and bg are nil."
(when url
(shr-urlify (or shr-start start) (shr-expand-url url) title))))
(defun shr-tag-abbr (dom)
(when-let* ((title (dom-attr dom 'title))
(start (point)))
(shr-generic dom)
(shr-add-font start (point) 'shr-abbreviation)
(add-text-properties
start (point)
(list
'help-echo title
'mouse-face 'highlight))))
(defun shr-tag-acronym (dom)
;; `acronym' is deprecated in favor of `abbr'.
(shr-tag-abbr dom))
(defun shr-tag-object (dom)
(unless shr-inhibit-images
(let ((start (point))