Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
; call trello2org interactively
; or pragmatically like this: (trello2org "c:/Users/jfurtney/blo-up-2-7.json")
(require 'json)
(defun convert-trello-json-file-to-org (trello-json-file)
(let* ((board (json-read-file trello-json-file))
(board-name (cdr (assoc 'name (cdr board))))
(lists (cdr (assoc 'lists (cdr board))))
(cards (cdr (assoc 'cards (cdr board))))
; get list IDs
(setq list-map (loop for l across lists collect
(let ((id (cdr (assoc 'id l)))
(name (cdr (assoc 'name l))))
(list id name))))
; add cards to list lists
(loop for card across cards do
(let* ((card-name (cdr (assoc 'name card)))
(card-list-id (cdr (assoc 'idList card)))
(closedp (cdr (assoc 'closed card)))
(list-name (cadr (assoc card-list-id list-map))))
(when (equal closedp :json-false)
(setcdr (last (assoc card-list-id list-map))
(list card-name)))))
; write output in a new buffer
(let ((new-buffer
(generate-new-buffer "*trello*")))
(with-current-buffer new-buffer
(insert (format "\n* %s\n" board-name))
(dolist (i list-map)
(insert (format "\n** %s\n" (cadr i)))
(dolist (card-name (cddr i))
(insert (format "*** %s\n" card-name)))))
(switch-to-buffer new-buffer)
(defun trello2org (trello-JSON-file)
"Convert a Trello board to org format.
Give the filename of a JSON file exported from Trello. The Trello
board, lists and cards are written in org-mode format to a new
*trello* buffer. Archived cards are ignored.
To export from Trello: Click the board name, choose Share, Print,
and Export; click the Export JSON button."
(interactive "fTrello JSON file: ")
(convert-trello-json-file-to-org trello-JSON-file))

This comment has been minimized.

Copy link
Owner Author

jkfurtney commented Jul 7, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.