spacemacs/layers/+emacs/org/local/space-doc/space-doc.el

60 lines
2.4 KiB
EmacsLisp

;;; space-doc.el --- Spacemacs documentation minor mode.
;;
;; Copyright (c) 2012-2016 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
;;; Code:
(require 'face-remap)
(require 'org)
;;;###autoload
(define-minor-mode space-doc-mode
"Buffer local minor mode for Spacemacs documentation files.
The mode hides `org-mode' meta tags like #+TITLE: while
keeping their content visible."
:init-value nil
:lighter ""
(if (eq major-mode 'org-mode)
(if space-doc-mode
(let ((bg (face-attribute 'default :background)))
(progn
;; Make `org-mode' meta tags invisible.
(set (make-local-variable
'spacemacs--org-face-remap-cookie-org-tag)
(face-remap-add-relative 'org-tag
`(:foreground ,bg)))
(set (make-local-variable
'spacemacs--org-face-remap-cookie-org-meta-line)
(face-remap-add-relative 'org-meta-line
`(:foreground ,bg)))
(set (make-local-variable
'spacemacs--org-face-remap-cookie-org-block-begin-line)
(face-remap-add-relative 'org-block-begin-line
`(:foreground ,bg)))
(set (make-local-variable
'spacemacs--org-face-remap-cookie-org-document-info-keyword)
(face-remap-add-relative 'org-document-info-keyword
`(:foreground ,bg)))))
(progn
;; Make `org-mode' meta tags visible.
(face-remap-remove-relative
spacemacs--org-face-remap-cookie-org-tag)
(face-remap-remove-relative
spacemacs--org-face-remap-cookie-org-meta-line)
(face-remap-remove-relative
spacemacs--org-face-remap-cookie-org-block-begin-line)
(face-remap-remove-relative
spacemacs--org-face-remap-cookie-org-document-info-keyword)
(setq spacemacs--org-face-remap-p nil)))
(progn (message (format "space-doc-mode error:%s isn't an org-mode buffer"
(buffer-name)))
(setq org-mode nil))))
(provide 'space-doc)
;;; space-doc.el ends here