From c06f101307d0f00268d6982802af7d876d460174 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 15 Nov 2016 23:02:29 +0100 Subject: [PATCH] Remove background colors from shr --- emacs/.emacs.d/init.org | 8 ++++++++ emacs/.emacs.d/init/oni-shr-init.org | 28 ++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 emacs/.emacs.d/init/oni-shr-init.org diff --git a/emacs/.emacs.d/init.org b/emacs/.emacs.d/init.org index 6a3ba45..e2e3821 100644 --- a/emacs/.emacs.d/init.org +++ b/emacs/.emacs.d/init.org @@ -456,6 +456,14 @@ To start off, first I need to enable lexical binding. (add-hook 'minibuffer-setup-hook 'electric-pair-local-mode) #+END_SRC +* Libraries + + - [[file:init/oni-shr-init.org][shr]] + + #+BEGIN_SRC emacs-lisp + (with-eval-after-load 'shr (load "oni-shr-init")) + #+END_SRC + * Minor modes - [[file:init/oni-company-init.org][Company mode]] :: A better auto completion system than auto diff --git a/emacs/.emacs.d/init/oni-shr-init.org b/emacs/.emacs.d/init/oni-shr-init.org new file mode 100644 index 0000000..3aa8626 --- /dev/null +++ b/emacs/.emacs.d/init/oni-shr-init.org @@ -0,0 +1,28 @@ +#+TITLE: shr configuration + +#+BEGIN_SRC emacs-lisp + (require 'shr) +#+END_SRC + +* Remove background colors + + Define a procedure that removes the last argument it gets if there + are more than 3. + + #+BEGIN_SRC emacs-lisp + (defun oni:shr-colorize-remove-last-arg (args) + "If ARGS has more than 3 items, remove the last one." + (if (> (length args) 3) + (butlast args) + args)) + #+END_SRC + + Add the function as a filter-args advice to + =shr-colorize-region=. The last (fourth) argument to that function + is the background color to use, it's optional, so removing it + effectively stops shr from adding background colors. + + #+BEGIN_SRC emacs-lisp + (advice-add #'shr-colorize-region :filter-args + #'oni:shr-colorize-remove-last-arg) + #+END_SRC