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 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 > > >