you could use this alternative to just change the display without adding
the tag:
(org-map-entries (lambda ()
(looking-at org-heading-regexp)
(put-text-property (match-beginning 2) (match-end 2) 'display (concat "GH
" (match-string 2))))
"+GITHUB={.+}")
There might be some clever way to tie that onto fontlock, or some kind of
hook to make it also work for entries as you create them.
John
-----------------------------------
Professor John Kitchin (he/him/his)
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu
On Tue, Jun 29, 2021 at 9:35 AM Juan Manuel Macías <[email protected]>
wrote:
> Rodrigo Morales writes:
>
> > What I would like to know is whether it is possible to format a headline
> > by taking into consideration the properties it has. For example, in this
> > specific scenario, I would like to make all headlines that have a
> > "GITHUB" to show "GH" before the actual headline (the content would look
> > like this).
>
> You can define a function with `org-map-entries' that adds (for example) a
> tag :github: to all headers with the property GITHUB:
>
> #+begin_src emacs-lisp
> (defun add-github-tag ()
> (interactive)
> (org-map-entries (lambda ()
> (save-restriction
> (save-excursion
> (org-narrow-to-subtree)
> (goto-char (point-min))
> (end-of-line)
> (insert " :github:"))))
> "+GITHUB={.+}"))
>
> (add-hook 'org-mode-hook #'add-github-tag)
> #+end_src
>
> Best regards,
>
> Juan Manuel
>
>
>