From 062e51c5e6c1521dc36cbe2a12dede3ff3fe250f Mon Sep 17 00:00:00 2001 From: Lars Magne Ingebrigtsen Date: Tue, 19 Oct 2010 20:46:32 +0200 Subject: [PATCH 1/1] Have shr support span style="color: ..." --- lisp/ChangeLog | 3 +++ lisp/shr.el | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 528306bfc..aa81df166 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2010-10-19 Lars Magne Ingebrigtsen + * shr.el (shr-parse-style): New function. + (shr-tag-span): Ditto. + * nnmairix.el (nnmairix-summary-mode-hook): Move nnmairix's `$' command to `G G' to avoid collisions. diff --git a/lisp/shr.el b/lisp/shr.el index d16899c14..e360eab90 100644 --- a/lisp/shr.el +++ b/lisp/shr.el @@ -410,6 +410,29 @@ Return a string with image data." (defun shr-tag-s (cont) (shr-fontize-cont cont 'strike-through)) +(defun shr-tag-span (cont) + (let ((start (point)) + (color (cdr (assq 'color (shr-parse-style (cdr (assq :style cont))))))) + (shr-generic cont) + (when color + (let ((overlay (make-overlay start (point)))) + (overlay-put overlay 'face (cons 'foreground-color color)))))) + +(defun shr-parse-style (style) + (when style + (let ((plist nil)) + (dolist (elem (split-string style ";")) + (when elem + (setq elem (split-string elem ":")) + (when (and (car elem) + (cadr elem)) + (let ((name (replace-regexp-in-string "^ +\\| +$" "" (car elem))) + (value (replace-regexp-in-string "^ +\\| +$" "" (cadr elem)))) + (push (cons (intern name obarray) + value) + plist))))) + plist))) + (defun shr-tag-a (cont) (let ((url (cdr (assq :href cont))) (start (point)) -- 2.25.1