diff options
author | Yuchen Pei <id@ypei.org> | 2024-12-31 10:04:11 +1100 |
---|---|---|
committer | Yuchen Pei <id@ypei.org> | 2024-12-31 10:04:11 +1100 |
commit | 82cf9a13134204b87b7fe01d1cebdf5771d7cebb (patch) | |
tree | 2bda461dbfcdb9656e9d43bc36090f5a82b0901c /emacs/.emacs.d/lisp/my/my-org.el | |
parent | 0584de27f0fc5039e0198732385e0fdcbe41d924 (diff) |
[emacs] various changes
* emacs/.emacs.d/init/ycp-basic.el: forgot to read
my-copy-file-targets from local config
* emacs/.emacs.d/init/ycp-markup.el: Key in nov mode to copy file to devices
* emacs/.emacs.d/init/ycp-org.el: Back to use browse-url for http /
https org links
* emacs/.emacs.d/init/ycp-pdf.el: forgot to read my-pdf-dptrp1-ip from
local config
* emacs/.emacs.d/init/ycp-web.el: add a handler for mariadb kb links
* emacs/.emacs.d/lisp/my/my-emms.el: mp4 can be audio
* emacs/.emacs.d/lisp/my/my-mariadb.el: a predicate for browse-url to
determine mariadb kb links
* emacs/.emacs.d/lisp/my/my-nov.el: add a command to copy current epub
to a device
* emacs/.emacs.d/lisp/my/my-org.el: ensure leading and trailing
empty lines are deleted in org-edit-special; factor out copy file to
device with staging to my-utils, fix my-org-edit-special-after
argument numbers for one more time (it is 0 with src and 1 with example)
* emacs/.emacs.d/lisp/my/my-utils.el: mp4 could be audio; a function
to copy files to device with staging, factored from my-org
Diffstat (limited to 'emacs/.emacs.d/lisp/my/my-org.el')
-rw-r--r-- | emacs/.emacs.d/lisp/my/my-org.el | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/emacs/.emacs.d/lisp/my/my-org.el b/emacs/.emacs.d/lisp/my/my-org.el index ad0c3cb..e99352d 100644 --- a/emacs/.emacs.d/lisp/my/my-org.el +++ b/emacs/.emacs.d/lisp/my/my-org.el @@ -81,7 +81,12 @@ buffer was a live window.") (defun my-org-edit-src-before-exit () "A :before advice for org-edit-src-exit." - (delete-trailing-whitespace) + (goto-char (point-min)) + (and + (>= (skip-chars-forward "\n") 1) + (region-modifiable-p (point-min) (point)) + (delete-region (point-min) (point))) + (let ((delete-trailing-lines t)) (delete-trailing-whitespace)) (setq my-org-edit-src-was-live-window (get-buffer-window (current-buffer)))) (defun my-org-element-block-p (element) @@ -812,8 +817,6 @@ When BLOCK-REGEXP is non-nil, use this regexp to find blocks." (cl-letf (((symbol-function 'delete-other-windows) 'ignore)) (apply oldfun args))) -(defvar my-org-attach-copy-attached-targets nil - "Alist of targets to copy attached to, in the form of (name . path)") (defvar my-org-attach-copy-attached-doc-exts '("epub" "pdf" "mobi")) (defvar my-org-attach-copy-attached-doc-re @@ -832,44 +835,15 @@ On success, also move everything from staging to to-dir." (interactive) (pcase-let* ((name (completing-read "Copy attached docs to: " - my-org-attach-copy-attached-targets + my-copy-file-targets nil t)) - (`(,to ,staging) (alist-get name my-org-attach-copy-attached-targets + (`(,to ,staging) (alist-get name my-copy-file-targets nil nil #'equal))) - (let ((basedir (org-attach-dir)) - (failed nil)) - (dolist (attached (org-attach-file-list basedir)) - (when (string-match my-org-attach-copy-attached-doc-re attached) - (message "Copying %s to %s (%s)..." attached name to) - (condition-case nil - (copy-file (file-name-concat basedir attached) - (file-name-concat - to - (replace-regexp-in-string ":" "_" attached)) - t) - (error - (message "Hardlinking %s to %s staging area (%s)" - attached name staging) - (setq failed t) - (add-name-to-file - (file-name-concat basedir attached) - (file-name-concat - staging - (replace-regexp-in-string ":" "_" attached)) - t))) - (message "Done!"))) - (unless failed - (dolist (staged - (directory-files staging nil - my-org-attach-copy-attached-doc-re)) - (message "Moving staged %s to %s (%s)..." staged name to) - (copy-file (file-name-concat staging staged) - (file-name-concat - to - (replace-regexp-in-string ":" "_" staged)) - t) - (delete-file (file-name-concat staging staged)) - (message "Done!")))))) + (my-copy-files-with-staging + (directory-files-recursively (org-attach-dir) + my-org-attach-copy-attached-doc-re) + to + staging))) (defun my-org-attach-all-url-plaintext (arg) (interactive "P") @@ -1365,7 +1339,7 @@ With a prefix arg, yank and exit immediately." (org-edit-src-exit)))) ;; used to add an :after advice to `org-edit-special'. -(defun my-org-edit-special-after () +(defun my-org-edit-special-after (&rest _) ;; some modes (e.g. diff mode) are read-only by default, which ;; does not make sense when the intention is to edit (read-only-mode 0)) |