Here's a hook that modifies the source blocks to wrap their output in #+BEGIN/END_METAPOST tags if the ConTeXt backend is used, before Org Babel gets to them, but otherwise leaves them alone. I wonder if anyone has any better ideas of how to do this. I'm modifying the Org source with the hook before the document gets parsed so that it can be more backend-agnostic but it seems like it would be better if there was a way to modify the document parse tree directly instead. I don't like that I'm effectively parsing and rebuilding (hopefully) the same string in order to change the :result type. I also don't like that I don't really have a clean way of turning the hook on and off with document keywords. This is kind of a nasty thing to do to a document and users should probably have to explicitly opt in. I also found an old answer that describes how to add captions to figures generated by source blocks: https://www.mail-archive.com/emacs-orgmode@gnu.org/msg68100.html Probably not news to many other people on this list but myself :)