index.org 29 KB

This page lists the contributed packages to Org-mode, with links to available documentation. Most of these packages are located in the /contrib/ directory of the Org distribution. Some have made it into the core by now, but we keep the documentation here because it is more extensive than what is available in the manual. If no documentation link is present, see the file header of the package -- it will hopefully have some documentation.

contrib/

docco side-by-side annotated code export to HTML
The docco tool (see
http://jashkenas.github.com/docco/) generates HTML from JavaScript source code providing an attractive side-by-side display of source code and comments. This file (see [[repofile:contrib/scripts/org-docco.org][contrib/scripts/org-docco.org]]) generates the same type of output from Org-mode documents with code embedded in code blocks. For example org-docco output see http://eschulte.github.com/org-docco/org-docco.html.
  • org-annotate-file.el -- annotate a file with org syntax ::
  • The annotation is in a separate file, with links back to the annotated file. Written by /Philip Jackson/. [[repofile:contrib/lisp/org-annotate-file.el][Link to raw file]].
  • org-bibtex-extras.el -- extras for working with org-bibtex entries ::
  • Written by /Eric Schulte/. [[repofile:contrib/lisp/org-bibtex-extras.el][Link to raw file]].
  • org-bookmark.el -- support for links to Emacs bookmarks ::
  • Written by /Tokuya Kameshima/. [[repofile:contrib/lisp/org-bookmark.el][Link to raw file]].
  • org-bullets.el -- Show bullets in org-mode as UTF-8 characters ::
  • Written by /sabof/ [[repofile:contrib/lisp/org-bullets.el][Link to raw file.]]
  • /org-checklist.el/ -- org functions for checklist handling ::
  • Reset checklists in repeating entries. Written by /James TD Smith/. [[repofile:contrib/lisp/org-checklist.el][Link to raw file]].
  • /org-choose.el/ -- decision management for org-mode ::
  • Org-choose helps documenting a decision-making process by using TODO keywords for different degrees of /chosenness/, and by automatically keeping a set of alternatives in a consistent state. Writen by /Tom Breton/. [[repofile:contrib/lisp/org-choose.el][Link to raw file]].
  • /org-collector.el/ -- collect properties into tables ::
  • Collect and process properties into a table. Written by /Eric Schulte/. [[repofile:contrib/lisp/org-collector.el][Link to raw file]].
  • org-colview-xemacs.el -- Column View in Org-mode, XEmacs-specific version ::
  • Written by /Carsten Dominik / [[repofile:contrib/lisp/org-colview-xemacs.el][Link to raw file.]]
    • /org-depend.el/ -- TODO dependencies for Org-mode ::
    • Make TODO state changes in one entry trigger changes in another, or be blocked by the state of another entry. Also, easily create chains of TODO items with exactly one active item at any time. Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-depend.el][Link to raw file]].
    • /org-drill.el/ -- flashcards and spaced repetition for org-mode ::
    • Items in org-mode outlines can be used as flashcards. The user can conduct interactive "drill sessions" to memorize the material in a set of flashcards; cards are scheduled for review using the spaced repetition algorithms popularised by [[http://supermemo.com/index.htm][SuperMemo]] and similar programs. Numerous flashcard types are defined, and the user can add their own card types using elisp. Written by /Paul Sexton/. [[repofile:contrib/lisp/org-drill.el][Link to raw file]].
    • org-elisp-symbol.el -- Org links to emacs-lisp symbols. ::
    • This can create annotated links that exactly point to the definition location of a variable of function. Written by /Bastien Guerry/. [[repofile:contrib/lisp/org-elisp-symbol.el][Link to raw file]].
    • org-eww.el -- Support link/copy/paste from eww to Org-mode ::
    • Makes it possible to store an org-link to the url of an eww-buffer. The second feature is to copy a region from eww keeping the links. Written by /Marco Wahl/. [[repofile:contrib/lisp/org-eww.el][Link to raw file]].
    • org-expiry.el -- expiry mechanism for Org entries ::
    • Written by /Bastien Guerry/. [[repofile:contrib/lisp/org-expiry.el][Link to raw file]].
    • /org-git-link.el/ -- link to files under git version control ::
    • This package adds new link types to link to specific versions of a file, which will be checked out when the link is activated. Written by /Reimar Finken/. [[repofile:contrib/lisp/org-git-link.el][Link to raw file]].
    • org-index.el -- a personal index for org ::
    • Fast search for selected org nodes and things outside of org. org-index creates and updates an index table with keywords; each line either points to a heading in org, references something outside or carries a snippet of text to yank. When searching the index, the set of matching lines is updated with every keystroke; results are sorted by usage count and date, so that frequently used entries appear first in the list of results. References are decorated numbers (e.g. 'R237' or '--455--'); they are well suited to be used outside of org, e.g. in folder names, ticket systems or on printed documents. Watch [[http://2484.de/org-index.html][the Screencast]] or view [[repofile:contrib/lisp/org-index.el][the Source]].
    • org-interactive-query.el -- interactive modification of tags queries ::
    • After running a general query in Org, this package allows to narrow down the results by adding more tags or keywords. Written by /Christopher League/. [[repofile:contrib/lisp/org-interactive-query.el][Link to raw file]].
    • org-invoice.el -- help manage client invoices ::
    • Written by /Peter Jones/. [[repofile:contrib/lisp/org-invoice.el][Link to raw file]].
    • org-jira.el -- add a jira:ticket protocol to Org ::
    • Written by /Jonathan Arkell/. [[repofile:contrib/lisp/org-jira.el][Link to raw file]].
    • org-learn.el -- Implements SuperMemo's incremental learning algorithm ::
    • Written by /John Wiegley/. [[repofile:contrib/lisp/org-learn.el][Link to raw file]].
    • /org-mac-iCal.el/ -- import OS X iCal.app events into Emacs diary ::
    • Written by /Christopher Suckling/. [[repofile:contrib/lisp/org-mac-iCal.el][Link to raw file]].
    • /org-mac-link.el/ -- grab links from various mac applications ::
    • Grab the current link or selection from an open mac application and insert it as a hyperlink at point in an org-mode document. Written by /Anthony Lander/, /John Wiegley/ and /Christopher Suckling/. This file replaces the earlier org-mac-message.el and org-mac-link-grabber.el. [[repofile:contrib/lisp/org-mac-link.el][Link to raw file]].
    • org-mairix.el -- hook mairix search into Org for different MUAs ::
    • Written by /Georg C. F. Greve/. [[repofile:contrib/lisp/org-mairix.el][Link to raw file]].
    • org-man.el -- support for links to manpages in Org-mode. ::
    • Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-man.el][Link to raw file]].
    • org-mew.el -- Support for links to Mew messages from within Org-mode ::
    • Written by /Tokuya Kameshima/ [[repofile:contrib/lisp/org-mew.el][Link to raw file.]]
    • /org-mime.el/ -- org html export for text/html MIME emails ::

    org-mime can be used to send HTML email using Org-mode HTML export.

    This approximates a WYSiWYG HTML mail editor from within Emacs, and can be useful for sending tables, fontified source code, and inline images in email. Written by Eric Schulte. Link to raw file.

    • org-mtags.el -- support for some Muse-like tags in Org-mode ::
    • This package allows you to write == and == and other syntax copied from Emacs Muse, right inside an Org file. The goal here is to make it easy to publish the same file using either org-publish or Muse. Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-mtags.el][Link to raw file]].
      • org-notify.el -- notifications for Org-mode ::
      • Written by /Peter Münster/. [[repofile:contrib/lisp/org-notify.el][Link to raw file]].

      This package looks for todo-entries with deadline in your agenda files. For such entries, you can get configurable reminders: notification-pop-ups, emails, noise, and so on. You can define various notification-types, each one with its own actions and timings. Each todo-entry can have its own notification-type, defined by a property. For some notification actions (pop-ups) it's possible to mark something "done", or to shift the deadline just by one mouse-click.

      • org-notmuch.el -- support for links to notmuch messages ::
      • Written by /Matthieu Lemerre/. [[repofile:contrib/lisp/org-notmuch.el][Link to raw file]].
      • org-panel.el -- simplified and display-aided access to some Org commands ::
      • Written by /Lennart Borgman/. [[repofile:contrib/lisp/org-panel.el][Link to raw file]].
      • org-registry.el -- a registry for Org links ::
      • Find out from where links point to a given file or location. Written by /Bastien Guerry/. [[repofile:contrib/lisp/org-registry.el][Link to raw file]].
      • org-screen.el -- visit screen sessions through Org-mode links ::
      • Written /Andrew Hyatt/. [[repofile:contrib/lisp/org-screen.el][Link to raw file]].
      • org-screenshot.el -- Take and manage screenshots in Org-mode files ::
      • Written by /Max Mikhanosha/ [[repofile:contrib/lisp/org-screenshot.el][Link to raw file.]]
      • org-sudoku.el -- Create and solve SUDOKU games in Org tables ::
      • Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-sudoku.el][Link to raw file]]. ::
      • org-toc.el -- table of contents in a separate buffer ::
      • With fast access to sections and easy visibility cycling. Written by /Bastien Guerry/. [[repofile:contrib/lisp/org-toc.el][Link to raw file]].
      • org-velocity.el -- something like Notational Velocity for Org ::
      • Written by /Paul M. Rodriguez/. [[repofile:contrib/lisp/org-velocity.el][Link to raw file]].
      • org-vm.el -- Support for links to VM messages from within Org-mode ::
      • Written by /Carsten Dominik/ [[repofile:contrib/lisp/org-vm.el][Link to raw file.]]
      • /org-wikinodes.el/ -- CamelCase wiki-like links to nodes ::
      • Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-wikinodes.el][Link to raw file]].
      • org-wl.el -- Support for links to Wanderlust messages from within Org-mode ::
      • Written by /Tokuya Kameshima/ and /David Maus/ [[repofile:contrib/lisp/org-wl.el][Link to raw file.]]

      Exporter

      See Exporters.

      • htmlize.el -- convert buffer text and decorations to HTML ::
      • Written by /Hrvoje Niksic/. [[repofile:contrib/lisp/htmlize.el][Link to raw file]].
      • ox-bibtex.el -- Export bibtex fragments ::
      • Formerly known as /org-exp-bibtex.el/. Written by /Taru Karttunen/. [[repofile:contrib/lisp/ox-bibtex.el][Link to raw file]].
      • ox-confluence.el -- Confluence Wiki Back-End for Org Export Engine ::
      • Written by /Sébastien Delafond/. [[repofile:contrib/lisp/ox-confluence.el][Link to raw file]].
      • ox-deck.el -- deck.js Presentation Back-End for Org Export Engine ::
      • Written by /Rick Frankel/. [[repofile:contrib/lisp/ox-decl.el][Link to raw file]].
      • ox-freemind.el -- Freemind Mindmap Back-End for Org Export Engine ::
      • Written by /Jambunathan K/. [[repofile:contrib/lisp/ox-freemind.el][Link to raw file]].
      • /ox-groff.el/ -- Groff Back-End for Org Export Engine ::
      • Written by /Nicolas Goaziou/ and /Luis R Anaya/. [[repofile:contrib/lisp/ox-groff.el][Link to raw file]].
      • /ox-koma-letter.el/ -- An exporter to Write KOMA ::
      • Written by Nicolas Goaziou. [[http://gpl.coulmann.de/scrlttr2.html][Scrlttr2]] letters in Org.
      • ox-rss.el -- RSS 2.0 Back-End for Org Export Engine ::
      • Written by /Bastien Guerry/. [[repofile:contrib/lisp/ox-rss.el][Link to raw file]].
      • ox-s5.el -- S5 Presentation Back-End for Org Export Engine ::
      • Written by /Rick Frankel/. [[repofile:contrib/lisp/ox-s5.el][Link to raw file]].
      • ox-taskjuggler.el -- TaskJuggler Back-End for Org Export Engine ::
      • See [[file:../org-tutorials/org-taskjuggler.org][Tutorial]]. Written by /Christian Egli/ and /Nicolas Goaziou/. [[repofile:contrib/lisp/ox-taskjuggler.el][Link to raw file]].
      • org-static-mathjax.el -- Muse-like tags in Org-mode ::
      • Written by /Jan Böker/. [[repofile:contrib/lisp/org-static-mathjax.el][Link to raw file]].

      Babel

      • ob-eukleides.el -- Org-babel functions for eukleides evaluation ::
      • Written by /Luis Anaya/ [[repofile:contrib/lisp/ob-eukleides.el][Link to raw file.]]
      • ob-fomus.el -- Org-babel functions for fomus evaluation ::
      • Written by /Torsten Anders/ [[repofile:contrib/lisp/ob-fomus.el][Link to raw file.]]
      • ob-julia.el -- org-babel functions for julia code evaluation ::
      • Written by /G. Jay Kerns/, based on ob-R.el. [[repofile:contrib/lisp/ob-julia.el][Link to raw file.]]
      • ob-mathomatic.el -- Org-babel functions for mathomatic evaluation ::
      • Written by /Eric S Fraga/ and /Eric Schulte/ and /Luis Anaya (Mathomatic)/ [[repofile:contrib/lisp/ob-mathomatic.el][Link to raw file.]]
      • ob-oz.el -- Org-babel functions for Oz evaluation ::
      • Written by /Torsten Anders/ and /Eric Schulte/ [[repofile:contrib/lisp/ob-oz.el][Link to raw file.]]
      • ob-tcl.el -- Org-babel functions for tcl evaluation ::
      • Written by /Dan Davison/ and /Eric Schulte/ and /Luis Anaya/ [[repofile:contrib/lisp/ob-tcl.el][Link to raw file.]]

      External

      org-auto-shorten-url.el
      By Neil Smithline. Automatically shorten URLs
      in `org-mode' using Bit.ly or a link shortener of your choice. See the comment in the code to make sure you load the needed dependancies.
      • /Org-bom/ -- Bill of Materials ::
      • This add-on by /Christian Fortin/ helps you build collections from your Org buffer and gather data in tables. Every item identified as a component will be totalized in a temporary database, from which you can extract useful information, such as the number of item per section. You should find here all you would expect from a BOM of a professionnal CAD software. [[https://github.com/Frozenlock/Org-Bill-of-materials][Link to raw file]]
      • org-magit -- basic support for magit links ::
      • Written by /Yann Hodique/.
      • org-occur-goto.el -- search open org buffers with an occur interface ::
      • Usage: M-x oog, then start typing. Select from the occur matches with up/down/pgup/pgdown and press enter (you can navigate the history with M-p/M-n). The search string must be at least 3 characters long (by default).
      • org-search-goto.el -- Use search to go to locations in your org buffers ::
      • Usage: M-x osg, then start typing. Select from the matches with up/down/pgup/pgdown and press enter to go that location (you can navigate the history with M-p/M-n). If the search string contains several strings separated by spaces then these substrings can appear in any order in the results. See the [[http://article.gmane.org/gmane.emacs.orgmode/49887][announcement]] on the list.
      • org-search-goto-ml.el -- Use multiline search to go to locations in your org buffers ::
      • Usage: M-x osg, then start typing. Select from the matches with up/down/pgup/pgdown and press enter to go that location (you can navigate the history with M-p/M-n). If the search string contains several strings separated by spaces then these substrings can appear in any order in the results. The search handles an org heading and its text as one block, so the substrings can match in any part of an org entry. If the heading is not matching, only the body, the heading is added to the results anyway to indicated which entry is matched.
      • org-link-minor-mode.el -- Enables Org links in non org-mode buffers ::
      • Written by /Sean O'Halpin/. [[https://github.com/seanohalpin/org-link-minor-mode/blob/master/org-link-minor-mode.el][Link to github file]] and the github [[https://github.com/seanohalpin/org-link-minor-mode][project page]].
      • org-impress-js.el -- impress.js export for Org mode ::
      • Written by /kinjo/. Link to the github [[https://github.com/kinjo/org-impress-js.el][project page]].
      • org-weights.el -- display the "weight" of a headline, with the # of sub headlines ::
      • Written by [[http://pinard.progiciels-bpi.ca/index.html][François Pinard]]. Link to the github [[https://github.com/pinard/org-weights][project page]].

      Moved to core

      • /Org-babel/ -- execution of source code blocks ::
      • The embedded code evaluation and literate programming subsystem written by /Eric Schulte/ and /Dan Davison/ \\ Org Babel is now part of the Org core and [[https://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code][documented in the manual]]. See also [[Babel]] for contrib files regarding org-babel.
      • org-element.el -- Parser and applications for Org syntax ::
      • Written by /Nicolas Goaziou/. [[repofile:contrib/lisp/org-element.el][Link to raw file]].
      • /org-exp-blocks.el/ -- pre-process blocks when exporting org files ::
      • Org-export-blocks allows for the pre-processing or blocks in org-mode files to create images, or specially formatted HTML or LaTeX output. Written by /Eric Schulte/. \\ Org-exp-blocks is now part of the Org core. [[repofile:lisp/org-exp-blocks.el][Link to raw file]].
      • org-export.el -- Generic Export Engine For Org ::
      • Generic export engine for Org built on Org Elements. Written by /Nicolas Goaziou/. [[repofile:contrib/lisp/org-export.el][Link to raw file.]] \\ Back-ends for /org-export.el/ (ascii, html, latex, odt, publish) were currently located in the /EXPERIMENTAL/ directory of the Org distribution. They are now a part of org-mode core as ox.el and ox-\ast{}.el since 8.0.
      • /org-feed.el/ -- add RSS feed items to Org files ::
      • Read RSS feeds from the web, add new items to Org files, and trigger actions when items have changed. Written by /Carsten Dominik/. [[repofile:lisp/org-feed.el][Link to raw file]]. \\ This module is part of the Org core [[https://orgmode.org/manual/RSS-Feeds.html#RSS-Feeds"][documented in the manual]].
      • /org-protocol.el/ -- Trigger actions through URLs ::
      • org-protocol intercepts calls from emacsclient to trigger custom actions without external dependencies. Only one protocol has to be configured with your external applications or the operating system.\\ This package is part of the Org core and also [[https://orgmode.org/manual/Protocols.html#Protocols][documented in the manual]].
      • /org-R.el/ -- Computing and data visualisation in Org-mode using R ::
      • Written by /Dan Davison/. [[https://code.orgmode.org/bzg/org-mode/raw/470fba6086/contrib/lisp/org-R.el][Link to legacy raw file]]. \\ This modules has been superseded by the Org Babel functionality, which is part of the Org core and [[https://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code"][documented in the manual]].
      • /org-special-blocks.el/ -- turn blocks into LaTeX envs and HTML divs ::
      • Written by /Chris Gray/. [[repofile:lisp/org-special-blocks.el][Link to raw file]]. \\ This package is part of the Org core.

      Obsolete

      • /org-annotation-helper.el/ -- managing browser bookmarks ::
      • Org-annotation-helper allows to create Org-mode links and annotations while working in a browser, by simply clicking a bookmarklet. Written by /Bastien Guerry/ and /Daniel M German/. [[https://code.orgmode.org/bzg/org-mode/raw/bb2b3f34f1/contrib/lisp/org-annotation-helper.el][Link to legacy raw file]].\\ This module has been superseded by /org-protocol.el/, part of the Org core, and [[https://orgmode.org/manual/Protocols.html#Protocols][documented in the manual]].
      HTML presentations from an Org file
      Several possibilities here:

      *Note*: These were all written for the old exporter, and will most likely not work with the new export framework.

      For use with the new exporter, ox-s5.el (link to raw file) and ox-deck.el (link to raw file), both by Rick Frankel, are included in the contrib directory. The latest source and documentation for both are at https://github.com/cybercode/org-slides.

      • org-browser-url.el -- bookmark from a browser into org links ::
      • Written by /Ross Patterson/. [[https://code.orgmode.org/bzg/org-mode/raw/0b9b7d7b58/contrib/lisp/org-browser-url.el][Link to legacy raw file]]. \\ This module has been superseded by /org-protocol.el/, part of the Org core, and [[https://orgmode.org/manual/Protocols.html#Protocols][documented in the manual]].
      • org-eval.el -- show evaluation result of code ::
      • The == tag, adapted from Emacs Wiki and Emacs Muse, allows text to be included in a document that is the result of evaluating some code. Other scripting languages like /perl/ can be supported with this package as well. Written by /Carsten Dominik/. [[repofile:contrib/lisp/org-eval.el][Link to raw file]]. \\ This modules has been superseded by the Org Babel functionality, which is part of the Org core and [[https://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code][documented in the manual]].
        • /org-eval-light.el/ -- display result of evaluating code in various languages (light) ::
        • Org-eval-light allows the execution of source code embedded in an org-mode file. The results of the execution are placed into the org-mode file. It is a reworking of Carsten's org-eval with the goals of a more uniform syntax, safer default execution rules, and increased ease of execution. Written by /Eric Schulte/. [[repofile:contrib/lisp/org-eval-light.el][Link to raw file]]. \\ This modules has been superseded by the Org Babel functionality, which is part of the Org core and [[https://orgmode.org/manual/Working-With-Source-Code.html#Working-With-Source-Code][documented in the manual]].
        • /org-export-generic.el/ -- Export org files to user-defined output formats ::
        • Org-export-generic provides the ability to create an org file and then export it to any given format you desire. This is done by defining a set of variables that include prefixes and suffixes for each line type (E.G., header, list item, etc ...) and then running org-export-generic on the file to process it. Written by /Wes Hardaker/. [[repofile:contrib/lisp/org-export-generic.el][Link to raw file]].
        • org2rem.el -- Convert org appointments into reminders for remind ::
        • Written by /Bastien Guerry/ and /Sharad Pratap/. [[repofile:contrib/lisp/org2rem.el][Link to raw file]].

        Maintenance

        Keeping this list maintained is quite a challenge. Here are some elisp functions to help with it. They require cl-lib (Emacs 24.3) and org-mode with contrib/ (git).

        
        (require 'cl-lib)
        (defun worg-parse-contrib-index.org (&optional buffer)
         "Return an alist of elisp file names.
        The files are either documented, not-in-contrib, or undocumented.
        TODO: Do not check files in sections except for \"contrib/\"."
         (with-current-buffer (or buffer "index.org")
           (let* ((items
                   (cl-remove-duplicates
                    (cl-reduce
                     #'(lambda (a b) (append a b))
                     (org-element-map
                         (org-element-parse-buffer)
                         'plain-list
                       #'(lambda (e)
                           (delq nil
                                 (mapcar
                                  (lambda (item)
                                    (let ((title (nth 5 item)))
                                      (when (and (stringp title)
                                                 (string-match "/\\([^/]+\\.el\\)/"
                                                               title))
                                        (match-string 1 title))))
                                  (org-element-property :structure e))))))))
                  (org-contrib-files
                   (directory-files
                    (expand-file-name "../contrib/lisp/"
                                      (file-name-directory
                                       (find-lisp-object-file-name #'org-mode
                                                                   #'org-mode)))
                    nil "\\.el\\'" 'nosort)))
             (list
              (cons 'documented
                    (cl-union items org-contrib-files))
              (cons 'not-in-contrib
                    (cl-set-difference items org-contrib-files :test #'string=))
              (cons 'undocumented
                    (cl-set-difference org-contrib-files items :test #'string=))))))
        
        (require 'lisp-mnt)
        
        (defun worg-generate-missing-contrib-index (&optional index-buffer)
          "Return a string containing auto formated entries for undocumented files."
          (let* ((parsed (worg-parse-contrib-index.org index-buffer))
                 (missing (sort (cdr (assq 'undocumented parsed))
                                #'(lambda (a b) (not (string< a b)))))
                 (contrib-path (expand-file-name "../contrib/lisp/"
                                                 (file-name-directory
                                                  (find-lisp-object-file-name #'org-mode
                                                                              #'org-mode))))
                 misc babel ox)
            (dolist (i missing)
              (push
               (ignore-errors
                 (lm-with-file (expand-file-name i contrib-path)
                   (format "- /%s/ -- %s ::
          Written by %s
          [[repofile:contrib/lisp/%s][Link to raw file.]]\n\n"
                           i (lm-summary)
                           (mapconcat #'(lambda (a) (concat "/" (car a) "/"))
                                      (lm-authors)
                                      " and ")
                           i)))
               (cond
                ((string-prefix-p "ox-" i) ox)
                ((string-prefix-p "ob-" i) babel)
                (t misc))))
            (concat
             (apply #'concat misc)
             "* Export\n"
             (apply #'concat ox)
             "* Babel\n"
             (apply #'concat babel))))