Skip to content

The denote-prompts option

The user option denote-prompts determines how the denote command will behave interactively (Standard note creation).

Commands that prompt for user input to construct a Denote file name include, but are not limited to: denote, denote-signature, denote-type, denote-date, denote-subdirectory, denote-rename-file, denote-dired-rename-files.

The value of this user option is a list of symbols, which includes any of the following:

  • title’: Prompt for the title of the new note (The denote-history-completion-in-prompts option).

  • keywords’: Prompts with completion for the keywords of the new note. Available candidates are those specified in the user option denote-known-keywords. If the user option denote-infer-keywords is non-nil, keywords in existing note file names are included in the list of candidates. The ‘keywords’ prompt uses completing-read-multiple, meaning that it can accept multiple keywords separated by a comma (or whatever the value of crm-separator is).

  • file-type’: Prompts with completion for the file type of the new note. Available candidates are those specified in the user option denote-file-type. Without this prompt, denote uses the value of denote-file-type.

  • subdirectory’: Prompts with completion for a directory or subdirectory in which to create the note. Available candidates are the value of the user option denote-directory and all of its subdirectories (The denote-directory option). Any subdirectory must already exist: Denote will not create it.

  • date’: Prompts for the date of the new note. It will expect an input like 2022-06-16 or a date plus time: 2022-06-16 14:30. Without the ‘date’ prompt, the denote command uses the current-time.

    The denote-date-prompt-use-org-read-date option.

  • identifier’: Prompts with completion for the identifier of the new note. It expects a string that has the format of denote-date-identifier-format. [ Also see: A custom identifier that is a simple string given at the prompt each time. ]

  • template’: Prompts for a KEY among the denote-templates. The value of that KEY is used to populate the new note with content, which is added after the front matter (The denote-templates option).

  • signature’: - Prompts for an arbitrary string that can be used for any kind of workflow, such as a special tag to label the ‘part1’ and ‘part2’ of a large file that is split in half, or to add special contexts like ‘home’ and ‘work’, or even priorities like ‘a’, ‘b’, ‘c’. One other use-case is to implement a sequencing scheme that makes notes have hierarchical relationships. This is handled by our optional extension ‘denote-sequence.el’, which is its own package (Write sequence notes or “folgezettel”).

The prompts occur in the given order.

If the value of this user option is nil, no prompts are used. The resulting file name will consist of an identifier (i.e. the date and time) and a supported file type extension (per denote-file-type).

Recall that Denote’s standard file-naming scheme is defined as follows (The file-naming scheme):

ID--TITLE__KEYWORDS.EXT

If either or both of the ‘title’ and ‘keywords’ prompts are not included in the value of this variable, file names will be any of those permutations:

ID.EXT
ID--TITLE.EXT
ID__KEYWORDS.EXT

When in doubt, always include the ‘title’ and ‘keywords’ prompts.

Finally, this user option only affects the interactive use of the denote or other relevant commands (advanced users can call it from Lisp). In Lisp usage, the behaviour is always what the caller specifies, based on the supplied arguments.