lang/org: refactor contrib modules
- Fix #1546 - Ensure contrib modules aren't included in byte-compilation/autoload generation if their requisite flags aren't enabled
This commit is contained in:
parent
69ba8bb657
commit
468e630110
7 changed files with 56 additions and 60 deletions
39
modules/lang/org/autoload/contrib-dragndrop.el
Normal file
39
modules/lang/org/autoload/contrib-dragndrop.el
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
;;; lang/org/autoload/contrib-dragndrop.el -*- lexical-binding: t; -*-
|
||||||
|
;;;###if (featurep! +dragndrop)
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +org-dragndrop-download-dnd (uri action)
|
||||||
|
"TODO"
|
||||||
|
(if (eq major-mode 'org-mode)
|
||||||
|
(+org-attach/uri uri)
|
||||||
|
(let ((dnd-protocol-alist
|
||||||
|
(rassq-delete-all '+org-attach-download-dnd
|
||||||
|
(copy-alist dnd-protocol-alist))))
|
||||||
|
(dnd-handle-one-url nil action uri))))
|
||||||
|
|
||||||
|
;;;###autoload
|
||||||
|
(defun +org-dragndrop*insert-link (_link filename)
|
||||||
|
"Produces and inserts a link to FILENAME into the document.
|
||||||
|
|
||||||
|
If FILENAME is an image, produce an attach:%s path, otherwise use file:%s (with
|
||||||
|
an file icon produced by `+org-attach--icon')."
|
||||||
|
(if (looking-back "^[ \t]+" (line-beginning-position))
|
||||||
|
(delete-region (match-beginning 0) (match-end 0))
|
||||||
|
(newline))
|
||||||
|
(cond ((image-type-from-file-name filename)
|
||||||
|
(insert
|
||||||
|
(concat (if (= org-download-image-html-width 0) ""
|
||||||
|
(format "#+attr_html: :width %dpx\n" org-download-image-html-width))
|
||||||
|
(if (= org-download-image-latex-width 0) ""
|
||||||
|
(format "#+attr_latex: :width %dcm\n" org-download-image-latex-width))
|
||||||
|
(cond ((file-in-directory-p filename org-attach-directory)
|
||||||
|
(format "[[attach:%s]]" (file-relative-name filename org-attach-directory)))
|
||||||
|
((file-in-directory-p filename org-directory)
|
||||||
|
(format org-download-link-format (file-relative-name filename org-directory)))
|
||||||
|
((format org-download-link-format filename)))))
|
||||||
|
(org-display-inline-images))
|
||||||
|
((insert
|
||||||
|
(format "%s [[./%s][%s]] "
|
||||||
|
(+org-attach--icon filename)
|
||||||
|
(file-relative-name filename (file-name-directory buffer-file-name))
|
||||||
|
(file-name-nondirectory (directory-file-name filename)))))))
|
|
@ -1,8 +1,8 @@
|
||||||
;;; lang/org/autoload/ipython.el -*- lexical-binding: t; -*-
|
;;; lang/org/autoload/contrib-ipython.el -*- lexical-binding: t; -*-
|
||||||
;;;###if (featurep! +ipython)
|
;;;###if (featurep! +ipython)
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +org*org-babel-ipython-initiate-session (&optional session params)
|
(defun +org*ob-ipython-initiate-session (&optional session params)
|
||||||
"Create a session named SESSION according to PARAMS."
|
"Create a session named SESSION according to PARAMS."
|
||||||
(if (string= session "none")
|
(if (string= session "none")
|
||||||
(error
|
(error
|
||||||
|
@ -88,7 +88,7 @@ create a repl connecting to remote session."
|
||||||
(format "*%s*" process-name))))))
|
(format "*%s*" process-name))))))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +org*org-babel-execute:ipython (body params)
|
(defun +org*babel-execute:ipython (body params)
|
||||||
"Execute a BODY of IPython code with PARAMS in org-babel.
|
"Execute a BODY of IPython code with PARAMS in org-babel.
|
||||||
This function is called by `org-babel-execute-src-block'."
|
This function is called by `org-babel-execute-src-block'."
|
||||||
(message default-directory)
|
(message default-directory)
|
||||||
|
@ -104,7 +104,7 @@ This function is called by `org-babel-execute-src-block'."
|
||||||
;; * org-src-edit
|
;; * org-src-edit
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +org*org-babel-edit-prep:ipython (info)
|
(defun +org*babel-edit-prep:ipython (info)
|
||||||
(let* ((params (nth 2 info))
|
(let* ((params (nth 2 info))
|
||||||
(session (cdr (assoc :session params))))
|
(session (cdr (assoc :session params))))
|
||||||
(org-babel-ipython-initiate-session session params))
|
(org-babel-ipython-initiate-session session params))
|
|
@ -1,4 +1,4 @@
|
||||||
;;; lang/org/autoload/org-present.el -*- lexical-binding: t; -*-
|
;;; lang/org/autoload/contrib-present.el -*- lexical-binding: t; -*-
|
||||||
;;;###if (featurep! +present)
|
;;;###if (featurep! +present)
|
||||||
|
|
||||||
(defvar +org-present--overlays nil)
|
(defvar +org-present--overlays nil)
|
||||||
|
@ -12,7 +12,8 @@
|
||||||
(add-hook 'kill-buffer-hook '+org-present--cleanup-org-tree-slides-mode))
|
(add-hook 'kill-buffer-hook '+org-present--cleanup-org-tree-slides-mode))
|
||||||
|
|
||||||
|
|
||||||
;; --- Hooks ------------------------------
|
;;
|
||||||
|
;;; Hooks
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +org-present|add-overlays ()
|
(defun +org-present|add-overlays ()
|
||||||
|
@ -69,8 +70,8 @@
|
||||||
(org-remove-inline-images)))))
|
(org-remove-inline-images)))))
|
||||||
|
|
||||||
|
|
||||||
|
;;
|
||||||
;; --- Helpers ----------------------------
|
;;; Helpers
|
||||||
|
|
||||||
(defun +org-present--cleanup-org-tree-slides-mode ()
|
(defun +org-present--cleanup-org-tree-slides-mode ()
|
||||||
(unless (cl-loop for buf in (doom-buffers-in-mode 'org-mode)
|
(unless (cl-loop for buf in (doom-buffers-in-mode 'org-mode)
|
||||||
|
@ -85,7 +86,8 @@
|
||||||
(overlay-put overlay 'invisible '+org-present)))
|
(overlay-put overlay 'invisible '+org-present)))
|
||||||
|
|
||||||
|
|
||||||
;; --- Advice -----------------------------
|
;;
|
||||||
|
;;; Advice
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun +org-present*narrow-to-subtree (orig-fn &rest args)
|
(defun +org-present*narrow-to-subtree (orig-fn &rest args)
|
|
@ -98,47 +98,3 @@ the cursor."
|
||||||
(org-download-insert-link raw-uri new-path))))
|
(org-download-insert-link raw-uri new-path))))
|
||||||
(error
|
(error
|
||||||
(user-error "Failed to attach file: %s" (error-message-string ex))))))
|
(user-error "Failed to attach file: %s" (error-message-string ex))))))
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +org-attach-download-dnd (uri action)
|
|
||||||
"TODO"
|
|
||||||
(if (eq major-mode 'org-mode)
|
|
||||||
(+org-attach/uri uri)
|
|
||||||
(let ((dnd-protocol-alist
|
|
||||||
(rassq-delete-all '+org-attach-download-dnd
|
|
||||||
(copy-alist dnd-protocol-alist))))
|
|
||||||
(dnd-handle-one-url nil action uri))))
|
|
||||||
|
|
||||||
|
|
||||||
;;
|
|
||||||
;; Advice
|
|
||||||
|
|
||||||
;;;###autoload
|
|
||||||
(defun +org-attach*insert-link (_link filename)
|
|
||||||
"Produces and inserts a link to FILENAME into the document.
|
|
||||||
|
|
||||||
If FILENAME is an image, produce an attach:%s path, otherwise use file:%s (with
|
|
||||||
an file icon produced by `+org-attach--icon')."
|
|
||||||
(if (looking-back "^[ \t]+" (line-beginning-position))
|
|
||||||
(delete-region (match-beginning 0) (match-end 0))
|
|
||||||
(newline))
|
|
||||||
(cond ((image-type-from-file-name filename)
|
|
||||||
(insert
|
|
||||||
(concat (if (= org-download-image-html-width 0) ""
|
|
||||||
(format "#+attr_html: :width %dpx\n" org-download-image-html-width))
|
|
||||||
(if (= org-download-image-latex-width 0) ""
|
|
||||||
(format "#+attr_latex: :width %dcm\n" org-download-image-latex-width))
|
|
||||||
(cond ((file-in-directory-p filename org-attach-directory)
|
|
||||||
(format "[[attach:%s]]" (file-relative-name filename org-attach-directory)))
|
|
||||||
((file-in-directory-p filename org-directory)
|
|
||||||
(format org-download-link-format (file-relative-name filename org-directory)))
|
|
||||||
(t
|
|
||||||
(format org-download-link-format filename)))))
|
|
||||||
(org-display-inline-images))
|
|
||||||
(t
|
|
||||||
(insert
|
|
||||||
(format "%s [[./%s][%s]] "
|
|
||||||
(+org-attach--icon filename)
|
|
||||||
(file-relative-name filename (file-name-directory buffer-file-name))
|
|
||||||
(file-name-nondirectory (directory-file-name filename)))))))
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
;;; lang/org/contrib/dragndrop.el -*- lexical-binding: t; -*-
|
;;; lang/org/contrib/dragndrop.el -*- lexical-binding: t; -*-
|
||||||
|
;;;###if (featurep! +dragndrop)
|
||||||
|
|
||||||
(def-package! org-download
|
(def-package! org-download
|
||||||
:commands (org-download-dnd org-download-dnd-base64)
|
:commands (org-download-dnd org-download-dnd-base64)
|
||||||
|
@ -23,10 +24,6 @@
|
||||||
;; to, with an icon indicating the type of file.
|
;; to, with an icon indicating the type of file.
|
||||||
(advice-add #'org-download-insert-link :override #'+org-dragndrop*insert-link)
|
(advice-add #'org-download-insert-link :override #'+org-dragndrop*insert-link)
|
||||||
|
|
||||||
(defun +org-dragndrop*download-subdir ()
|
|
||||||
(when (file-in-directory-p buffer-file-name org-directory)
|
|
||||||
(file-relative-name buffer-file-name org-directory)))
|
|
||||||
|
|
||||||
(defun +org-dragndrop*download-fullname (path)
|
(defun +org-dragndrop*download-fullname (path)
|
||||||
"Write PATH relative to current file."
|
"Write PATH relative to current file."
|
||||||
(let ((dir (or (if buffer-file-name (file-name-directory buffer-file-name))
|
(let ((dir (or (if buffer-file-name (file-name-directory buffer-file-name))
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
;;; lang/org/contrib/babel.el -*- lexical-binding: t; -*-
|
;;; lang/org/contrib/babel.el -*- lexical-binding: t; -*-
|
||||||
|
;;;###if (featurep! +ipython)
|
||||||
|
|
||||||
(def-package! ob-ipython
|
(def-package! ob-ipython
|
||||||
:defer t
|
:defer t
|
||||||
|
@ -22,9 +23,9 @@
|
||||||
|
|
||||||
;; advices for remote kernel and org-src-edit
|
;; advices for remote kernel and org-src-edit
|
||||||
(advice-add #'ob-ipython--create-repl :override #'+org*ob-ipython--create-repl)
|
(advice-add #'ob-ipython--create-repl :override #'+org*ob-ipython--create-repl)
|
||||||
(advice-add #'org-babel-edit-prep:ipython :override #'+org*org-babel-edit-prep:ipython)
|
(advice-add #'org-babel-edit-prep:ipython :override #'+org*babel-edit-prep:ipython)
|
||||||
(advice-add #'org-babel-execute:ipython :override #'+org*org-babel-execute:ipython)
|
(advice-add #'org-babel-execute:ipython :override #'+org*babel-execute:ipython)
|
||||||
(advice-add #'org-babel-ipython-initiate-session :override #'+org*org-babel-ipython-initiate-session)
|
(advice-add #'org-babel-ipython-initiate-session :override #'+org*ob-ipython-initiate-session)
|
||||||
|
|
||||||
;; retina resolution image hack
|
;; retina resolution image hack
|
||||||
(when IS-MAC
|
(when IS-MAC
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
;;; lang/org/contrib/present.el -*- lexical-binding: t; -*-
|
;;; lang/org/contrib/present.el -*- lexical-binding: t; -*-
|
||||||
|
;;;###if (featurep! +present)
|
||||||
|
|
||||||
(defvar +org-present-text-scale 7
|
(defvar +org-present-text-scale 7
|
||||||
"The `text-scale-amount' for `org-tree-slide-mode'.")
|
"The `text-scale-amount' for `org-tree-slide-mode'.")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue