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 <maciasch...@posteo.net>
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
>
>
>

Reply via email to