summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/gnus/ChangeLog74
-rw-r--r--lisp/gnus/dns.el3
-rw-r--r--lisp/gnus/gnus-art.el48
-rw-r--r--lisp/gnus/gnus-cus.el5
-rw-r--r--lisp/gnus/gnus-group.el17
-rw-r--r--lisp/gnus/gnus-msg.el1
-rw-r--r--lisp/gnus/gnus-start.el1
-rw-r--r--lisp/gnus/gnus-sum.el2
-rw-r--r--lisp/gnus/nnrss.el151
-rw-r--r--man/ChangeLog17
-rw-r--r--man/emacs-mime.texi20
-rw-r--r--man/gnus.texi41
12 files changed, 336 insertions, 44 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index c9c5f76c601..fe3275c8380 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,77 @@
+2006-01-10 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnrss.el (nnrss-wash-html-in-text-plain-parts): New variable.
+ (nnrss-request-article): Render text/plain parts as HTML.
+
+ * gnus-art.el (gnus-article-wash-html-with-w3m): No need to narrow
+ the buffer.
+
+2006-01-08 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-cus.el (gnus-group-parameters): Sync posting-style with
+ custom definition of `gnus-posting-styles'.
+
+ * gnus-start.el (gnus-gnus-to-quick-newsrc-format): Bind
+ print-circle. Suggested by Kalle Olavi Niemitalo <kon@iki.fi>.
+
+2006-01-05 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * gnus-group.el (gnus-useful-groups): Use Gmane for ding. Use
+ nntp for bug archive.
+
+2006-01-05 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnrss.el (nnrss-request-article): Fix the way to fill text/plain
+ parts.
+ (nnrss-normalize-date): New function converts ISO 8601 date into
+ RFC822 style. Suggested by Mark Plaksin <happy@mcplaksin.org>.
+ (nnrss-check-group): Use it.
+
+2006-01-03 Rodrigo Ventura <yoda@isr.ist.utl.pt> (tiny change)
+
+ * gnus-xmas.el (gnus-xmas-group-startup-message): Typo
+ gnus-splash-face -> gnus-splash. Fixes starting from a TTY in
+ XEmacs.
+
+2006-01-01 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-sum.el (gnus-summary-work-articles): Remove useless `min'.
+
+ * nnrss.el (nnrss-fetch): Make it fail gracefully when it can't
+ fetch a feed. Suggested by Mark Plaksin <happy@mcplaksin.org>.
+ (nnrss-insert-w3): Ditto.
+
+2005-12-21 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnrss.el (nnrss-request-article): Fix last change; fill
+ text/plain parts.
+
+2005-12-20 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * nnrss.el (nnrss-request-article): Replace <br />s with newlines
+ in text/plain part.
+ (nnrss-check-group): Don't add excessive newline to dc:subject.
+
+2005-12-19 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-art.el (gnus-article-delete-text-of-type): Enable it to
+ remove MIME buttons associated with multipart/alternative parts.
+ (gnus-mime-display-alternative): Tag buttons using `article-type'
+ text property.
+
+ * gnus-msg.el (gnus-copy-article-buffer): Remove MIME buttons
+ associated with multipart/alternative parts.
+
+2005-12-19 Mark Plaksin <happy@mcplaksin.org> (tiny change)
+
+ * nnrss.el (nnrss-check-group): Put the RSS dc:subject in the
+ article.
+
+2005-12-18 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * dns.el (query-dns): Make sure we check the buffer size before
+ removing tcp headers.
+
2006-01-08 Chong Yidong <cyd@stupidchicken.com>
* spam.el (spam-group-ham-mark-p, spam-group-spam-mark-p)
diff --git a/lisp/gnus/dns.el b/lisp/gnus/dns.el
index 01c373ba954..d73848ca6e5 100644
--- a/lisp/gnus/dns.el
+++ b/lisp/gnus/dns.el
@@ -343,7 +343,8 @@ If FULLP, return the entire record returned."
(decf times step))
(ignore-errors
(delete-process process))
- (when tcp-p
+ (when (and tcp-p
+ (>= (buffer-size) 2))
(goto-char (point-min))
(delete-region (point) (+ (point) 2)))
(unless (zerop (buffer-size))
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index ad3c91f3579..77177765821 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -1632,10 +1632,24 @@ Initialized from `text-mode-syntax-table.")
"Delete text of TYPE in the current buffer."
(save-excursion
(let ((b (point-min)))
- (while (setq b (text-property-any b (point-max) 'article-type type))
- (delete-region
- b (or (text-property-not-all b (point-max) 'article-type type)
- (point-max)))))))
+ (if (eq type 'multipart)
+ ;; Remove MIME buttons associated with multipart/alternative parts.
+ (progn
+ (goto-char b)
+ (while (if (get-text-property (point) 'gnus-part)
+ (setq b (point))
+ (when (setq b (next-single-property-change (point)
+ 'gnus-part))
+ (goto-char b)
+ t))
+ (end-of-line)
+ (skip-chars-forward "\n")
+ (when (eq (get-text-property b 'article-type) 'multipart)
+ (delete-region b (point)))))
+ (while (setq b (text-property-any b (point-max) 'article-type type))
+ (delete-region
+ b (or (text-property-not-all b (point-max) 'article-type type)
+ (point-max))))))))
(defun gnus-article-delete-invisible-text ()
"Delete all invisible text in the current buffer."
@@ -2500,19 +2514,17 @@ If READ-CHARSET, ask for a coding system."
(defun gnus-article-wash-html-with-w3m ()
"Wash the current buffer with emacs-w3m."
(mm-setup-w3m)
- (save-restriction
- (narrow-to-region (point) (point-max))
- (let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
- w3m-force-redisplay)
- (w3m-region (point-min) (point-max)))
- (when (and mm-inline-text-html-with-w3m-keymap
- (boundp 'w3m-minor-mode-map)
- w3m-minor-mode-map)
- (add-text-properties
- (point-min) (point-max)
- (list 'keymap w3m-minor-mode-map
- ;; Put the mark meaning this part was rendered by emacs-w3m.
- 'mm-inline-text-html-with-w3m t)))))
+ (let ((w3m-safe-url-regexp mm-w3m-safe-url-regexp)
+ w3m-force-redisplay)
+ (w3m-region (point-min) (point-max)))
+ (when (and mm-inline-text-html-with-w3m-keymap
+ (boundp 'w3m-minor-mode-map)
+ w3m-minor-mode-map)
+ (add-text-properties
+ (point-min) (point-max)
+ (list 'keymap w3m-minor-mode-map
+ ;; Put the mark meaning this part was rendered by emacs-w3m.
+ 'mm-inline-text-html-with-w3m t))))
(defun article-hide-list-identifiers ()
"Remove list identifies from the Subject header.
@@ -4956,7 +4968,7 @@ If displaying \"text/html\" is discouraged \(see
,gnus-mouse-face-prop ,gnus-article-mouse-face
face ,gnus-article-button-face
gnus-part ,id
- gnus-data ,handle))
+ article-type multipart))
(widget-convert-button 'link from (point)
:action 'gnus-widget-press-button
:button-keymap gnus-widget-button-keymap)
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index df10c769315..df09fd43e48 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -235,8 +235,11 @@ See `gnus-emphasis-alist'.")
(const signature-file)
(const organization)
(const address)
+ (const x-face-file)
(const name)
- (const body))
+ (const body)
+ (symbol)
+ (string :tag "Header"))
(string :format "%v"))))
"post style.
See `gnus-posting-styles'."))
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 9a2516d2c03..4246dbe6d86 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -284,14 +284,15 @@ variable."
:type 'hook)
(defcustom gnus-useful-groups
- '(("(ding) mailing list mirrored at sunsite.auc.dk"
- "emacs.ding"
- (nntp "sunsite.auc.dk"
- (nntp-address "sunsite.auc.dk")))
- ("gnus-bug archive"
- "gnus-bug"
- (nndir "/ftp@ftp.ifi.uio.no:/pub/emacs/gnus/gnus-bug/"))
- ("Gnus help group"
+ '(("(ding) mailing list mirrored at gmane.org"
+ "gmane.emacs.gnus.general"
+ (nntp "Gmane"
+ (nntp-address "news.gmane.org")))
+ ("Gnus bug archive"
+ "gnus.gnus-bug"
+ (nntp "news.gnus.org"
+ (nntp-address "news.gnus.org")))
+ ("Local Gnus help group"
"gnus-help"
(nndoc "gnus-help"
(nndoc-article-type mbox)
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index eced2a8097a..a1efede2a4d 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -844,6 +844,7 @@ header line with the old Message-ID."
(delete-region (point) (point-max))
(insert yank-string))
(gnus-article-delete-text-of-type 'annotation)
+ (gnus-article-delete-text-of-type 'multipart)
(gnus-remove-text-with-property 'gnus-prev)
(gnus-remove-text-with-property 'gnus-next)
(gnus-remove-text-with-property 'gnus-decoration)
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index 53bcc4be15f..a7ae3eb95fe 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -2818,6 +2818,7 @@ If FORCE is non-nil, the .newsrc file is read."
(print-escape-nonascii t)
(print-length nil)
(print-level nil)
+ (print-circle nil)
(print-escape-newlines t)
(gnus-killed-list
(if (and gnus-save-killed-list
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index 51f03061d4f..cd8d3c03d79 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -6114,7 +6114,7 @@ current article will be taken into consideration."
(let ((max (max (point) (mark)))
articles article)
(save-excursion
- (goto-char (min (min (point) (mark))))
+ (goto-char (min (point) (mark)))
(while
(and
(push (setq article (gnus-summary-article-number)) articles)
diff --git a/lisp/gnus/nnrss.el b/lisp/gnus/nnrss.el
index adef035c830..18a54d05d0d 100644
--- a/lisp/gnus/nnrss.el
+++ b/lisp/gnus/nnrss.el
@@ -87,9 +87,14 @@ ARTICLE is the article number of the current headline.")
(defvar nnrss-compatible-encoding-alist '((iso-8859-1 . windows-1252))
"Alist of encodings and those supersets.
The cdr of each element is used to decode data if it is available when
-the car is what the data specify as the encoding. Or, the car is used
+the car is what the data specify as the encoding. Or, the car is used
for decoding when the cdr that the data specify is not available.")
+(defvar nnrss-wash-html-in-text-plain-parts nil
+ "*Non-nil means render text in text/plain parts as HTML.
+The function specified by the `mm-text-html-renderer' variable will be
+used to render text. If it is nil, text will simply be folded.")
+
(nnoo-define-basics nnrss)
;;; Interface functions
@@ -169,6 +174,10 @@ for decoding when the cdr that the data specify is not available.")
(deffoo nnrss-close-group (group &optional server)
t)
+(eval-when-compile
+ (defvar mm-text-html-renderer)
+ (defvar mm-text-html-washer-alist))
+
(deffoo nnrss-request-article (article &optional group server buffer)
(setq group (nnrss-decode-group-name group))
(when (stringp article)
@@ -191,10 +200,7 @@ for decoding when the cdr that the data specify is not available.")
(if (nth 5 e)
(insert "Date: " (nnrss-format-string (nth 5 e)) "\n"))
(let ((header (buffer-string))
- (text (if (nth 6 e)
- (mapconcat 'identity
- (delete "" (split-string (nth 6 e) "\n+"))
- " ")))
+ (text (nth 6 e))
(link (nth 2 e))
(enclosure (nth 7 e))
(comments (nth 8 e))
@@ -205,14 +211,55 @@ for decoding when the cdr that the data specify is not available.")
(cons '("Newsgroups" . utf-8)
rfc2047-header-encoding-alist)
rfc2047-header-encoding-alist))
- rfc2047-encode-encoded-words body)
+ rfc2047-encode-encoded-words body fn)
(when (or text link enclosure comments)
(insert "\n")
(insert "<#multipart type=alternative>\n"
"<#part type=\"text/plain\">\n")
(setq body (point))
(when text
- (insert text "\n")
+ (insert text)
+ (goto-char body)
+ (if (and nnrss-wash-html-in-text-plain-parts
+ (progn
+ (require 'mm-view)
+ (setq fn (or (cdr (assq mm-text-html-renderer
+ mm-text-html-washer-alist))
+ mm-text-html-renderer))))
+ (progn
+ (narrow-to-region body (point-max))
+ (if (functionp fn)
+ (funcall fn)
+ (apply (car fn) (cdr fn)))
+ (widen)
+ (goto-char body)
+ (re-search-forward "[^\t\n ]" nil t)
+ (beginning-of-line)
+ (delete-region body (point))
+ (goto-char (point-max))
+ (skip-chars-backward "\t\n ")
+ (end-of-line)
+ (delete-region (point) (point-max))
+ (insert "\n"))
+ (while (re-search-forward "\n+" nil t)
+ (replace-match " "))
+ (goto-char body)
+ ;; See `nnrss-check-group', which inserts "<br /><br />".
+ (when (search-forward "<br /><br />" nil t)
+ (if (eobp)
+ (replace-match "\n")
+ (replace-match "\n\n")))
+ (unless (eobp)
+ (let ((fill-column default-fill-column)
+ (window (get-buffer-window nntp-server-buffer)))
+ (when window
+ (setq fill-column
+ (max 1 (/ (* (window-width window) 7) 8))))
+ (fill-region (point) (point-max))
+ (goto-char (point-max))
+ ;; XEmacs version of `fill-region' inserts newline.
+ (unless (bolp)
+ (insert "\n")))))
(when (or link enclosure)
(insert "\n")))
(when link
@@ -362,7 +409,11 @@ otherwise return nil."
;; FIXME: shouldn't binding `coding-system-for-read' be moved
;; to `mm-url-insert'?
(let ((coding-system-for-read 'binary))
- (mm-url-insert url)))
+ (condition-case err
+ (mm-url-insert url)
+ (error (if (or debug-on-quit debug-on-error)
+ (signal (car err) (cdr err))
+ (message "nnrss: Failed to fetch %s" url))))))
(nnheader-remove-cr-followed-by-lf)
;; Decode text according to the encoding attribute.
(when (setq cs (nnrss-get-encoding))
@@ -414,6 +465,74 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(unless (assoc (car elem) nnrss-group-alist)
(insert (prin1-to-string (car elem)) " 0 1 y\n")))))
+(eval-and-compile (autoload 'timezone-parse-date "timezone"))
+
+(defun nnrss-normalize-date (date)
+ "Return a date string of DATE in the RFC822 style.
+This function handles the ISO 8601 date format described in
+<URL:http://www.w3.org/TR/NOTE-datetime>, and also the RFC822 style
+which RSS 2.0 allows."
+ (let (case-fold-search vector year month day time zone cts)
+ (cond ((null date))
+ ;; RFC822
+ ((string-match " [0-9]+ " date)
+ (setq vector (timezone-parse-date date)
+ year (string-to-number (aref vector 0)))
+ (when (>= year 1969)
+ (setq month (string-to-number (aref vector 1))
+ day (string-to-number (aref vector 2)))
+ (unless (>= (length (setq time (aref vector 3))) 3)
+ (setq time "00:00:00"))
+ (when (and (setq zone (aref vector 4))
+ (not (string-match "\\`[A-Z+-]" zone)))
+ (setq zone nil))))
+ ;; ISO 8601
+ ((string-match
+ (eval-when-compile
+ (concat
+ ;; 1. year
+ "\\(199[0-9]\\|20[0-9][0-9]\\)"
+ "\\(-"
+ ;; 3. month
+ "\\([01][0-9]\\)"
+ "\\(-"
+ ;; 5. day
+ "\\([0-3][0-9]\\)"
+ "\\)?\\)?\\(T"
+ ;; 7. hh:mm
+ "\\([012][0-9]:[0-5][0-9]\\)"
+ "\\("
+ ;; 9. :ss
+ "\\(:[0-5][0-9]\\)"
+ "\\(\\.[0-9]+\\)?\\)?\\)?"
+ ;; 13+14,15,16. zone
+ "\\(\\(\\([+-][012][0-9]\\):\\([0-5][0-9]\\)\\)"
+ "\\|\\([+-][012][0-9][0-5][0-9]\\)"
+ "\\|\\(Z\\)\\)?"))
+ date)
+ (setq year (string-to-number (match-string 1 date))
+ month (string-to-number (or (match-string 3 date) "1"))
+ day (string-to-number (or (match-string 5 date) "1"))
+ time (if (match-beginning 9)
+ (substring date (match-beginning 7) (match-end 9))
+ (concat (or (match-string 7 date) "00:00") ":00"))
+ zone (cond ((match-beginning 13)
+ (concat (match-string 13 date)
+ (match-string 14 date)))
+ ((match-beginning 16) ;; Z
+ "+0000")
+ (t ;; nil if zone is not provided.
+ (match-string 15 date))))))
+ (if month
+ (progn
+ (setq cts (current-time-string (encode-time 0 0 0 day month year)))
+ (format "%s, %02d %s %04d %s%s"
+ (substring cts 0 3) day (substring cts 4 7) year time
+ (if zone
+ (concat " " zone)
+ "")))
+ (message-make-date))))
+
;;; data functions
(defun nnrss-read-server-data (server)
@@ -497,7 +616,11 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(defun nnrss-insert-w3 (url)
(mm-with-unibyte-current-buffer
- (mm-url-insert url)))
+ (condition-case err
+ (mm-url-insert url)
+ (error (if (or debug-on-quit debug-on-error)
+ (signal (car err) (cdr err))
+ (message "nnrss: Failed to fetch %s" url))))))
(defun nnrss-decode-entities-string (string)
(if string
@@ -532,7 +655,7 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
;;; Snarf functions
(defun nnrss-check-group (group server)
- (let (file xml subject url extra changed author date
+ (let (file xml subject url extra changed author date feed-subject
enclosure comments rss-ns rdf-ns content-ns dc-ns)
(if (and nnrss-use-local
(file-exists-p (setq file (expand-file-name
@@ -575,12 +698,14 @@ nnrss: %s: Not valid XML %s and w3-parse doesn't work %s"
(setq extra (or extra
(nnrss-node-text content-ns 'encoded item)
(nnrss-node-text rss-ns 'description item)))
+ (if (setq feed-subject (nnrss-node-text dc-ns 'subject item))
+ (setq extra (concat feed-subject "<br /><br />" extra)))
(setq author (or (nnrss-node-text rss-ns 'author item)
(nnrss-node-text dc-ns 'creator item)
(nnrss-node-text dc-ns 'contributor item)))
- (setq date (or (nnrss-node-text dc-ns 'date item)
- (nnrss-node-text rss-ns 'pubDate item)
- (message-make-date)))
+ (setq date (nnrss-normalize-date
+ (or (nnrss-node-text dc-ns 'date item)
+ (nnrss-node-text rss-ns 'pubDate item))))
(setq comments (nnrss-node-text rss-ns 'comments item))
(when (setq enclosure (cadr (assq (intern (concat rss-ns "enclosure")) item)))
(let ((url (cdr (assq 'url enclosure)))
diff --git a/man/ChangeLog b/man/ChangeLog
index 36085b48d7b..16e9373c5b3 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,20 @@
+2006-01-10 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (RSS): Document nnrss-wash-html-in-text-plain-parts.
+
+2006-01-06 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (RSS): Addition.
+
+2005-12-22 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus.texi (Summary Post Commands): Fix function bound to `S O p'.
+
+2005-12-19 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * emacs-mime.texi (Display Customization): Add setting example to
+ mm-discouraged-alternatives.
+
2006-01-09 Stefan Monnier <monnier@iro.umontreal.ca>
* flymake.texi (Obtaining Flymake): Remove chapter since Emacs's
diff --git a/man/emacs-mime.texi b/man/emacs-mime.texi
index d98fd4091bb..9df33969bec 100644
--- a/man/emacs-mime.texi
+++ b/man/emacs-mime.texi
@@ -323,10 +323,28 @@ you could say something like:
@end lisp
Adding @code{"image/.*"} might also be useful. Spammers use it as the
-prefered part of @samp{multipart/alternative} messages. See also
+prefered part of @samp{multipart/alternative} messages, and you might
+not notice there are other parts. See also
@code{gnus-buttonized-mime-types} (@pxref{MIME Commands, ,MIME Commands,
gnus, Gnus Manual}), to which adding @code{"multipart/alternative"}
enables you to choose manually one of two types those mails include.
+For example, you can set those variables like:
+
+@lisp
+(setq gnus-buttonized-mime-types
+ '("multipart/alternative" "multipart/signed")
+ mm-discouraged-alternatives
+ '("text/html" "image/.*"))
+@end lisp
+
+In this case, Gnus will display radio buttons for such a kind of spam
+message as follows:
+
+@example
+1. (*) multipart/alternative ( ) image/gif
+
+2. (*) text/plain ( ) text/html
+@end example
@item mm-inline-large-images
@vindex mm-inline-large-images
diff --git a/man/gnus.texi b/man/gnus.texi
index ad4343de5d3..df3b1db7874 100644
--- a/man/gnus.texi
+++ b/man/gnus.texi
@@ -5491,7 +5491,7 @@ default, the message is decoded and forwarded as an rfc822 @acronym{MIME} sectio
@cindex digests
@cindex making digests
Digest the current series and forward the result to a newsgroup
-(@code{gnus-uu-digest-mail-forward}). This command uses the
+(@code{gnus-uu-digest-post-forward}). This command uses the
process/prefix convention.
@item S u
@@ -15886,6 +15886,10 @@ the value of @code{default-file-name-coding-system}. If you are using
XEmacs and want to use non-@acronym{ASCII} group names, you should set
the value for the @code{nnmail-pathname-coding-system} variable properly.
+The @code{nnrss} back end generates @samp{multipart/alternative}
+@acronym{MIME} articles in which each contains a @samp{text/plain} part
+and a @samp{text/html} part.
+
@cindex OPML
You can also use the following commands to import and export your
subscriptions from a file in @acronym{OPML} format (Outline Processor
@@ -15923,6 +15927,15 @@ If you set @code{nnrss-use-local} to @code{t}, @code{nnrss} will read
the feeds from local files in @code{nnrss-directory}. You can use
the command @code{nnrss-generate-download-script} to generate a
download script using @command{wget}.
+
+@item nnrss-wash-html-in-text-plain-parts
+Non-@code{nil} means that @code{nnrss} renders text in @samp{text/plain}
+parts as @acronym{HTML}. The function specified by the
+@code{mm-text-html-renderer} variable (@pxref{Display Customization,
+,Display Customization, emacs-mime, The Emacs MIME Manual}) will be used
+to render text. If it is @code{nil}, which is the default, text will
+simply be folded. Leave it @code{nil} if you prefer to see
+@samp{text/html} parts.
@end table
The following code may be helpful, if you want to show the description in
@@ -15940,6 +15953,7 @@ the summary buffer.
The following code may be useful to open an nnrss url directly from the
summary buffer.
+
@lisp
(require 'browse-url)
@@ -15962,6 +15976,31 @@ summary buffer.
(add-to-list 'nnmail-extra-headers nnrss-url-field)
@end lisp
+Even if you have added @code{"text/html"} to the
+@code{mm-discouraged-alternatives} variable (@pxref{Display
+Customization, ,Display Customization, emacs-mime, The Emacs MIME
+Manual}) since you don't want to see @acronym{HTML} parts, it might be
+more useful especially in @code{nnrss} groups to display
+@samp{text/html} parts. Here's an example of setting
+@code{mm-discouraged-alternatives} as a group parameter (@pxref{Group
+Parameters}) in order to display @samp{text/html} parts only in
+@code{nnrss} groups:
+
+@lisp
+;; @r{Set the default value of @code{mm-discouraged-alternatives}.}
+(eval-after-load "gnus-sum"
+ '(add-to-list
+ 'gnus-newsgroup-variables
+ '(mm-discouraged-alternatives
+ . '("text/html" "image/.*"))))
+
+;; @r{Display @samp{text/html} parts in @code{nnrss} groups.}
+(add-to-list
+ 'gnus-parameters
+ '("\\`nnrss:" (mm-discouraged-alternatives nil)))
+@end lisp
+
+
@node Customizing W3
@subsection Customizing W3
@cindex W3