[யூடியூப் நிகழ்படம்] Emacs - Denote package | KanchiLUG | Tamil

Speaker Name: Gold Ayan
About the talk: In this talk, we will be discussing about Denote package in emacs
Denote package is useful to take and consume notes

Notes

Installation

(use-package denote
  :config
  (setq denote-directory "~/PARA/03_Resources/01_Notes"))

File naming scheme

DATE==SIGNATURE--TITLE__KEYWORDS.EXTENSION
  • denote-dired-mode

    (add-hook 'dired-mode-hook #'denote-dired-mode)

  • denote-rename

  • denote-dired-rename-files

Front matter

  • Sample front matter from org mode

    #+title: ffmpeg
    #+date: [2024-02-05 Mon 21:13]
    #+filetags: :multimedia:
    #+identifier: 20240205T211318

  • denote-rename-file-using-front-matter to update the filename if you changed the front matter.

  • denote-dired-rename-marked-files-using-front-matter extends this
    principle to a batch operation which applies to all marked files in
    Dired.

Point of entry

  • My favorite point of entry, we have other point of entry too like
    using capture template, denote-signature

Denote

  • M + x denote
  • M + x denote-open-or-create
    • But i prefare this, as i can check if there is any existing note or i can create a new note.

Denote type

  • By default it is org document
  • M + x denote-type

Denote date

  • Create a note on particular date

  • M + x denote-date

  • set denote-date-prompt-use-org-read-date to a non-nil, For using org mode calendar.

    (setq denote-date-prompt-use-org-read-date 't)
    

Denote subdirectory

  • Create note inside particular subdirectory
  • M + x denote-subdirectory

CUSTOM

  • We can create custom point of entry using denote-prompts

  • Below code demonstrate how we can create note which ask

    • subdirectory → file-type → title → keywords

    (defun denote-subdirectory-with-types ()
    (declare (interactive-only t))
    (interactive)
    (let ((denote-prompts '(subdirectory file-type title keywords)))
    (call-interactively #'denote)))

  • More: Check the denote prompts section of denote info or denote website.

Denote template

(setq denote-templates
    `((report . "* Some heading\n\n* Another heading")
      (memo . ,(concat "* Some heading"
                       "\n\n"
                       "* Another heading"
                       "\n\n"))))

Denote selected region

  • Create note from selected region
    • A+x denote-region

Silos

  • Different note directory

  • Ctrl + u with denote silo command.

  • I haven’t explored much on silos.

    (require 'denote-silo-extras)
    (setq denote-silo-extras-directories '(“~/PARA/01_Projects”
    “~/TEMP”))

  • another way, but it doesn’t work (May be i am missing something)

        (setq denote-dired-directories
          (list denote-directory
    ;            (expand-file-name "~/TEMP")
                (expand-file-name "~/TEMP")))
    
  • Alt + x denote-silo-extras-select-silo-then-command

    • to select the custom silo and then create note in it.

Linking

  • Alt + x, denote-link
  • denote-link-dired-marked-notes

Backlinks

  • Alt + x, denote-backlinks

  • More info on backlinks

    (setq denote-backlinks-show-context 't)

Others

  • denote-known-keywords to change the default keywords/tags.

  • denote-infer-keywords is non-nil, keywords in existing note file names are included in the list of candidates.

  • Rename display buffer

    (denote-rename-buffer-mode 1)