[Timeline] Allow to customize category when formatting timelines
This commit is contained in:
parent
90445b6c3d
commit
207fb331ff
|
@ -57,6 +57,27 @@ Filter are applied in the order they are given in this list."
|
||||||
:group 'timeline-tools
|
:group 'timeline-tools
|
||||||
:type 'integer)
|
:type 'integer)
|
||||||
|
|
||||||
|
(defcustom timeline-tools-headline-time-format "%Y-%m-%d %H:%M"
|
||||||
|
"Format of time used in the headline of a timeline."
|
||||||
|
:group 'timeline-tools
|
||||||
|
:type 'string)
|
||||||
|
|
||||||
|
(defcustom timeline-tools-time-format "%Y-%m-%d %H:%M"
|
||||||
|
"Format of time used inside a timeline."
|
||||||
|
:group 'timeline-tools
|
||||||
|
:type 'string)
|
||||||
|
|
||||||
|
(defcustom timeline-tools-category-function 'timeline-tools-entry-category
|
||||||
|
"Function for extracting the category of an entry when formatting a timeline.
|
||||||
|
|
||||||
|
This function is supposed to return a string representing the
|
||||||
|
category of a timeline entry, as it is used when formatting the
|
||||||
|
timeline with `timeline-tools-redraw-timeline’. It receives
|
||||||
|
three arguments, namly the entry itself, the start date, and the
|
||||||
|
end date of the timeline."
|
||||||
|
:group 'timeline-tools
|
||||||
|
:type 'function)
|
||||||
|
|
||||||
|
|
||||||
;; Mode definition
|
;; Mode definition
|
||||||
|
|
||||||
|
@ -72,12 +93,6 @@ Filter are applied in the order they are given in this list."
|
||||||
(defvar timeline-tools--current-timeline nil
|
(defvar timeline-tools--current-timeline nil
|
||||||
"Currently displayed timeline in abstract form.")
|
"Currently displayed timeline in abstract form.")
|
||||||
|
|
||||||
(defvar timeline-tools-headline-time-format "%Y-%m-%d %H:%M"
|
|
||||||
"Format of time used in the headline of a timeline.")
|
|
||||||
|
|
||||||
(defvar timeline-tools-time-format "%Y-%m-%d %H:%M"
|
|
||||||
"Format of time used inside a timeline.")
|
|
||||||
|
|
||||||
(defvar timeline-tools-mode-map
|
(defvar timeline-tools-mode-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map [remap self-insert-command] 'undefined)
|
(define-key map [remap self-insert-command] 'undefined)
|
||||||
|
@ -125,7 +140,7 @@ MARKER must be a single marker."
|
||||||
(timeline-tools-entry-start-time entry))
|
(timeline-tools-entry-start-time entry))
|
||||||
60)))
|
60)))
|
||||||
|
|
||||||
(defun timeline-tools-entry-category (entry)
|
(defun timeline-tools-entry-category (entry &rest _)
|
||||||
"Return ARCHIVE_CATEGORY or CATEGORY at position given by marker of ENTRY.
|
"Return ARCHIVE_CATEGORY or CATEGORY at position given by marker of ENTRY.
|
||||||
Return whatever is found first."
|
Return whatever is found first."
|
||||||
(let ((marker (timeline-tools-entry-marker entry)))
|
(let ((marker (timeline-tools-entry-marker entry)))
|
||||||
|
@ -462,7 +477,11 @@ archives."
|
||||||
(insert "| Category | Start | End | Duration | Task |\n")
|
(insert "| Category | Start | End | Duration | Task |\n")
|
||||||
(let ((last-category nil))
|
(let ((last-category nil))
|
||||||
(dolist (line timeline)
|
(dolist (line timeline)
|
||||||
(when (not (equal last-category (timeline-tools-entry-category line)))
|
(when (not (equal last-category
|
||||||
|
(funcall timeline-tools-category-function
|
||||||
|
line
|
||||||
|
timeline-tools--current-time-start
|
||||||
|
timeline-tools--current-time-end)))
|
||||||
(insert "|--|\n")
|
(insert "|--|\n")
|
||||||
(setq last-category (timeline-tools-entry-category line)))
|
(setq last-category (timeline-tools-entry-category line)))
|
||||||
(insert (format "| %s | %s | %s | %s min | %s | \n"
|
(insert (format "| %s | %s | %s | %s min | %s | \n"
|
||||||
|
|
Loading…
Reference in New Issue