Convert a folder of org files to markdown

*
planted: 03/10/2020last tended: 27/11/2021

I wanted to see how my org-roam files look like in Obsidian's graph view. Commence massive yak shave to recursively convert a folder of org files to markdown. Result below, pretty much a copy paste from here: Bulk Org-Mode to Github Flavored Markdown. (I didn't bother with github flavoured markdown though).

In the process I discovered that pandoc doesn't convert extensions of cross-file links, which was massively annoying.

;;;###autoload
(require 'org)

(defun dired-org-to-markdown ()
    (let ((files
                     (append
                                 (let ((default-directory "."))
                                               (mapcar #'expand-file-name
                                                                           (file-expand-wildcards "**/*.org")))
                                           (let ((default-directory "."))
                                                         (mapcar #'expand-file-name
                                                                                     (file-expand-wildcards "*.org")))
                                                    )
                              ))
          (mapc
                 (lambda (f)
                          (with-current-buffer
                                       (find-file-noselect f)
                                                (org-md-export-to-markdown)))
                      files))
      )

(dired-org-to-markdown)

Pop the above in a file called something like export.el, then run it with:

emacs --batch --load=export.el

1. Ninja

2. Converting links to wikilink syntax

I'd like to do this so I could export to a repo that could be picked up by Agora.

I haven't done it, but it would probably be done by using a filter on the Markdown org-export backend:

(defun commonplace/md-link-to-wikilink (text backend info)
  (when (org-export-derived-backend-p backend 'md)
    (replace-regexp-in-string "..." "..." text)))

(add-to-list 'org-export-filter-link-functions
             'commonplace/md-link-to-wikilink)

3. Elsewhere

3.1. In my garden

Notes that link to this note (AKA backlinks).

3.3. Mentions

Recent changes. Source. Peer Production License.