diff options
| author | Ravi R Kiran <aine.marina@gmail.com> | 2022-02-06 14:51:59 (GMT) |
|---|---|---|
| committer | Ravi R Kiran <aine.marina@gmail.com> | 2022-02-06 14:51:59 (GMT) |
| commit | aba604ef2809977d697d05ff783d9a6fddf7f67d (patch) | |
| tree | 35c83b4a6076f8befa1b85e0132619d9d4a820ca | |
| parent | 95048a3e4a205f6c4dd689a9875776737dc8a1fd (diff) | |
| download | dotemacs-aba604ef2809977d697d05ff783d9a6fddf7f67d.zip dotemacs-aba604ef2809977d697d05ff783d9a6fddf7f67d.tar.gz dotemacs-aba604ef2809977d697d05ff783d9a6fddf7f67d.tar.bz2 | |
More source blocks in org
company-org-block works very well.
| -rw-r--r-- | lisp/ravi-init-org.el | 179 |
1 files changed, 95 insertions, 84 deletions
diff --git a/lisp/ravi-init-org.el b/lisp/ravi-init-org.el index 20039cd..f033441 100644 --- a/lisp/ravi-init-org.el +++ b/lisp/ravi-init-org.el @@ -61,91 +61,102 @@ When nil, use the default face background.") ("H-o" . org-capture) ("H--" . org-agenda)) :config - (progn - (use-package htmlize :ensure t) - (use-package ox-reveal - :config - (setq org-reveal-slide-number nil) - (setq org-reveal-theme "night") - (setq org-reveal-transition "linear") - (setq org-reveal-mathjax t) - (setq org-reveal-mathjax-url ravi/mathjax-v3-file)) - (use-package ox-rst) - (use-package ox-impress-js :disabled t) - - ;; Default file locations - (setq org-directory "~/Documents/org") - (defvar ravi/one-org-agenda-file (expand-file-name "agenda.files" org-directory)) - (setq org-agenda-files ravi/one-org-agenda-file) - (unless (file-exists-p ravi/one-org-agenda-file) - ;; http://stackoverflow.com/a/14072295/1219634 - ;; touch `ravi/one-org-agenda-file' - (write-region "" :ignore ravi/one-org-agenda-file)) - (setq org-default-notes-file (expand-file-name "notes.org" org-directory)) - (setq org-refile-targets - '((nil :maxlevel . 3) - (org-agenda-files :maxlevel . 3))) - - (setq org-src-fontify-natively t) - (setq org-modules '(ol-bbdb ol-bookmark ol-git-link ol-info ol-man org-id)) - (setq org-use-speed-commands t) - - ;; Respect theme for code block output if enabled - ;; https://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme - ;; Code above was modified to - ;; - use hexadecimal color values to avoid color names - ;; - modify org-html-head-extra only if colors were not already present; otherwise - ;; we end up appending to it on every export - (defvar ravi/org-html-code-block-parameter-set nil - "Set foreground and background for code blocks according to theme") - (defun ravi/org-inline-css-hook (exporter) - "Insert custom inline css to automatically set the + (use-package htmlize :ensure t) + (use-package ox-reveal + :config + (setq org-reveal-slide-number nil) + (setq org-reveal-theme "night") + (setq org-reveal-transition "linear") + (setq org-reveal-mathjax t) + (setq org-reveal-mathjax-url ravi/mathjax-v3-file)) + (use-package ox-rst) + (use-package ox-impress-js :disabled t) + + ;; Default file locations + (setq org-directory "~/Documents/org") + (defvar ravi/one-org-agenda-file (expand-file-name "agenda.files" org-directory)) + (setq org-agenda-files ravi/one-org-agenda-file) + (unless (file-exists-p ravi/one-org-agenda-file) + ;; http://stackoverflow.com/a/14072295/1219634 + ;; touch `ravi/one-org-agenda-file' + (write-region "" :ignore ravi/one-org-agenda-file)) + (setq org-default-notes-file (expand-file-name "notes.org" org-directory)) + (setq org-refile-targets + '((nil :maxlevel . 3) + (org-agenda-files :maxlevel . 3))) + + (setq org-src-fontify-natively t) + (setq org-modules '(ol-bbdb ol-bookmark ol-git-link ol-info ol-man org-id)) + (setq org-use-speed-commands t) + + ;; Respect theme for code block output if enabled + ;; https://emacs.stackexchange.com/questions/3374/set-the-background-of-org-exported-code-blocks-according-to-theme + ;; Code above was modified to + ;; - use hexadecimal color values to avoid color names + ;; - modify org-html-head-extra only if colors were not already present; otherwise + ;; we end up appending to it on every export + (defvar ravi/org-html-code-block-parameter-set nil + "Set foreground and background for code blocks according to theme") + (defun ravi/org-inline-css-hook (exporter) + "Insert custom inline css to automatically set the background of code according to theme" - (when (and (eq exporter 'html) - ;; To do: only if htmlize is used - ravi/org-html-code-block-parameter-set) - (let* ((converter (lambda (x) (apply #'color-rgb-to-hex - (flatten-list (list (color-name-to-rgb x) 2))))) - (pre-bg (funcall converter (face-background 'default))) - (pre-fg (funcall converter (face-foreground 'default))) - (extra (format "<style type=\"text/css\">\n pre.src {background-color: %s; color: %s;}</style>\n" - pre-bg pre-fg))) - (unless (and org-html-head-extra - (string-match (regexp-quote extra) org-html-head-extra)) - (set (make-local-variable 'org-html-head-extra) - (concat org-html-head-extra extra)))))) - (add-hook 'org-export-before-processing-hook 'ravi/org-inline-css-hook) - - (defun ravi/org-color-customization () - "Color customization for org mode" - (setq ravi/org-html-code-block-parameter-set t) - (set (make-local-variable 'ravi/inline-image-background) "white")) - (add-hook 'org-mode-hook #'ravi/org-color-customization) - - ;; don't prompt me to confirm everytime I want to evaluate a block - (setq org-confirm-babel-evaluate nil) - - ;; display/update images in the buffer after I evaluate - (add-hook 'org-babel-after-execute-hook 'org-display-inline-images 'append) - - ;; Needs java-$VERSION-openjdk or equivalent - (defvar ravi/plantuml-jar-path "/usr/share/java/plantuml.jar" - "Path to plantuml jar file") - (setq org-plantuml-jar-path ravi/plantuml-jar-path) - (defvar ravi/ditaa-jar-path "/usr/share/java/ditaa.jar" - "Path to ditaa jar file") - (setq org-ditaa-jar-path ravi/ditaa-jar-path) - (add-to-list 'org-src-lang-modes '("plantuml" . plantuml)) - - (org-babel-do-load-languages 'org-babel-load-languages - '((python . t) - (shell . t) - (latex . t) - (ditaa . t) - (dot . t) - (plantuml . t) - (emacs-lisp . t) - (jupyter . t))))) ; jupyter must be last + (when (and (eq exporter 'html) + ;; To do: only if htmlize is used + ravi/org-html-code-block-parameter-set) + (let* ((converter (lambda (x) (apply #'color-rgb-to-hex + (flatten-list (list (color-name-to-rgb x) 2))))) + (pre-bg (funcall converter (face-background 'default))) + (pre-fg (funcall converter (face-foreground 'default))) + (extra (format "<style type=\"text/css\">\n pre.src {background-color: %s; color: %s;}</style>\n" + pre-bg pre-fg))) + (unless (and org-html-head-extra + (string-match (regexp-quote extra) org-html-head-extra)) + (set (make-local-variable 'org-html-head-extra) + (concat org-html-head-extra extra)))))) + (add-hook 'org-export-before-processing-hook 'ravi/org-inline-css-hook) + + (defun ravi/org-color-customization () + "Color customization for org mode" + (setq ravi/org-html-code-block-parameter-set t) + (set (make-local-variable 'ravi/inline-image-background) "white")) + (add-hook 'org-mode-hook #'ravi/org-color-customization) + + ;; don't prompt me to confirm everytime I want to evaluate a block + (setq org-confirm-babel-evaluate nil) + + ;; display/update images in the buffer after I evaluate + (add-hook 'org-babel-after-execute-hook 'org-display-inline-images 'append) + + ;; Needs java-$VERSION-openjdk or equivalent + (defvar ravi/plantuml-jar-path "/usr/share/java/plantuml.jar" + "Path to plantuml jar file") + (setq org-plantuml-jar-path ravi/plantuml-jar-path) + (defvar ravi/ditaa-jar-path "/usr/share/java/ditaa.jar" + "Path to ditaa jar file") + (setq org-ditaa-jar-path ravi/ditaa-jar-path) + (add-to-list 'org-src-lang-modes '("plantuml" . plantuml)) + + (org-babel-do-load-languages 'org-babel-load-languages + '((awk . t) + (C . t) + (ditaa . t) + (dot . t) + (emacs-lisp . t) + (latex . t) + (plantuml . t) + (python . t) + (sed . t) + (shell . t) + (jupyter . t))) ; jupyter must be last + + (use-package company-org-block + :custom + (company-org-block-edit-style 'auto) + :init + (defun ravi/add-company-org-block-to-org-mode-hook () + (setq-local company-backends '(company-org-block))) + :hook ((org-mode-hook . ravi/add-company-org-block-to-org-mode-hook))) + ) (use-package org-capture :defer t |
