Skip to content

Instantly share code, notes, and snippets.

@xenodium
Created October 8, 2025 20:04
Show Gist options
  • Save xenodium/47667ab4816c7ab265e2352f2d153e8b to your computer and use it in GitHub Desktop.
Save xenodium/47667ab4816c7ab265e2352f2d153e8b to your computer and use it in GitHub Desktop.
Prettify org source block with overlay
(defun org-deck-hide-code-block-delimiters ()
"Hide #+begin_src and #+end_src lines."
(save-excursion
(goto-char (point-min))
(while (re-search-forward "^[ \t]*#\\+begin_src\\s-*\\S-*" nil t)
(let* ((begin-start (line-beginning-position))
(lang-end (match-end 0))
(end-pos (save-excursion
(when (re-search-forward "^[ \t]*#\\+end_src" nil t)
(point)))))
(when end-pos
;; Hide #+begin_src and language, replace with [snippet]
(let ((ov (make-overlay begin-start lang-end)))
(overlay-put ov 'display " [snippet]")
(overlay-put ov 'org-deck-code t))
;; Hide #+end_src line
(save-excursion
(goto-char end-pos)
(let ((end-start (line-beginning-position))
(end-end (line-end-position)))
(let ((ov (make-overlay end-start (1+ end-end))))
(overlay-put ov 'invisible t)
(overlay-put ov 'org-deck-code t)))))))))
;; To remove, use: (remove-overlays (point-min) (point-max) 'org-deck-code t)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment