If set to @code{gnus-article-html}, Gnus will use the built-in method,
that's based on @code{curl} and @code{w3m}.
+@item gnus-blocked-images
+@vindex gnus-blocked-images
+Images that have @acronym{URL}s that match this regexp won't be
+fetched and displayed. For instance, do block all @acronym{URL}s that
+have the string ``ads'' in them, do the following:
+
+@lisp
+(setq gnus-blocked-images "ads")
+@end lisp
+
+The default is to block all external images.
+
@item gnus-html-cache-directory
@vindex gnus-html-cache-directory
Gnus will download and cache images according to how
-@code{mm-w3m-safe-url-regexp} is set. These images will be stored in
+@code{gnus-blocked-images} is set. These images will be stored in
this directory.
@item gnus-html-cache-size
:group 'gnus-art
:type 'integer)
+(defcustom gnus-blocked-images "."
+ "Images that have URLs matching this regexp will be blocked."
+ :group 'gnus-art
+ :type 'regexp)
+
;;;###autoload
(defun gnus-article-html (handle)
(let ((article-buffer (current-buffer)))
((equal tag "img_alt")
(when (string-match "src=\"\\([^\"]+\\)" parameters)
(setq url (match-string 1 parameters))
- (when (or (null mm-w3m-safe-url-regexp)
- (string-match mm-w3m-safe-url-regexp url))
- (if (string-match "^cid:\\(.*\\)" url)
- ;; URLs with cid: have their content stashed in other
- ;; parts of the MIME structure, so just insert them
- ;; immediately.
- (let ((handle (mm-get-content-id
- (setq url (match-string 1 url))))
- image)
- (when handle
- (mm-with-part handle
- (setq image (gnus-create-image (buffer-string)
- nil t))))
- (when image
- (delete-region start end)
- (gnus-put-image image)))
- ;; Normal, external URL.
+ (if (string-match "^cid:\\(.*\\)" url)
+ ;; URLs with cid: have their content stashed in other
+ ;; parts of the MIME structure, so just insert them
+ ;; immediately.
+ (let ((handle (mm-get-content-id
+ (setq url (match-string 1 url))))
+ image)
+ (when handle
+ (mm-with-part handle
+ (setq image (gnus-create-image (buffer-string)
+ nil t))))
+ (when image
+ (delete-region start end)
+ (gnus-put-image image)))
+ ;; Normal, external URL.
+ (when (or (null gnus-blocked-images)
+ (not (string-match gnus-blocked-images url)))
(let ((file (gnus-html-image-id url)))
(if (file-exists-p file)
;; It's already cached, so just insert it.
;;;###autoload
(defun gnus-html-prefetch-images (summary)
- (let (safe-url-regexp urls)
+ (let (blocked-images urls)
(when (buffer-live-p summary)
(with-current-buffer summary
- (setq safe-url-regexp mm-w3m-safe-url-regexp))
+ (setq blocked-images gnus-blocked-images))
(save-match-data
(while (re-search-forward "<img.*src=[\"']\\([^\"']+\\)" nil t)
(let ((url (match-string 1)))
- (when (or (null safe-url-regexp)
- (string-match safe-url-regexp url))
+ (when (or (null blocked-images)
+ (not (string-match blocked-images url)))
(unless (file-exists-p (gnus-html-image-id url))
(push url urls)
(push (gnus-html-image-id url) urls)