Advertisement
Guest User

Untitled

a guest
Sep 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 3.97 KB | None | 0 0
  1. (after 'org
  2.   (defgroup dotemacs-org nil
  3.     "Configuration options for org-mode."
  4.     :group 'dotemacs
  5.     :prefix 'dotemacs-org)
  6.  
  7.   (defcustom dotemacs-org/journal-file (concat org-directory "~/org/journal.org")
  8.     "The path to the file where you want to make journal entries."
  9.     :type 'file
  10.     :group 'dotemacs-org)
  11.  
  12.   (defcustom dotemacs-org/inbox-file (concat org-directory "~/org/inbox.org")
  13.     "The path to the file where to capture notes."
  14.     :type 'file
  15.     :group 'dotemacs-org)
  16.  
  17.   (unless (file-exists-p org-directory)
  18.     (make-directory org-directory))
  19.  
  20.   (setq org-default-notes-file (expand-file-name dotemacs-org/inbox-file))
  21.   (setq org-log-done t)
  22.   (setq org-log-into-drawer t)
  23.  
  24.   (setq org-startup-indented t)
  25.   (setq org-indent-indentation-per-level 2)
  26.   (setq org-src-fontify-natively t)
  27.  
  28.   (setq org-agenda-files `(,org-directory))
  29.   (setq org-capture-templates
  30.         '(("t" "Todo" entry (file+headline (expand-file-name dotemacs-org/inbox-file) "INBOX")
  31.            "* TODO %?\n%U\n%a\n")
  32.           ("n" "Note" entry (file+headline (expand-file-name dotemacs-org/inbox-file) "NOTES")
  33.            "* %? :NOTE:\n%U\n%a\n")
  34.           ("m" "Meeting" entry (file (expand-file-name dotemacs-org/inbox-file))
  35.            "* MEETING %? :MEETING:\n%U")
  36.           ("j" "Journal" entry (file+datetree (expand-file-name dotemacs-org/journal-file))
  37.            "* %U\n** %?")))
  38.  
  39.   (setq org-use-fast-todo-selection t)
  40.   (setq org-treat-S-cursor-todo-selection-as-state-change nil)
  41.   (setq org-todo-keywords
  42.         '((sequence "TODO(t)" "NEXT(n@)" "|" "DONE(d@)")
  43.           (sequence "WAITING(w@/!)" "|" "CANCELLED(c@/!)")))
  44.  
  45.   (setq org-todo-state-tags-triggers
  46.         ' (("CANCELLED" ("CANCELLED" . t))
  47.            ("WAITING" ("WAITING" . t))
  48.            ("TODO" ("WAITING") ("CANCELLED"))
  49.            ("NEXT" ("WAITING") ("CANCELLED"))
  50.            ("DONE" ("WAITING") ("CANCELLED"))))
  51.  
  52.   (setq org-refile-targets '((nil :maxlevel . 9)
  53.                              (org-agenda-files :maxlevel . 9)))
  54.   (setq org-refile-use-outline-path 'file)
  55.   (setq org-outline-path-complete-in-steps nil)
  56.   (setq org-completion-use-ido t)
  57.  
  58.   (when (boundp 'org-plantuml-jar-path)
  59.     (org-babel-do-load-languages
  60.      'org-babel-load-languages
  61.      '((plantuml . t))))
  62.  
  63.   (add-hook 'org-babel-after-execute-hook #'org-redisplay-inline-images)
  64.  
  65.   (defun /org/org-mode-hook ()
  66.     (toggle-truncate-lines t)
  67.     (setq show-trailing-whitespace t))
  68.   (add-hook 'org-mode-hook #'/org/org-mode-hook)
  69.  
  70.   (require-package 'ob-async)
  71.   (require 'ob-async)
  72.  
  73.   (require-package 'org-bullets)
  74.   (setq org-bullets-bullet-list '("●" "○" "◆" "◇" "▸"))
  75.   (add-hook 'org-mode-hook #'org-bullets-mode))
  76.  
  77. (after 'ob-plantuml
  78.   (when (executable-find "npm")
  79.     (let ((default-directory (concat user-emacs-directory "/extra/plantuml-server/")))
  80.       (unless (file-exists-p "node_modules/")
  81.         (shell-command "npm install"))
  82.  
  83.       (ignore-errors
  84.         (let ((kill-buffer-query-functions nil))
  85.           (kill-buffer "*plantuml-server*")))
  86.       (start-process "*plantuml-server*" "*plantuml-server*" "npm" "start"))
  87.  
  88.     (defun init-org/generate-diagram (uml)
  89.       (let ((url-request-method "POST")
  90.             (url-request-extra-headers '(("Content-Type" . "text/plain")))
  91.             (url-request-data uml))
  92.         (let* ((buffer (url-retrieve-synchronously "http://localhost:8182/svg")))
  93.           (with-current-buffer buffer
  94.             (goto-char (point-min))
  95.             (search-forward "\n\n")
  96.             (buffer-substring (point) (point-max))))))
  97.  
  98.     (defun org-babel-execute:plantuml (body params)
  99.       (let* ((out-file (or (cdr (assoc :file params))
  100.                            (error "PlantUML requires a \":file\" header argument"))))
  101.         (let ((png (init-org/generate-diagram (concat "@startuml\n" body "\n@enduml"))))
  102.           (with-temp-buffer
  103.             (insert png)
  104.             (write-file out-file)))))))
  105.  
  106. (provide 'config-org)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement