Allow customised ID format for `ts' `org-id-method'

* lisp/org-id.el (org-id-new): Use `org-id-ts-format' as ID format for
`ts' ID generation method.
(org-id-ts-format): New custom variable for `ts' ID format.  The
default value is the same as old hard-coded ID format string.
* etc/ORG-NEWS (New option ~org-id-ts-format~): Announce the new
custom variable.
This commit is contained in:
Ihor Radchenko 2020-09-11 15:42:53 +08:00 committed by Bastien
parent aea1109ef7
commit 6c75b00217
2 changed files with 11 additions and 1 deletions

View File

@ -404,6 +404,12 @@ The new value uses Emacs as the application for opening directory.
Functions in this hook are run after ~org-agenda-filter~ is called.
*** New option ~org-id-ts-format~
Earlier, IDs generated using =ts= method had a hard-coded format (i.e. =20200923T160237.891616=).
The new option allows user to customise the format.
Defaults are unchanged.
** Removed or renamed functions and variables
*** Deprecated ~org-flag-drawer~ function

View File

@ -128,6 +128,10 @@ nil Never use an ID to make a link, instead link using a text search for
:group 'org-id
:type 'string)
(defcustom org-id-ts-format "%Y%m%dT%H%M%S.%6N"
"Default format for IDs generated using `ts' `org-id-method'.
The format should be suitable to pass as an argument to `format-time-string'.")
(defcustom org-id-method 'uuid
"The method that should be used to create new IDs.
@ -380,7 +384,7 @@ So a typical ID could look like \"Org:4nd91V40HI\"."
(concat "@" (message-make-fqdn))))))
(setq unique (concat etime postfix))))
((eq org-id-method 'ts)
(let ((ts (format-time-string "%Y%m%dT%H%M%S.%6N"))
(let ((ts (format-time-string org-id-ts-format))
(postfix (if org-id-include-domain
(progn
(require 'message)