The worst part about org-mode? Having to leave it.
This package aims to reduce this pain by leveraging Pandoc to convert selected file types to org.
There are two tiers of non-org file avoidance:
- The basic “get me out of here” —
org-pandoc-import-{to,as}-orgallows you to easily convert supported non-org files to an org file/buffer with Pandoc - “I don’t even want to see non-org files” —
org-pandoc-import-transient-modeis for you- (via file handlers) intercepts requests for non-org files it knows it can convert
- uses
org-pandoc-import-to-orgto convert the file to a temporary org file - opens this org file instead
- exports back to the original non-org file on save
(use-package org-pandoc-import
:straight (:host github
:repo "tecosaur/org-pandoc-import"
:files ("*.el" "filters" "preprocessors")));; $DOOMDIR/packages.el
(package! org-pandoc-import
:recipe (:host github
:repo "tecosaur/org-pandoc-import"
:files ("*.el" "filters" "preprocessors")))
;; $DOOMDIR/config.el
(use-package! org-pandoc-import :after org)- Pandoc
That’s the only hard dependency. However ox-pandoc and ox-gfm can be useful for
exporting with org-pandoc-import-transient-mode.
That said, as they are currently implemented, the pre-processors for Rmarkdown
and TSV files use sed (only really affects Windows users).
- markdown
- associated with:
.md,.markdown - LaTeX
- associated with:
.tex,.latex - reStructuredText
- (
rst) associated with:.rst - ODT
- associated with:
.odt - DOCX
- associated with:
.docx - Jupyter Notebooks
- (
ipynb) associated with:.ipynb - Rmarkdown
- (
markdown) associated with:.Rmd,.rmd - CSV
- associated with:
.csv - TSV
- (
csv) associated with:.tsv
Currently Rmarkdown and TSV files require sed in order to pre-process the file
for Pandoc.
Please note that this mode is off by default. It is however a global mode, so enable it once in your config and it will be active everywhere.
The active transient backends are determined by
org-pandoc-import-transient-associations.
- markdown
- using Org’s
gfmexport if available, otherwisemd - ODT
- using Org’s
odtexport - csv, tsv
- using
org-table-export
When ox-pandoc is available, the following formats are also enabled by default,
and use ox-pandoc to export.
rstdocx
For something supported out of the box by Pandoc, it couldn’t be easier — just
(org-pandoc-import-backend foo)This will add foo to org-pandoc-import-backends, and create the following
functions
org-pandoc-import-foo-as-orgorg-pandoc-import-foo-to-org
Which will reference these variables,
org-pandoc-import-foo-argsorg-pandoc-import-foo-filtersorg-pandoc-import-foo-preprocessorsorg-pandoc-import-foo-extensions
That last variable will be set to ("foo"), and will cause
org-pandoc-import-{to,as}-org to automatically select this backend when called
on .foo files.
These all have docstrings — check them out!