From 7e696b92affdbd9669ea46d64ebfcedf775b417e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Tue, 26 Aug 2014 07:25:51 -0400 Subject: [PATCH] Add org opml support --- .gitmodules | 3 +++ elisp/org-opml | 1 + init/mod-org.el | 26 ++++++++++++++++++++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) create mode 160000 elisp/org-opml diff --git a/.gitmodules b/.gitmodules index 6e7241c97..cd84d8647 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "elisp/use-package"] path = elisp/use-package url = https://github.com/jwiegley/use-package +[submodule "elisp/org-opml"] + path = elisp/org-opml + url = https://github.com/edavis/org-opml.git diff --git a/elisp/org-opml b/elisp/org-opml new file mode 160000 index 000000000..22a1d4c1a --- /dev/null +++ b/elisp/org-opml @@ -0,0 +1 @@ +Subproject commit 22a1d4c1a60ee5d0688197ab85c93031322539a3 diff --git a/init/mod-org.el b/init/mod-org.el index 7224dd19a..7c38b6ceb 100644 --- a/init/mod-org.el +++ b/init/mod-org.el @@ -15,11 +15,34 @@ (defun my/org-surround (delim) (insert delim) (save-excursion (insert delim))) +(defun set-buffer-file-format-to-opml () + (when (string-match "\.opml$" (buffer-file-name)) + (setq buffer-file-format '(opml)))) + +(defun opml-encode (begin end buffer) + "Export Org mode buffer to OPML." + (let ((org-export-show-temporary-export-buffer nil) + (name "*OPML Export Buffer*")) + (org-export-to-buffer 'opml name) + (erase-buffer) + (insert-buffer-substring (get-buffer name)) + (point-max))) + ;; (use-package org :ensure t - :mode ("\\.org\\'" . org-mode) + :mode (("\\.org\\'" . org-mode) + ("\\.opml\\'" . org-mode)) + :config + (load-library "ox-opml") :init (progn + (setq org-export-backends '(ascii html latex md opml)) + (add-hook 'find-file-hooks 'set-buffer-file-format-to-opml) + (add-to-list 'auto-mode-alist '("\\.opml$" . org-mode)) + (add-to-list 'format-alist '(opml "Outline Processor Markup Language" + "<[?]xml version=\"1.0\"[^>]*[?]>[\n]?.*[\n]?.*[\n]?" + "~/.emacs.d/elisp/org-opml/opml2org.py" opml-encode t)) + (setq org-directory "~/Dropbox/notes") (setq org-default-notes-file "~/Dropbox/notes/notes.org") (setq org-mobile-inbox-for-pull "~/Dropbox/notes/notes.org") @@ -35,7 +58,6 @@ (setq org-completion-use-ido t) (setq org-hide-leading-stars t) - (setq org-export-backends '(ascii html latex md)) (setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)") (sequence "STARTED(s)" "VERIFY(v)" "WAITING(w)")