2 @setfilename gnus-mime-en.info
3 @settitle gnus-mime 0.10 reference manual (English Version)
5 * Gnus-MIME-En:: MIME extensions for Gnus
8 @title gnus-mime 0.10 reference manual (English Version)
9 @author MORIOKA Tomohiko <morioka@@jaist.ac.jp>
12 @node Top, Introduction, (dir), (dir)
13 @top gnus-mime 0.10 reference manual (English Version)
17 This file documents gnus-mime, a MIME extension for Gnus.
21 * Introduction:: What is gnus-mime?
22 * Automatic MIME Preview:: Inline display for MIME message
23 * mule:: Internationalization
24 * MIME-Edit:: Composing MIME messages
30 @node Introduction, Automatic MIME Preview, Top, Top
31 @chapter What is gnus-mime?
34 @strong{gnus-mime} is a MIME (@ref{(tm-en)MIME}) extender for Gnus
35 (@ref{(gnus)}) using tm (@ref{(tm-en)tm-kernel}).
41 gnus-mime is for only Gnus. Please use tm-gnus (@ref{(tm-gnus_en)}) for
46 gnus-mime supports automatic MIME preview in @code{"*Article*"} buffer
47 using tm-view (@ref{(tm-view-en)}). In particular, with XEmacs, it
48 decodes images as same as text.@refill
50 In addition, gnus-mime supports multilingual/internationalization
51 feature for mule such as MULE (@ref{(tm-en)mule}), XEmacs/mule and mule
52 merged Emacs. It supports code-conversion by MIME charset or depended
53 default MIME charset of newsgroups.@refill
55 For RFC 1522, original Gnus supports only Q-encoded iso-8859-1
56 (@ref{(tm-en)iso-8859-1}) encoded-word (@ref{(tm-en)encoded-word}). So
57 gnus-mime supports more MIME charsets, such as iso-8859-2
58 (@ref{(tm-en)iso-8859-2}), iso-8859-3 (@ref{(tm-en)iso-8859-3}), ...,
59 iso-2022-jp (@ref{(tm-en)iso-2022-jp}), euc-kr (@ref{(tm-en)euc-kr}),
60 iso-2022-kr (@ref{(tm-en)iso-2022-kr}), gb2312, hz-gb-2312
61 (@ref{(tm-en)hz-gb-2312}), cn-big5 (@ref{(tm-en)cn-big5}), and
62 B-encoding. In addition, original Gnus does not support unfolding or
63 space elimination rule of RFC 1522. gnus-mime is more rightful.
66 @node Automatic MIME Preview, mule, Introduction, Top
67 @chapter Inline display for MIME message
69 @cindex automatic MIME preview
71 @strong{automatic MIME preview} feature is available for gnus-mime. In
72 automatic MIME preview mode, when reading an article in summary mode,
73 gnus-mime displays preview buffer processed by tm-view instead of raw
74 article buffer. (cf. @ref{(tm-view-en)}) @refill
76 Therefore if an article is encoded by Base64 (@ref{(tm-en)Base64}) or
77 Quoted-Printable (@ref{(tm-en)Quoted-Printable}), a decoded article is
78 displayed. Or rich text article, such as text/enriched
79 (@ref{(tm-en)text/enriched}) format, is automatic formated. Of course,
80 multipart (@ref{(tm-en)multipart}) article is dealt with
83 In addition, in @strong{XEmacs}, images are displayed in preview buffer
84 as same as text.@refill
86 Different from using metamail, speaker does not roar just then read an
87 article includes audio content, video player does not play just then
88 read an article includes video content, it does not do anonymous ftp
89 (@ref{(tm-en)ftp}) or send mail when read an article includes
90 external-message. These contents are played when you do decoding
91 command in preview buffer.@refill
93 However if you use a slow machine, or are just really impatient, you
94 can stop automatic MIME preview.
98 * MIME processing:: How to process MIME in Article Buffer
99 * Two buffers for an article:: Mechanism of Automatic MIME preview
102 @node MIME processing, Two buffers for an article, Automatic MIME Preview, Automatic MIME Preview
103 @section How to process MIME in Article Buffer
105 When @code{gnus-show-mime} is not @code{nil} and an article has
106 Mime-Version field in its message header, namely it is a MIME message,
107 Gnus calls @code{gnus-show-mime-method} to process MIME.@refill
109 When @code{gnus-strict-mime} is @code{nil} and @code{gnus-show-mime} is
110 not @code{nil}, Gnus calls @code{gnus-show-mime-method} even if an
111 message does not have Mime-Version field in its message header.@refill
113 Gnus 5.2 or later calls @code{gnus-show-mime-method} when
114 @code{gnus-strict-mime} is not @code{nil} and an article
115 does not have Mime-Version field. Notice that old Gnus does not have
116 it, so it may be better to set @code{gnus-strict-mime} to
120 @defvar gnus-show-mime
122 If it is not @code{nil}, Gnus do automatic MIME preview. Default value
125 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
126 loaded, default value is not guaranteed.
128 (cf. @ref{(gnus)Using MIME})
132 @defvar gnus-show-mime-method
134 Gnus calls function bound by it to process MIME. Default value is
135 @code{gnus-article-preview-mime-message}.@refill
137 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
138 loaded, default value is not guaranteed.
140 (cf. @ref{(gnus)Using MIME})
144 @defvar gnus-decode-encoded-word-method
146 Gnus calls function bound by it to decode encoded-words. Default value
147 is @code{gnus-article-decode-encoded-word}.@refill
149 It is a variable of Gnus, so if gnus is loaded before gnus-mime is
150 loaded, default value is not guaranteed.@refill
152 In addition, it is not available at Gnus 5.0.* or Gnus 5.1.
160 gnus-mime uses some variables of Gnus and defines different default
161 values by @code{defvar}. For example, gnus-mime's default value of
162 @code{gnus-show-mime} is @code{t} instead of @code{nil}. Or its default
163 value of @code{gnus-show-mime-method} is
164 @code{gnus-article-preview-mime-message} instead of
165 @code{metamail-buffer}. (cf. @ref{(gnus)Using MIME}) @refill
167 gnus-mime uses @code{defvar} instead of @code{setq}, because of respect
168 user's setting before gnus-mime is loaded, such as using
169 @file{~/.emacs}. But it has a problem. If gnus is loaded before
170 gnus-mime is loaded, features of gnus-mime is not available in default
171 even if gnus-mime is loaded. Therefore there is serious problem to load
172 gnus before gnus-mime is loaded. In other words, setting in
173 @file{~/.gnus}, such as to load @file{gnus-mime} or @file{mime-setup},
174 is not good way. If you want such way, please do setting for
175 @code{gnus-show-mime} and @code{gnus-show-mime-method}.
180 @node Two buffers for an article, , MIME processing, Automatic MIME Preview
181 @section Mechanism of Automatic MIME preview
182 @cindex preview buffer
183 @cindex raw article buffer
185 Gnus 5.2 or later has two buffers for an article,
186 @code{gnus-original-article-buffer} (@code{" *Original Article*"}) and
187 @code{gnus-article-buffer} (@code{"*Article*"}). The former is called
188 @strong{raw article buffer}, the latter is called @strong{preview buffer}.@refill
190 Content of raw article buffer is non-processed ``raw message''. In
191 particular, for emacs variants includes mule (@ref{(tm-en)mule})
192 features, message is not code-converted in it.@refill
194 Content of preview buffer is MIME processed message to display for user.
195 In particular, for emacs variants includes mule features, non-ASCII
196 message is code-converted in it by MIME charset or default MIME charset
197 (@ref{(tm-en)MIME charset}) for selected newsgroup.@refill
199 Gnus 5.0.* and Gnus 5.1 don't have distinction between raw article
200 buffer and preview buffer. So gnus-mime emulate raw article buffer. It
201 is unnatural, so it may be better to use Gnus 5.2 or later, which are
202 designed for tm-view.@refill
204 (cf. @ref{(tm-view-en)Two buffers for an article})
208 @node mule, MIME-Edit, Automatic MIME Preview, Top
209 @chapter Internationalization
211 For emacs variants includes mule feature, such as MULE
212 (@ref{(tm-en)MULE}), XEmacs/mule and Emacs/mule(*1), gnus-mime supports
213 code-conversion by MIME charset (@ref{(tm-en)MIME charset}) or
214 @code{default-mime-charset} of selected newsgroup.
219 (*1) It means next generation of Emacs includes mule features. Now
220 (October 1996), HANDA Ken'ichi and RMS are developing it.
224 Detail of code conversion is following:
228 If a newsgroup is selected, MIME charset for the newsgroup is
229 searched from @code{gnus-newsgroup-default-charset-alist}. If
230 it is found, it is set to buffer local variable
231 @code{default-mime-charset} of Summary Buffer. If not found,
232 global value of @code{default-mime-charset} is used.
234 Non-ASCII characters in Summary Buffer are code-converted by
235 @code{default-mime-charset} in Summary Buffer.
237 encoded-word (@ref{(tm-en)encoded-word}) are code-converted by their
238 specified MIME charset (@ref{(tm-en)MIME charset}).
240 Code-conversion of articles are following:
244 If a part of a MIME message has charset parameter of Content-Type field
245 (@ref{(tm-en)Content-Type field}), it is code-converted by the MIME
248 When there are no specified MIME charset, such as message header
249 or non-MIME message, they are code-converted by
250 @code{default-mime-charset} in Summary Buffer.
256 @defvar gnus-newsgroup-default-charset-alist
258 Association-list regexp for newsgroup vs. symbol for default MIME
261 Default setting are following:
265 hz-gb-2312 (@ref{(tm-en)hz-gb-2312})@refill
267 @item alt.chinese.text.big5, hk.*, hkstar.*, tw.*
268 cn-big5 (@ref{(tm-en)cn-big5})@refill
271 iso-2022-jp-2 (@ref{(tm-en)iso-2022-jp-2})@refill
274 euc-kr (@ref{(tm-en)euc-kr})@refill
277 koi8-r (@ref{(tm-en)koi8-r})@refill
281 If there is no MIME charsets for a newsgroup,
282 @code{default-mime-charset} is used as default MIME charset.
286 @defun gnus-set-newsgroup-default-charsetnewsgroup charset
288 Set default MIME @var{charset} of @var{newsgroup} to
289 @code{gnus-newsgroup-default-charset-alist}.@refill
291 @var{newsgroup} is string of newsgroup name or category, for
292 @code{"gnu.emacs.gnus"}, @code{"gnu.emacs"}, @code{"gnu"}.@refill
294 @var{charset} is symbol of MIME charset, for example @code{iso-8859-1},
300 @node MIME-Edit, Concept Index, mule, Top
301 @chapter Composing MIME messages
303 If using mime-setup (@ref{(tm-en)mime-setup}), you can edit MIME message
304 in message-mode using tm-edit (@ref{(tm-edit-en)}).
310 Default setting of mime-setup avoids automatic inserting signature
311 when sending a message.
313 (cf. @ref{(tm-en)mime-setup})
317 gnus-mime does not have implementation for @kbd{C-c C-x C-m}
318 (@code{mime-editor/insert-mail}). Because gnus-mime does not know which
319 mail-reader should be used. In addition, @kbd{C-c C-x C-y}
320 (@code{mime-editor/insert-message}) is enough to insert mail (namely to
321 select a mail group and select a message to insert, then it is available
322 to insert the mail message).@refill
324 However you can use @kbd{C-c C-x C-m} to specify an
325 implementation of @code{message-mode} to
326 @code{mime-editor/mail-inserter-alist}.
329 @section Example: same as @kbd{C-c C-x C-m}
332 (set-alist 'mime-editor/mail-inserter-alist
333 'message-mode (function message-mime-insert-article))
338 @section Example: including from MH folder
341 (autoload 'tm-mh-e/insert-mail "tm-mh-e")
343 (set-alist 'mime-editor/mail-inserter-alist
344 'message-mode (function tm-mh-e/insert-mail))
349 @node Concept Index, Function Index, MIME-Edit, Top
350 @chapter Concept Index
354 @node Function Index, Variable Index, Concept Index, Top
355 @chapter Function Index
359 @node Variable Index, , Function Index, Top
360 @chapter Variable Index