;;; init-org.el --- -*- lexical-binding: t -*- ;; ;; Filename: init-org.el ;; Description: Initialize Org, Toc-org, HTMLize, OX-GFM ;; Author: Mingde (Matthew) Zeng ;; Copyright (C) 2019 Mingde (Matthew) Zeng ;; Created: Fri Mar 15 11:09:30 2019 (-0400) ;; Version: 2.0.0 ;; Last-Updated: Tue Dec 24 14:05:45 2019 (-0500) ;; By: Mingde (Matthew) Zeng ;; URL: https://github.com/MatthewZMD/.emacs.d ;; Keywords: M-EMACS .emacs.d org toc-org htmlize ox-gfm ;; Compatibility: emacs-version >= 26.1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Commentary: ;; ;; This initializes org toc-org htmlize ox-gfm ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or (at ;; your option) any later version. ;; ;; This program is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see . ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;; Code: ;; OrgPac (use-package org :ensure nil :defer t :bind ("C-c l" . org-store-link) ("C-c a" . org-agenda) ("C-c c" . org-capture) ("C-c b" . org-switch) (:map org-mode-map ("C-c C-p" . org-export-as-pdf-and-open)) :custom (org-log-done 'time) (org-export-backends (quote (ascii html icalendar latex md odt))) (org-use-speed-commands t) (org-confirm-babel-evaluate 'nil) (org-todo-keywords '((sequence "TODO" "IN-PROGRESS" "REVIEW" "|" "DONE"))) (org-agenda-window-setup 'other-window) :config (unless (version< org-version "9.2") (require 'org-tempo)) (when (file-directory-p "~/org/agenda/") (setq org-agenda-files (list "~/org/agenda/"))) (defun org-export-turn-on-syntax-highlight () "Setup variables to turn on syntax highlighting when calling `org-latex-export-to-pdf'." (interactive) (setq org-latex-listings 'minted org-latex-packages-alist '(("" "minted")) org-latex-pdf-process '("pdflatex -shelnl-escape -interaction nonstopmode -output-directory %o %f" "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))) (defun org-export-as-pdf-and-open () "Run `org-latex-export-to-pdf', delete the tex file and open pdf in a new buffer." (interactive) (save-buffer) (let* ((pdf-path (org-latex-export-to-pdf)) (pdf-name (file-name-nondirectory pdf-path))) (if (try-completion pdf-name (mapcar #'buffer-name (buffer-list))) (progn (kill-matching-buffers (concat "^" pdf-name) t t) (find-file-other-window pdf-name)) (find-file-other-window pdf-name)) (delete-file (concat (substring pdf-path 0 (string-match "[^\.]*\/?$" pdf-path)) "tex"))))) ;; -OrgPac ;; TocOrgPac (use-package toc-org :hook (org-mode . toc-org-mode)) ;; -TocOrgPac ;; HTMLIZEPac (use-package htmlize :defer t) ;; -HTMLIZEPac ;; OXGFMPac (use-package ox-gfm :defer t) ;; -OXGFMPac ;; PlantUMLPac (use-package plantuml-mode :defer t :custom (org-plantuml-jar-path (expand-file-name "~/tools/plantuml/plantuml.jar")) :config (org-babel-do-load-languages 'org-babel-load-languages '(;; other Babel languages (plantuml . t)))) ;; -PlantUMLPac (provide 'init-org) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-org.el ends here