Added support to configure a title extractor per file extension #105
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Before this update, Deft used the first line of a file and the
function bound to deft-parse-title-function to obtain the file title
to be displayed.
This update renames deft-parse-title-function to
deft-parse-title-functions. The variable is not bound anymore to a
function used to parse the first line of the files. It is now an
alist that defines the parsers used per file extension. The previous
default parser (deft-strip-title) is maintained as the default
parser. It is associated with :default in the alist.
An example of an .emacs configuration to use Deft and Org-Roam to
maintain titles different from filenames includes:
(defun my-deft-org-title (contents)
"Look for the title in the first 500 characters of an org file.
This function looks for the TITLE property in the first 500
characters of CONTENTS."
(let ((prelude (substring contents 0 (min (length contents) 500))))
(when prelude
(let ((title (substring prelude (string-match "^#\+TITLE:.+$" prelude) (match-end 0))))
(deft-chomp (replace-regexp-in-string "^#\+TITLE:" ""
title))))))
(setq deft-parse-title-functions (push '("org" . my-deft-org-title) deft-parse-title-functions))