Documentation for beamer export with new exporter
[worg.git] / org-devel.org
1 #+OPTIONS:    H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
2 #+STARTUP:    align fold nodlcheck hidestars oddeven lognotestate
3 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
4 #+TAGS:       Write(w) Update(u) Fix(f) Check(c) 
5 #+TITLE:      Ongoing Development of Org Additions?
6 #+AUTHOR:     Worg people
7 #+EMAIL:      mdl AT imapmail DOT org
8 #+LANGUAGE:   en
9 #+PRIORITIES: A C B
10 #+CATEGORY:   worg
11
12 #+LINK: fireforgrepofile http://repo.or.cz/w/org-fireforg.git?a=blob_plain;f=%s;hb=HEAD
13
14 # This file is the default header for new Org files in Worg.  Feel free
15 # to tailor it to your needs.
16
17 [[file:index.org][{Back to Worg's index}]]
18
19 Some org-mode related project currently being developed in worg.
20
21 * Org Collector
22
23 #+index: Collector
24
25 Located in the =contrib/lisp/= directory of org-mode.
26
27 A utility for collecting properties from the headers in an org file,
28 running the properties through arbitrary elisp functions, and
29 presenting the results in a table.
30
31 The functionality of this tool is similar to the functionality of
32 [[info:org:Capturing%20column%20view][info:org:Capturing column view]], but this has support for processing
33 prior to the generation of the table.
34
35 Here is a simple example application of this utility.
36
37 #+begin_comment ems better example
38 it might be better to put an exercise example here if someone has one.
39 #+end_comment
40
41 #+BEGIN: propview :id "data" :cols (ITEM f d list (apply '* list) (+ f d))
42
43 #+END:
44
45 *** Example Data
46       :PROPERTIES:
47       :ID:       data
48       :END:
49
50 ****** run1
51       :PROPERTIES:
52       :d: 33
53       :f: 2
54       :list: '(9 2 3 4 5 6 7)
55       :END:
56
57
58 ****** run2
59       :PROPERTIES:
60       :d: 34
61       :f: 4
62       :END:
63
64
65 ****** run3
66       :PROPERTIES:
67       :d: 35
68       :f: 4
69       :END:
70
71
72 ****** run4
73       :PROPERTIES:
74       :d: 36
75       :f: 2
76       :END:
77
78
79 #<<fireforg>>
80 * Fireforg, a Firefox extension for org interaction (EXPERIMENTAL)
81
82 #+index: Fireforg
83
84 Fireforg is a Firefox extension, that interacts with Emacs Org-mode.
85
86 For the displayed URL it shows the associated tags in the status bar
87 and allows to show a list of annotations that can be instantly visited
88 in Emacs.
89
90 Additionally, in every website it marks all links that occur in the agenda files.
91
92 For every link in the agenda files the previous heading and its tags
93 are associated with it.
94
95 For *scientific use*, it is possible to *send BibTeX entries* for
96 sites supported by the Zotero plugin to Emacs. [[*Import%20BibTeX%20using%20Zotero][Additional steps]] are
97 necessary for this to work.
98
99 ** Caveats
100    :PROPERTIES:
101    :ID:       13179b21-d70a-4255-a8f1-9f4e4e729074
102    :END:
103 The following notes should be taken into consideration before using Fireforg:
104  - On the Emacs side a registry of all links in the agenda files will
105    be generated and saved in plain text onto the harddrive.
106    - The generation can take very a long time depending on the size of
107      the agenda files and the number of links in them.
108    - The generated file can become quite large.
109    - When files are *encrypted* having some information from them in
110      plain text on the harddrive might not be what you want.
111  - Firefox will read and look through the registry file for the
112    currently viewed site. Depending on the size of the registry file
113    and on the options [[id:e77f15a8-c358-44fd-a207-8c422fee2d1e][Lookup links on page load]] and [[id:d73476f3-6c09-479c-abea-f33d3e0e074a][Prefetch links to extract DOI]] 
114    this might slow down the browsing experience.
115
116 ** Installation
117
118    - Install org-protocol according to its [[file:org-contrib/org-protocol.org][manual]] and *please verify
119      that it's working* using either the bookmarks or by invoking it directly in the shell:
120      : emacsclient 'org-protocol://remember://w/http%3A%2F%2Forgmode.org%2F/Org-Mode%3A%20Your%20Life%20in%20Plain%20Text%20-%20Mozilla%20Firefox/'
121    - Get org-fireforg.el from [[fireforgrepofile:lisp/org-fireforg.el][here]] and put the following into your
122      =.emacs= *after* the section that initializes org-protocol:
123      : (add-to-list 'load-path "~/path/to/org/fireforg/")
124      : (require 'org-fireforg)
125      : (org-fireforg-registry-insinuate)
126      
127      and as the last line of the file:
128      : (org-fireforg-registry-initialize t)
129
130      Note that creating the registry can take a long time depending on
131      the size of the agenda files and the number of links in them.
132
133    - Visit [[fireforgrepofile:build/fireforg.xpi][this link]] with Firefox, confirm installation of the extension and restart.
134
135      (Windows users will have to adjust: org-fireforg-registry-file-xml  in Emacs
136      and "registry-file" in Fireforgs preferences to be the same file.)
137
138 *** Installation from a git clone
139
140     It is also possible to clone the git repository first, using:
141     : git clone http://repo.or.cz/r/org-fireforg.git
142     , install lisp/org-fireforg.el according to the instructions above
143     and add a file named =fireforg@burtzlaff.de= containing the path
144     to the "fireforg" subdirectory into =~/.mozilla/firefox/<your
145     profile>/extensions/=.
146
147     In my setup for example there is a file
148     =~/.mozilla/firefox/4xyx9l73.default/extensions/fireforg@burtzlaff.de=
149     containing
150     : /home/andy/projects/org-fireforg/fireforg
151  
152     A restart of Firefox is required for this to work.
153
154 ** Basic usage
155 *** The status bar entry
156
157     If the currently viewed url is found in your agenda files, the number
158     of occurrences together with all associated tags will be shown in the
159     status bar. A left click on the status bar entry will show a list of
160     all headings associated with the currently viewed url. Selecting one
161     of them lets Emacs visit that heading.
162
163     For example, this heading in one of your agenda files:
164     : * Greatest tool in the world [[http://orgmode.org/][Org mode]]    :Org:
165     will yield the following when visiting http://orgmode.org/ and left clicking:
166
167     [[file:images/screenshots/org-fireforg-screenshot.png]]
168
169 *** Triggering store-link and remember
170     Right clicking on the status bar entry shows a menu that let's you
171     trigger org-protocol's "store-link" and "remember".
172
173     There is an entry for every remember template listed in the [[*List%20of%20characters%20specifying%20available%20remember%20templates][preferences]].
174
175     The entries in the submenu "All tabs" will call remember for every tab
176     in the current window. This option only makes sense if a remember
177     template is used, that stores the note automatically ("%!" in the template string), e.g.:
178     : * %:description \n %:link %!
179
180 *** Mark links that occur in the agenda files in websites
181
182     Whenever a site is loaded, Fireforg will alter the style of all links
183     in it, that occur in the agenda files. The tooltip of those links is
184     set to contain the annotations.
185
186     This feature can be turned off using an [[*Lookup%20links%20on%20page%20load][option]] in the [[*Preferences][preferences
187     dialog]].  [[*CSS%20style%20string%20for%20links%20with%20annotations][The CSS-style]] used for marking the link and [[*Overwrite%20tooltip%20for%20links%20with%20annotations][whether or
188     not the tooltip is set]] is also customizable.
189
190 *** Context menu for links
191
192     The context menu (accessible by right clicking on a link) has a
193     submenu "Fireforg", where all annotations for that link are listed:
194
195     [[file:images/screenshots/org-fireforg-screenshot-context-menu.png]]
196
197 ** Import BibTeX using Zotero
198    :PROPERTIES:
199    :ID:       e6fc94c6-7fef-4348-b998-f6a6f58eded8
200    :END:
201    Fireforg is able to retrieve BibTex entries for the all sites
202    supported by [[http://www.zotero.org/][Zotero]]. To achieve this the following additional steps
203    are necessary:
204    - Install Zotero 1.0.10 from the [[http://www.zotero.org/][Zotero Website]]
205    - Set "Inject Zotero" in Fireforg's preference dialog
206      [fn:ffprefdiag: Fireforg's preference dialogue is accessible in
207      Firefox's menu under Tools->Add-ons->Fireforg->Preferences].
208      
209      *Warning: On restart a small function is injected into Zotero to
210      catch imported entries. The change to the code is minimal and
211      non-permanent. In a worst case scenario Zotero's database might
212      get corrupted, though that hasn't happened yet.*
213
214    - Restart Firefox
215
216      Whenever a single entry (*not* a collection) is imported into Zotero - 
217      e.g. by clicking the white "document" symbol that appears to the right
218      in the url bar if Zotero supports importing the current site - it is
219      automatically exported to BibTeX and sent to org mode using
220      org-protocol. In Emacs it is put into the kill ring in a format
221      depending on the variable =org-fireforg-received-bibtex-format=:
222
223    - =nil=: The BibTeX entry is passed directly into the kill ring.
224    - =heading= (Default): A heading is generated with the BibTeX
225      fields as properties with prefix "BIB_":
226      : * [[<link to site>][<Title>]]
227      :  :PROPERTIES:
228      :   :CUSTOM_ID: <BibTeX key>
229      :   :BIB_entryType: <article, ...>
230      :   :BIB_author: ...
231      :   :BIB_title: ...
232      :   ...
233      :   :END:
234    - =headingWithPropsAndBibTeXContent=: a heading with properties as
235      described above is generated and the entry in BibTeX format is
236      appended.
237    - =headingWithBibTeXContent=: same as the previous one but without the properties
238
239      If the 'url' field is a *static URL*, the link to it will be highlighted
240      in search results in every search engine. Otherwise the option
241      [[id:3ab02821-03c4-4fa7-9a3a-e9701245c5d8][Match sites by comparing their DOI with saved bibliography entries]] might help.
242
243      To export BibTeX information from all headings in the current buffer
244      with at least the "BIB_entryType" property call:
245    - =org-fireforg-export-bibtex-to-file= to export to a file
246    - =org-fireforg-export-bibtex-to-new-buffer= to export into a new buffer
247
248 *** Digital Object Identifiers (DOI)
249     :PROPERTIES:
250     :ID:       fbd09ba5-6632-40df-bcc0-8e5a7b9eb7a7
251     :END:
252     If a BibTeX entry contains a field 'doi', a URL will be generated by
253     prepending "http://dx.doi.org/" to the corresponding property
254     'BIB_doi'. It will be handled as any other URL. There is a
255     [[id:3ab02821-03c4-4fa7-9a3a-e9701245c5d8][corresponding functionality in the plugin]] that allows to associated
256     pages despite non-static URLs.
257 ** Preferences
258    Fireforg's preference dialogue is accessible in Firefox's menu
259    under Tools->Add-ons->Fireforg->Preferences
260 ***** Registry file
261       The file containing an xml tree with all link-headline associations
262       generated from the agenda files. You should not need to change
263       this. It has to be same as the customizable variable
264       =org-fireforg-registry-file-xml= in Emacs.
265 ***** Lookup links on page load
266       :PROPERTIES:
267       :ID:       e77f15a8-c358-44fd-a207-8c422fee2d1e
268       :END:
269       When enabled, all links in a web page that have headlines
270       associated with them are marked. This is achieve by adding the
271       following CSS style string to the element:
272       Depending on the size of the registry this *might slow Firefox down*.
273 ***** CSS style string for links with annotations
274       The string that is appended to the CSS =style= string of a link
275       element, if annotations for it exist.
276 ***** Overwrite tooltip for links with annotations
277       If enabled, sets the tooltip for the links, for which
278       annotations exist to contain those annotations.
279 ***** Inject Zotero
280       After restarting Firefox, a function in the Zotero code gets altered
281       so that all BibtTeX entries (*not* collections) that are imported are
282       sent using org-protocol and are handled in Emacs according to the
283       variable =org-fireforg-received-bibtex-format= as described [[* Import BibTeX using Zotero][here]].  Due
284       to [[* Technical note][design choices in Zotero]] this is a bit fragile and can yield errors
285       and *might possibly even break Zotero's database*. It is not advisable
286       to use Zotero for production when enabling this option in Fireforg.
287 ***** Match sites by comparing their DOI with saved bibliography entries
288       :PROPERTIES:
289       :ID:       3ab02821-03c4-4fa7-9a3a-e9701245c5d8
290       :END:
291       Extract the Digital Object Identifier (DOI) from a page, prepend
292       "http://dx.doi.org/" to it and look up the resulting URL.
293
294       If using a bibliography format [[id:e6fc94c6-7fef-4348-b998-f6a6f58eded8][with properties]], a [[id:fbd09ba5-6632-40df-bcc0-8e5a7b9eb7a7][URL is
295       generated in the same way from the value of the field "BIB_doi"
296       if it exists]]. Thus documents can be matched regardless of the
297       possibly non-static URL.
298 ***** Prefetch links to extract DOI
299       :PROPERTIES:
300       :ID:       d73476f3-6c09-479c-abea-f33d3e0e074a
301       :END:
302       *Prefetch all links in a page* after it is loaded, extract the
303       DOIs - if any - and [[id:fbd09ba5-6632-40df-bcc0-8e5a7b9eb7a7][use it to find annotations]]. This requires
304       the option [[id:3ab02821-03c4-4fa7-9a3a-e9701245c5d8][Match sites by comparing their DOI with saved
305       bibliography entries]] to be set.
306
307       A site is only prefetched once in every Firefox session, because the
308       associated URL mapping is saved until Firefox is restarted.
309
310       *All links starting with "http" will be prefetched (except for
311       files with extensions: PDF, GIF, PNG or SWF).* This option can
312       also be toggled in the status bar menu.
313
314       *This option will generate additional network traffic and might
315       slow the browsing experience*
316 ***** List of characters specifying available remember templates
317       For every character in this list an entry in the [[*Triggering%20store%20link%20and%20remember][popup menu]] will
318       be generated, that triggers remember with the template
319       associated with the character.
320 ***** Enable workaround for Mac
321       see [[* Workaround for the inability to register a protocol in Firefox on the Mac][here]]
322 ***** Temporary file for Mac workaround
323       see [[* Workaround for the inability to register a protocol in Firefox on the Mac][here]]
324
325 ** Workaround for the inability to register a protocol in Firefox on the Mac
326
327    A long known bug in Firefox on the Mac is reported to stop protocol
328    registration from working. To work around this Fireforg is able to
329    write the org-protocol urls to a temporary file, that is read every
330    second and, if non empty, passed to emacsclient and emptied.
331
332    To enable this:
333    - check "Enable workaround for Mac" in Fireforg's preference dialogue [fn:ffprefdiag]
334    - get pull.sh from [[http://repo.or.cz/w/org-fireforg.git?a=blob_plain;f=ff_mac_workaround/pull.sh;hb=HEAD][the repository]] and run it.
335
336 ** Updating 
337
338    To avoid confusion, always update both org-fireforg.el and the plugin.
339
340    The plugin has to be uninstalled and then reinstalled as described
341    above. Automatic updating will be used when the testing phase is over.
342
343 ** Bugreporting and discussion
344
345    - Discussions go to the org-mode list.
346    - Bugreports are better not sent to the list, but rather directly to
347      the [[mailto:andreas%20AT%20burtzlaff%20DOT%20de][author]] (Please add "[Fireforg]" to the subject.).
348      
349 *** A checklist for bug tracing
350
351     To create a test case put:
352     : * Greatest tool in the world [[http://orgmode.org/][Org mode]]    :Org:
353     into one of your agenda files and save it.
354
355     If problems arise please go through this checklist to locate the problem:
356
357     - Does the file "~/.org-fireforg-registry.xml" exist and does it contain "orgmode.org"?
358     - *No on either*: Send me the last content of the Messages buffer in Emacs
359     - *Yes*: In the Firefox menu: "Tools"->"Error console" look for
360       errors containing: "chrome://fireforg/" and send them to me.
361
362 ** Technical note
363
364    Different instances of Zotero's Translator object seem to share state
365    in a non-obvious way. This makes coding very fragile and even lets
366    some imports fail (silently) after Fireforg has injected its code. The
367    failure when importing collections is somehow related to this.  While
368    I find it a strange design choice, it is not in my power to change it.
369 * MEMO org-mail-htmlize: Create MIME messages based on Org
370
371 ** Representing a MIME internet message
372
373    A MIME internet message consists of one or more MIME entities. Each
374    MIME entity is of a distinct type and subtype, has a body and
375    optional MIME headers related to its content.
376
377    A MIME entity is represented as a list:
378
379    (TYPE SUBTYPE BODY CONT-HEAD)
380
381    - TYPE :: Symbol of MIME media type (e.g. text, video, audio).
382
383    - SUBTYPE :: Symbol of MIME media subtype (e.g. plain, html).
384
385    - BODY :: String with entity body -or- list of other MIME entities.
386
387    - CONT-HEAD :: List of cons with content related MIME header
388                   fields.  The name of the header field without the
389                   prefix "Content-" is car, the value cdr.
390
391    Example:
392
393    #+begin_src emacs-lisp
394    '(text html "<h1>Headline</h1>" ((disposition . inline)))
395    #+end_src
396
397    For messages of type multipart the body consists of a list of one
398    or more MIME entities.
399
400    #+begin_src emacs-lisp
401      '(multipart alternative
402                  '((text plain "* Headline")
403                    (text html "<h1>headline</h1>")))
404    #+end_src
405
406 ** MIME delimiters of SEMI and mml
407
408    The MIME delimiters are defined in an association list with a
409    symbol of the library's name as key and delimiter format strings as
410    values.  For each library there are three formatstrings.
411
412    (SYMBOL DELIM-SINGLE DELIM-SINGLE-CONT DELIM-MULTI)
413
414    - DELIM-SINGLE :: Denoting a single MIME entity.
415
416                      Strings are passed in this order:
417
418                      1. type
419
420                      2. subtype
421
422                      3. content header
423
424                      4. body
425
426    - DELIM-SINGLE-CONT :: Format of content header strings.
427
428         Strings are passed in this order:
429
430         1. header field name
431
432         2. header field value
433
434    - DELIM-MULTI :: Enclosing parts of a multipart entity.
435
436                     Strings are passed in this order:
437
438                     1. subtype
439
440                     2. body
441
442                     3. subtype
443
444    #+begin_src emacs-lisp
445      (setq org-mail-htmlize-mime-delimiter-alist
446            '((semi "\n--[[%s/%s%s]]\n%s" "\ncontent-%s: %s" "\n--<<%s>>-{\n%s\n--}-<<%s>>")
447              (mml "\n<#part type=\"%s/%s\"%s>\n%s" " %s=\"%s\"" "\n<#multipart type=\"%s\">\n%s\n<#/multipart>")))
448    #+end_src
449
450 ** Generic function
451
452    This generic function returns a string representation with MIME
453    delimiters depending on the variable =org-mail-htmlize-mime-lib=.
454
455    #+begin_src emacs-lisp
456      (setq org-mail-htmlize-mime-lib 'semi)
457    #+end_src
458
459    #+begin_src emacs-lisp
460      (defun org-mail-htmlize-mime-entity (type subtype body
461                                                &optional cont-head)
462        "Return string representation of MIME entity.
463      
464      TYPE is the type of entity body.
465      SUBTYPE is the subtype of body.
466      BODY is the body of the entity.  Either a string with the body
467      content or a list with one ore more MIME entities.
468      Optional argument CONT-HEAD is a list of cons with content
469      specific headers, name in car and value in cdr."
470        (let ((delimlst (assoc org-mail-htmlize-mime-lib
471                               org-mail-htmlize-mime-delimiter-alist)))
472          (if (eq type 'multipart)
473              (format (nth 3 delimlst) subtype
474                      (mapconcat '(lambda (b)
475                                    (apply 'org-mail-htmlize-mime-entity
476                                           (car b) (cadr b) (cddr b)))
477                                 body "")
478                      subtype)
479            (format (nth 1 delimlst)
480                    type subtype
481                    (mapconcat '(lambda (h)
482                                  (format (nth 2 delimlst) (car h) (cdr h)))
483                               cont-head "")
484                    body))))
485    #+end_src
486
487 ** Open questions
488
489 *** How to handle charset information?
490
491 *** How to attach files?
492
493     The generic function expects BODY either be a string or a list.
494     Attaching binary file (image, etc.) requires to encode it so the
495     message will pass the message system.  So we /might/ use kind of a
496     encoder (e.g. base64) on our own.
497
498     Or, what seems a cleaner solution: Use attachment function of the
499     respective MIME mode.  To achive this: Introduce third possibility
500     for BODY: A cons with the filename in car and symbol of the
501     function in cdr.
502
503     (FILENAME . FUNCTION)
504
505     #+begin_src emacs-lisp
506       '(image jpeg ("/path/to/image" . org-mail-htmlize-add-attachment))
507     #+end_src
508
509     The function =org-mail-htmlize-add-attachment= is called with file
510     name as argument and calls the appropriate function depending on
511     =org-mail-htmlize-mime-lib= and returns a string
512
513        - with the encoded body
514
515          -or-
516
517        - the complete MIME entity
518
519     Side effect: The user might be prompted for attachment settings
520     (e.g. encoding).  But, on the other hand: We delegate the job of
521     creating the attachment to the library that is responsible for
522     mime.
523
524 ** Quotes from the specs
525
526 *** MIME multipart: Notion of structured, related body parts
527   :PROPERTIES:
528   :Created: [2010-03-25 Do]
529   :END:
530
531   -  [[http://tools.ietf.org/html/rfc2046.html#section-5.1.1][RFC2046, 5.1.1]]
532
533 #+BEGIN_QUOTE
534    NOTE:  Conspicuously missing from the "multipart" type is a notion of
535    structured, related body parts. It is recommended that those wishing
536    to provide more structured or integrated multipart messaging
537    facilities should define subtypes of multipart that are syntactically
538    identical but define relationships between the various parts. For
539    example, subtypes of multipart could be defined that include a
540    distinguished part which in turn is used to specify the relationships
541    between the other parts, probably referring to them by their
542    Content-ID field.  Old implementations will not recognize the new
543    subtype if this approach is used, but will treat it as
544    multipart/mixed and will thus be able to show the user the parts that
545    are recognized.
546 #+END_QUOTE
547 *** MIME multipart: order of entities inside a multipart
548   :PROPERTIES:
549   :Created: [2010-03-25 Do]
550   :END:
551
552   - [[http://tools.ietf.org/html/rfc2046.html#section-5.1.3][RFC2046, 5.1.3]]
553
554 #+BEGIN_QUOTE
555 5.1.3.  Mixed Subtype
556
557    The "mixed" subtype of "multipart" is intended for use when the body
558    parts are independent and need to be bundled in a particular order.
559    Any "multipart" subtypes that an implementation does not recognize
560    must be treated as being of subtype "mixed".
561
562 #+END_QUOTE
563
564   - [[http://tools.ietf.org/html/rfc2046.html#section-5.1.4][RFC2046, 5.1.4]]
565
566 #+BEGIN_QUOTE
567 5.1.4.  Alternative Subtype
568
569    The "multipart/alternative" type is syntactically identical to
570    "multipart/mixed", but the semantics are different.  In particular,
571    each of the body parts is an "alternative" version of the same
572    information.
573
574    Systems should recognize that the content of the various parts are
575    interchangeable.  Systems should choose the "best" type based on the
576    local environment and references, in some cases even through user
577    interaction.  As with "multipart/mixed", the order of body parts is
578    significant.  In this case, the alternatives appear in an order of
579    increasing faithfulness to the original content.  In general, the
580    best choice is the LAST part of a type supported by the recipient
581    system's local environment.
582 #+END_QUOTE
583
584 #+BEGIN_QUOTE
585    In general, user agents that compose "multipart/alternative" entities
586    must place the body parts in increasing order of preference, that is,
587    with the preferred format last.  For fancy text, the sending user
588    agent should put the plainest format first and the richest format
589    last.  Receiving user agents should pick and display the last format
590    they are capable of displaying.  In the case where one of the
591    alternatives is itself of type "multipart" and contains unrecognized
592    sub-parts, the user agent may choose either to show that alternative,
593    an earlier alternative, or both.
594 #+END_QUOTE
595 * Org mode issue tracking library
596
597 A collection of helper functions to maintain the [[file:org-issues.org][Issue file]] from within
598 Wanderlust and (partly) Gnus.
599
600 You can download a current version of this file [[file:code/elisp/org-issue.el][here]].
601
602 Currently following commands are provided:
603
604   - `org-issue-new' :: File a new issue for current message
605
606        Creates a new TODO in `org-issue-issue-file' below the headline
607        "New Issues" with keyword NEW.  If customization variable
608        `org-issue-message-flag' is non-nil and flagging messages is
609        supported, the message of this issue is flagged.
610
611   - `org-issue-close' :: Close issue of current message.
612
613   - `org-issue-tag'  :: Tag issue of current message.
614
615   - `org-issue-update-message-flag' :: Update message flag according
616        to issue file.
617
618        If the issue for current message is closed, the message flag is
619        removed.
620
621   - `org-issue-link-gmane' :: An Org mode web link pointing to current
622        message on gmane is pushed to killring and clipboard.
623