Add support for Org inlined/attached text
authorJulien Danjou <julien@danjou.info>
Thu, 20 Jan 2011 12:59:49 +0000 (13:59 +0100)
committerJulien Danjou <julien@danjou.info>
Thu, 20 Jan 2011 12:59:49 +0000 (13:59 +0100)
Signed-off-by: Julien Danjou <julien@danjou.info>
lisp/ChangeLog
lisp/mailcap.el
lisp/mm-decode.el
lisp/mm-uu.el
lisp/mm-view.el

index 7cb885e..08c158a 100644 (file)
@@ -1,3 +1,14 @@
+2011-01-20  Julien Danjou  <julien@danjou.info>
+
+       * mm-uu.el (mm-uu-type-alist): Add org block.
+       (mm-uu-org-src-code-block-extract): New function.
+
+       * mm-view.el (mm-display-org-inline): New function.
+
+       * mm-decode.el (mm-automatic-display): Add text/org.
+
+       * mailcap.el (mailcap-mime-extensions): Add .org.
+
 2011-01-19  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-art.el (gnus-article-highlight): Remove argument passed to
index b6cef39..e50e61b 100644 (file)
@@ -910,7 +910,8 @@ If NO-DECODE is non-nil, don't decode STRING."
     (".zip"   . "application/zip")
     (".ai"    . "application/postscript")
     (".jpe"   . "image/jpeg")
-    (".jpeg"  . "image/jpeg"))
+    (".jpeg"  . "image/jpeg")
+    (".org"   . "text/org"))
   "An alist of file extensions and corresponding MIME content-types.
 This exists for you to customize the information in Lisp.  It is
 merged with values from mailcap files by `mailcap-parse-mimetypes'.")
index 6275534..bbe7150 100644 (file)
@@ -238,6 +238,7 @@ before the external MIME handler is invoked."
     ("application/emacs-lisp" mm-display-elisp-inline identity)
     ("application/x-emacs-lisp" mm-display-elisp-inline identity)
     ("text/dns" mm-display-dns-inline identity)
+    ("text/org" mm-display-org-inline identity)
     ("text/html"
      mm-inline-text-html
      (lambda (handle)
@@ -313,7 +314,8 @@ when selecting a different article."
     "application/pkcs7-signature" "application/x-pkcs7-mime"
     "application/pkcs7-mime"
     ;; Mutt still uses this even though it has already been withdrawn.
-    "application/pgp\\'")
+    "application/pgp\\'"
+     "text/org")
   "A list of MIME types to be displayed automatically."
   :type '(repeat regexp)
   :group 'mime-display)
index 432b23c..6966122 100644 (file)
@@ -186,7 +186,15 @@ This can be either \"inline\" or \"attachment\".")
      "^\\\\end{document}"
      mm-uu-latex-extract
      nil
-     mm-uu-latex-test))
+     mm-uu-latex-test)
+    (org-src-code-block
+     "^[ \t]*#\\+begin_"
+     "^[ \t]*#\\+end_"
+     mm-uu-org-src-code-block-extract)
+    (org-meta-line
+     "^[ \t]*#\\+[[:alpha:]]+: "
+     "$"
+     mm-uu-org-src-code-block-extract))
   "A list of specifications for non-MIME attachments.
 Each element consist of the following entries: label,
 start-regexp, end-regexp, extract-function, test-function.
@@ -383,6 +391,10 @@ apply the face `mm-uu-extract'."
                  (list mm-dissect-disposition
                        (cons 'filename file-name))))
 
+(defun mm-uu-org-src-code-block-extract ()
+  (mm-make-handle (mm-uu-copy-to-buffer start-point end-point)
+                  '("text/org")))
+
 (defvar gnus-newsgroup-name)
 
 (defun mm-uu-emacs-sources-test ()
index 61d5b32..c1e270b 100644 (file)
 (defun mm-display-dns-inline (handle)
   (mm-display-inline-fontify handle 'dns-mode))
 
+(defun mm-display-org-inline (handle)
+  "Show an Org mode text from HANDLE inline."
+  (mm-display-inline-fontify handle 'org-mode))
+
+
 ;;      id-signedData OBJECT IDENTIFIER ::= { iso(1) member-body(2)
 ;;          us(840) rsadsi(113549) pkcs(1) pkcs7(7) 2 }
 (defvar mm-pkcs7-signed-magic