diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | bog.el | 24 |
2 files changed, 27 insertions, 0 deletions
@@ -4,6 +4,9 @@ ** New features +- New command ~bog-list-orphan-files~ finds citekey files that don't + have a corresponding citekey heading in the notes. + - New command ~bog-rename-citekey-file~ updates the name of an existing citekey file. @@ -730,6 +730,30 @@ Generate a file name with the form (directory-files bog-stage-directory t directory-files-no-dot-files-regexp))) +;;;###autoload +(defun bog-list-orphan-files () + "Find files in `bog-file-directory' without a citekey heading." + (interactive) + (let ((head-cks (bog-all-heading-citekeys))) + (with-current-buffer (get-buffer-create "*Bog orphan files*") + (erase-buffer) + (setq default-directory bog-root-directory) + (insert ?\n) + (dolist (ck-file (bog-all-citekey-files)) + (let ((base-name (file-name-nondirectory ck-file)) + (case-fold-search nil)) + (unless (and (string-match (concat "\\`" bog-citekey-format) + base-name) + (member (match-string-no-properties 0 base-name) + head-cks)) + (insert (format "- [[file:%s]]\n" (file-relative-name ck-file)))))) + (goto-char (point-min)) + (org-mode) + (if (/= (buffer-size) 1) + (pop-to-buffer (current-buffer)) + (message "No orphans found") + (kill-buffer))))) + ;;; BibTeX-related |