Function: org-id-new

org-id-new is an autoloaded and byte-compiled function defined in org-id.el.gz.

Signature

(org-id-new &optional PREFIX)

Documentation

Create a new globally unique ID.

An ID consists of two parts separated by a colon:
- a prefix
- a unique part that will be created according to org-id-method.

PREFIX can specify the prefix, the default is given by the variable org-id-prefix. However, if PREFIX is the symbol none, don't use any prefix even if org-id-prefix specifies one.

So a typical ID could look like "Org:4nd91V40HI".

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-id.el.gz
;;; Internal functions

;; Creating new IDs

;;;###autoload
(defun org-id-new (&optional prefix)
  "Create a new globally unique ID.

An ID consists of two parts separated by a colon:
- a prefix
- a unique part that will be created according to `org-id-method'.

PREFIX can specify the prefix, the default is given by the variable
`org-id-prefix'.  However, if PREFIX is the symbol `none', don't use any
prefix even if `org-id-prefix' specifies one.

So a typical ID could look like \"Org:4nd91V40HI\"."
  (let* ((prefix (if (eq prefix 'none)
		     ""
		   (concat (or prefix org-id-prefix) ":")))
	 unique)
    (if (equal prefix ":") (setq prefix ""))
    (cond
     ((memq org-id-method '(uuidgen uuid))
      (setq unique (org-trim (shell-command-to-string org-id-uuid-program)))
      (unless (org-uuidgen-p unique)
	(setq unique (org-id-uuid))))
     ((eq org-id-method 'org)
      (let* ((etime (org-reverse-string (org-id-time-to-b36)))
	     (postfix (when org-id-include-domain
			(require 'message)
			(concat "@" (message-make-fqdn)))))
	(setq unique (concat etime postfix))))
     ((eq org-id-method 'ts)
      (let ((ts (format-time-string org-id-ts-format))
	    (postfix (when org-id-include-domain
		       (require 'message)
		       (concat "@" (message-make-fqdn)))))
	(setq unique (concat ts postfix))))
     (t (error "Invalid `org-id-method'")))
    (concat prefix unique)))