Org-Mode - How do I create a new file with org-capture?

Viewed 4202

I want to create an org-capture template that create a dynamic file name for capture in emacs org-mode.

I want that the name of the file takes the following form: (format-time-string "%Y-%m-%d") "-" (prompt for a name) ".txt"

Example : 2012-08-10-MyNewFile.txt

Based on this answer, I know how to dynamically create the name the file to include the date:

`(defun capture-report-date-file (path)
(expand-file-name (concat path (format-time-string "%Y-%m-%d") ".txt")))

'(("t" "todo" entry (file (capture-report-date-file  "~/path/path/name"))
"* TODO")))

This allows me to create a file 2012-08-10.txt and to insert * TODO at the first line

How could I add a prompt to complete the file name?

2 Answers

I use below template & function to create new file.

  (defun psachin/create-notes-file ()
    "Create an org file in ~/notes/."
    (interactive)
    (let ((name (read-string "Filename: ")))
      (expand-file-name (format "%s.org"
                                  name) "~/notes/")))



   (setq org-capture-templates
     '(("n" "Notes" entry
        (file psachin/create-notes-file)
       "* TITLE%?\n %U")))
Related