;;; -*- lexical-binding: t -*- ;; ;; this file: ;; https://dataswamp.org/~incal/emacs-init/quote-ref.el (require 'cl-lib) (require 'dwim) (require 'w3m) (defun quote-ref-src (&optional mode) (or mode (setq mode major-mode)) (cl-case mode (w3m-mode (format "<%s>" w3m-current-url)) )) (defun quote-ref (&optional beg end) (interactive (use-region)) (or beg (setq beg (point-min))) (or end (setq beg (point-max))) (let*((str (buffer-substring-no-properties beg end)) (line (string-trim (replace-regexp-in-string "\\^*\\[[[:digit:]]*\\]" "" ; drop notes (replace-regexp-in-string "[ \r\n\t]+" " " str) ))) (ref (quote-ref-src)) (ref-pad (if ref (format " %s" ref) "")) (final (format "\"%s\"%s" line ref-pad)) ) (kill-new final) )) (defalias 'qr #'quote-ref) (provide 'quote-ref)