* bug#49433: 28.0.50; [PATCH] Add faces for shr heading elements (bug#49433)
2021-07-06 7:37 bug#49433: 28.0.50; Faulty list of faces in shr-tag-h1 Protesilaos Stavrou
@ 2021-07-06 7:47 ` Protesilaos Stavrou
2021-07-06 15:06 ` bug#49433: 28.0.50; Faulty list of faces in shr-tag-h1 Lars Ingebrigtsen
0 siblings, 1 reply; 3+ messages in thread
From: Protesilaos Stavrou @ 2021-07-06 7:47 UTC (permalink / raw)
To: 49433
[-- Attachment #1: Type: text/plain, Size: 375 bytes --]
In bug#49433 I noted how shr-tag-h1 creates a faulty anonymous face that
users cannot inspect properly. The attached patch fixes this issue and
also provides named faces for all shr heading levels from 1-6.
The attributes of those new faces are the same as before for
backward-compatibility in terms of visuals.
Thank you!
--
Protesilaos Stavrou
https://protesilaos.com
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-faces-for-shr-heading-elements-bug-49433.patch --]
[-- Type: text/x-patch, Size: 2751 bytes --]
From c8b70c1a020e2352379368fd9c2a2647bf88c4d8 Mon Sep 17 00:00:00 2001
Message-Id: <c8b70c1a020e2352379368fd9c2a2647bf88c4d8.1625557498.git.info@protesilaos.com>
From: Protesilaos Stavrou <info@protesilaos.com>
Date: Tue, 6 Jul 2021 10:44:46 +0300
Subject: [PATCH] Add faces for shr heading elements (bug#49433)
* etc/NEWS: Document new faces.
* lisp/net/shr.el (shr-h1, shr-h2, shr-h3, shr-h4, shr-h5, shr-h6):
Define new faces.
(shr-tag-h1): Remove inclusion of 'variable-pitch' face. Fix
bug#49433 by applying a new face directly.
(shr-tag-h2, shr-tag-h3, shr-tag-h4, shr-tag-h5, shr-tag-h6): Apply
new faces.
---
etc/NEWS | 4 ++++
lisp/net/shr.el | 41 +++++++++++++++++++++++++++++++++--------
2 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index c3eaf5fcbb..b1ab6941d0 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1620,6 +1620,10 @@ t, which preserves the original behavior.
If set non-nil, showing an unseen message will set the Rmail buffer's
modified flag.
+---
+*** New faces for heading elements.
+Those are 'shr-h1', 'shr-h2', 'shr-h3', 'shr-h4', 'shr-h5', 'shr-h6'.
+
** Apropos
*** New commands 'apropos-next-symbol' and 'apropos-previous-symbol'.
diff --git a/lisp/net/shr.el b/lisp/net/shr.el
index 873f0457e3..85d81b6bbc 100644
--- a/lisp/net/shr.el
+++ b/lisp/net/shr.el
@@ -183,6 +183,33 @@ (defface shr-abbreviation
"Face for <abbr> elements."
:version "27.1")
+(defface shr-h1
+ '((t :height 1.3 :weight bold))
+ "Face for <h1> elements."
+ :version "28.1")
+
+(defface shr-h2
+ '((t :weight bold))
+ "Face for <h2> elements."
+ :version "28.1")
+
+(defface shr-h3
+ '((t :slant italic))
+ "Face for <h3> elements."
+ :version "28.1")
+
+(defface shr-h4 nil
+ "Face for <h4> elements."
+ :version "28.1")
+
+(defface shr-h5 nil
+ "Face for <h5> elements."
+ :version "28.1")
+
+(defface shr-h6 nil
+ "Face for <h6> elements."
+ :version "28.1")
+
(defcustom shr-inhibit-images nil
"If non-nil, inhibit loading images."
:version "28.1"
@@ -1939,24 +1966,22 @@ (defun shr-tag-span (dom)
(shr-generic dom))
(defun shr-tag-h1 (dom)
- (shr-heading dom (if shr-use-fonts
- '(variable-pitch (:height 1.3 :weight bold))
- 'bold)))
+ (shr-heading dom 'shr-h1))
(defun shr-tag-h2 (dom)
- (shr-heading dom 'bold))
+ (shr-heading dom 'shr-h2))
(defun shr-tag-h3 (dom)
- (shr-heading dom 'italic))
+ (shr-heading dom 'shr-h3))
(defun shr-tag-h4 (dom)
- (shr-heading dom))
+ (shr-heading dom 'shr-h4))
(defun shr-tag-h5 (dom)
- (shr-heading dom))
+ (shr-heading dom 'shr-h5))
(defun shr-tag-h6 (dom)
- (shr-heading dom))
+ (shr-heading dom 'shr-h6))
(defun shr-tag-hr (_dom)
(shr-ensure-newline)
--
2.32.0
^ permalink raw reply related [flat|nested] 3+ messages in thread