Created
July 7, 2023 15:05
-
-
Save JasonSKK/446db74b126b23b93fb158e7e378d264 to your computer and use it in GitHub Desktop.
Research student, quick Emacs ORG-MODE supervising meeting file creation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; create-next-meeting-notes-file --- 2023-07-07 04:03:12 pm | |
;; create-next-meeting-notes-file.el | |
;; | |
;; This Emacs Lisp function creates a new supervising meeting notes file with the next number in the directory | |
;; "~/Desktop/research-mres/meeting-notes/" and inserts the preamble text for easy org-latex to PDF export. | |
;; | |
;; The function retrieves the list of existing meeting notes files in the specified directory, extracts | |
;; the numerical part of each file name, finds the maximum number, and increments it by 1 to determine | |
;; the next file number. The current date is added to the file name in the format YYMMDD. | |
;; | |
;; The preamble text includes various Org mode options, such as TITLE, DATE, AUTHOR, EMAIL, LANGUAGE, | |
;; SELECT_TAGS, EXCLUDE_TAGS, CREATOR, and more. You can customize these options to suit your needs. | |
;; | |
;; To use this function, evaluate the code in Emacs Lisp or add it to your Emacs configuration file. | |
;; | |
;; Example usage: | |
;; M-x create-next-meeting-notes-file | |
;; | |
;; License: GNU General Public License, v3.0 | |
(defun create-next-meeting-notes-file () | |
"Create a new meeting notes file with the next number in the directory ~/Desktop/research-mres/meeting-notes/ and insert the preamble text." | |
(interactive) | |
(let ((directory "~/Desktop/research-mres/meeting-notes/")) | |
(when (file-exists-p directory) | |
(let* ((files (directory-files directory nil "^[0-9]+_.*meeting-notes\\.org$" t)) | |
(next-number (1+ (apply #'max (mapcar (lambda (file) (string-to-number (substring file 0 2))) files)))) | |
(date (format-time-string "%Y-%m-%d")) | |
(filename (concat directory (format "%02d_%s_meeting-notes.org" next-number (format-time-string "%y%m%d")))) | |
(preamble (concat | |
"#+OPTIONS: ':nil *:t -:t ::t <:t H:3 \\n:nil ^:t arch:headline\n" | |
"#+OPTIONS: author:t broken-links:nil c:nil creator:nil\n" | |
"#+OPTIONS: d:(not \"LOGBOOK\") date:t e:t email:nil f:t inline:t num:t\n" | |
"#+OPTIONS: p:nil pri:nil prop:nil stat:t tags:t tasks:t tex:t\n" | |
"#+OPTIONS: timestamp:t title:t toc:t todo:t |:t\n" | |
(format "#+TITLE: Meeting notes %s\n" date) | |
(format "#+DATE: <%s>\n" date) | |
"#+AUTHOR: Jason SK\n" | |
"#+EMAIL: jsk@Jasons-MBP\n" | |
"#+LANGUAGE: en\n" | |
"#+SELECT_TAGS: export\n" | |
"#+EXCLUDE_TAGS: noexport\n" | |
"#+CREATOR: Emacs " emacs-version " (Org mode " org-version ")\n\n"))) | |
(find-file filename) | |
(goto-char (point-min)) | |
(insert preamble))))) | |
(provide 'create-next-meeting-notes-file) | |
;;; 034_create-next-meeting-notes-file.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Research Student Meeting Notes Creation in Emacs Org Mode
This Emacs Lisp function automates the creation of meeting notes files for research students using Org Mode in Emacs. It generates a new meeting notes file with the next sequential number in the specified directory, inserts a predefined preamble with essential Org Mode settings, and includes the current date.
The function ensures each meeting has a unique file, organises notes systematically, and helps streamline the research supervision process. Simply evaluate the code or integrate it into your Emacs configuration to utilise the functionality.
License: GNU General Public License, v3.0