diff --git a/org-unique-id.el b/org-unique-id.el index 5c7b9d5..db87767 100644 --- a/org-unique-id.el +++ b/org-unique-id.el @@ -118,9 +118,22 @@ somewhere. ie, #+OPTIONS: auto-id:t" (save-excursion (widen) (goto-char (point-min)) - (let ((case-fold-search t)) - (when (re-search-forward "^#\\+OPTIONS:.*auto-id:t" (point-max) t) - (org-map-entries (lambda () (org-unique-id-get (point) t))))))) + (org-map-entries (lambda () (org-unique-id-get (point) t))))) + +;;;###autoload +(defun org-unique-id-maybe () + "Execute `org-unique-id' if in an org buffer and if enabled. + +This function executes `org-unique-id' when the buffer’s major +mode is `org-mode', when the buffer is not read-only, and if +\\='auto-id:t\\' is found in an #+OPTIONS line." + (let ((case-fold-search t)) + (when (and (eq major-mode 'org-mode) + (eq buffer-read-only nil) + (save-excursion + (let ((case-fold-search t)) + (re-search-forward "^#\\+OPTIONS:.*auto-id:t" (point-max) t)))) + (org-unique-id)))) (provide 'org-unique-id)