fix(grfn/emacs): More robust org-element title extraction
It *appears* that the main trigger for the :title of an org element being a list instead of a string is if it contains rich text properties as children, eg links, bold text, etc. This defines a function that *attempts* to turn all of those into a single string, for use in my i3status bar for the currently clocked-in task. Change-Id: Ib655595914e54cd0e01f0fee6d1352c98a9f1436 Reviewed-on: https://cl.tvl.fyi/c/depot/+/4364 Reviewed-by: grfn <grfn@gws.fyi> Autosubmit: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
This commit is contained in:
		
							parent
							
								
									d85c6a1b56
								
							
						
					
					
						commit
						3bf3f95105
					
				
					 1 changed files with 18 additions and 2 deletions
				
			
		|  | @ -4,6 +4,23 @@ | |||
| (require 'org-agenda) | ||||
| (require 'inflections) | ||||
| 
 | ||||
| (defun grfn/org-text-element->string (elt) | ||||
|   (cond | ||||
|    ((stringp elt) elt) | ||||
|    ((and (consp elt) | ||||
|          (symbolp (car elt))) | ||||
|     (-> elt (caddr) (grfn/org-text-element->string) (s-trim) (concat " "))))) | ||||
| 
 | ||||
| (defun grfn/org-element-title (elt) | ||||
|   (let ((title (org-element-property :title elt))) | ||||
|     (cond | ||||
|      ((stringp title) title) | ||||
|      ((listp title) | ||||
|       (->> title | ||||
|            (mapcar #'grfn/org-text-element->string) | ||||
|            (s-join "") | ||||
|            (s-trim)))))) | ||||
| 
 | ||||
| (defun grfn/org-agenda-entry->element (agenda-entry) | ||||
|   ;; ??? | ||||
|   ()) | ||||
|  | @ -87,8 +104,7 @@ | |||
|   (if (org-clocking-p) | ||||
|       (format "(%s) [%s]" | ||||
|               (->> (grfn/org-element-clocked-in-task) | ||||
|                    (org-element-property :title) | ||||
|                    (car) | ||||
|                    (grfn/org-element-title) | ||||
|                    (substring-no-properties) | ||||
|                    (s-trim)) | ||||
|               (grfn/minutes->hours:minutes | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue