From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Eric Schulte" Subject: Re: Re: Enhancing the Org/Gnus experience Date: Sun, 31 Oct 2010 11:30:29 -0600 Message-ID: <874oc2z2uv.fsf@gmail.com> References: <80k4lj78ui.fsf@mundaneum.com> <87sk07fl3s.fsf@gmail.com> <80k4lf337a.fsf@mundaneum.com> <80vd4z9q2f.fsf@mundaneum.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from [140.186.70.92] (port=33207 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PCbkk-0007K8-65 for emacs-orgmode@gnu.org; Sun, 31 Oct 2010 13:31:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PCbkf-0005JU-03 for emacs-orgmode@gnu.org; Sun, 31 Oct 2010 13:31:34 -0400 Received: from mail-gw0-f41.google.com ([74.125.83.41]:55361) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PCbke-0005JO-OM for emacs-orgmode@gnu.org; Sun, 31 Oct 2010 13:31:28 -0400 Received: by gwb11 with SMTP id 11so3452998gwb.0 for ; Sun, 31 Oct 2010 10:31:28 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: =?utf-8?Q?S=C3=A9bastien?= Vauban Cc: emacs-orgmode@gnu.org Hi Seb, This is really great. I finally folded it into my gnus setup, and while it looks great when it works, I was getting frequent errors throw by the org-mode fontification engine recursing too deeply. I've changed it to the following which augments what you sent with some simple error handling. ** Org-mode code block fontification Correctly fontify Org-mode attachments #+begin_src emacs-lisp (add-to-list 'mailcap-mime-extensions '(".org" . "text/org")) (add-to-list 'mm-automatic-display "text/org") =20=20=20=20 (add-to-list 'mm-inline-media-tests '("text/org" my-display-org-inline (lambda (el) t))) =20=20=20=20 (defun my-display-org-inline (handle) (condition-case nil (mm-display-inline-fontify handle 'org-mode) (error (insert (with-temp-buffer (mm-insert-part handle) (buffer-string)) "\n")))) #+end_src Update =3Dorg-src-lang-modes=3D to provide some leeway for posters #+begin_src emacs-lisp (add-to-list 'org-src-lang-modes '("elisp" . emacs-lisp)) (add-to-list 'org-src-lang-modes '("emacs_lisp" . emacs-lisp)) #+end_src Fontify code blocks in the text of messages #+begin_src emacs-lisp (defun my-mm-org-babel-src-extract () (mm-make-handle (mm-uu-copy-to-buffer start-point end-point) '("text/or= g"))) =20=20 (add-to-list 'mm-uu-type-alist '(org-src-block "^[ \t]*#\\+begin_" "^[ \t]*#\\+end_" my-mm-org-babel-src-extract nil)) =20=20 (mm-uu-configure) #+end_src Best -- Eric S=C3=A9bastien Vauban writes: > Hi, > >> "Eric Schulte" wrote: >>> S=C3=A9bastien Vauban writes: >>>> I don't have in mind full fontification like we now have in Org. No: *= just >>>> the basic yellow background*, so that code blocks are outstanding in a= ny >>>> mail, exactly *like it is now* but for the "cut here" markers (or "v+/= v-"). >>> >>> While we're at it, why not go all the way to full fontification code bl= ock >>> fontification? Is the current code in org-src portable enough to be app= lied >>> to this (or maybe be applied whenever org-struct mode is enabled)? >> >> Yes, we can!? >> >> No idea... Maybe David could answer on such a topic? >> >> >>>> Though, I don't know where to begin... Can some Org/Gnus expert give a >>>> hint? >>> >>> This strays out of my narrow areas of expertise, but I hereby throw my = +1 >>> onto the request. >> >> Playing a bit around, I've succeeded to make it work for the blocks, and >> almost for the results. > > Put this in your .emacs file: > > ;; regexp matching TeX groups > (setq mm-uu-tex-groups-regexp ".*") > > (eval-after-load "mm-uu" > '(progn > (add-to-list 'mailcap-mime-extensions '(".org" . "text/org")) > (add-to-list 'mm-automatic-display "text/org") > ;; (add-to-list 'mm-inlined-types "text/org") > (add-to-list 'mm-inline-media-tests > '("text/org" > my-display-org-inline > identity)) > > (defun my-display-org-inline (handle) > (mm-display-inline-fontify handle 'org-mode)) > > (defun my-mm-org-babel-src-extract () > (mm-make-handle (mm-uu-copy-to-buffer start-point end-point) > '("text/org") > nil nil > (list mm-dissect-disposition > (cons 'filename "Org Babel source file= ")))) > > (add-to-list 'mm-uu-type-alist > '(org-babel-block > "^#\\+begin_" > "^#\\+end_" > ;; (lambda nil > ;; (mm-uu-verbatim-marks-extract 0 0)) > my-mm-org-babel-src-extract > nil)) > (mm-uu-configure))) > > This is an enhanced version of what I sent previously: here, the identifi= ed > block is highlighted as an Org-mode buffer. In other words, it's not in y= ellow > background anymore, but really using the faces you've customized for such= an > Org-Babel block in a standard Org buffer. > > >> What'd be an good extra is the colorization of such =3Dorg-verbatim=3D s= trings... > > Still true; no clue for that one... > > Best regards, > Seb