自己改了一个face
(defface my-org-emphasis-bold
'(
(default :inherit bold)
(t :foreground "#f06352")
)
"my bold emphasis for org")
(setq org-emphasis-alist
'(("*" my-org-emphasis-bold)
("/" italic)
("_" underline)
("=" org-verbatim verbatim)
;; ("~" org-code verbatim)
("`" org-code verbatim)
("+" (:strike-through t))))
需求
- bold的颜色更改
- 将org中的 ~语法 改成 markdown的 ` 语法来表示inline code
第一个需求可以,
但是这里怎么隐藏这个 * 啊?
第二个,我改成 ("`" org-code verbatim)
好像没有其效果呀
呵呵,恰好我前几天也也有这个需求,不过没细看,org源码里有个正则是写死了就那么几个emphasis的,那个正则初看起来还挺复杂的,就没继续了,楼主解决了可以发上来共享,嘿嘿
感觉这个包写得太复杂了,花了点时间下面代码就可以把markdown的```加入到org 标记里:(没有考虑导出成html什么的情况)
(use-package org
:defer t
:config
;; 添加markdown的代码标记
(add-to-list 'org-emphasis-alist '("`" org-code verbatim))
(setq org-verbatim-re
(string-replace "[=~]" "[=~`]" org-verbatim-re))
(define-advice org-do-emphasis-faces
(:around (orig-fn &rest args) my)
(cl-letf* ((org-member (symbol-function #'member))
(org-format (symbol-function #'format))
((symbol-function #'format)
(lambda (&rest args)
(if (equal
(car args) "\\([%s]\\|^\\)\\([~=*/_+]\\)")
(progn
(setcar args "\\([%s]\\|^\\)\\([~=*/_+`]\\)")
(apply org-format args))
(apply org-format args))))
((symbol-function #'member)
(lambda (elt list)
(if (equal list '("~" "="))
(funcall org-member elt '("~" "=" "`"))
(funcall org-member elt list)))))
(apply orig-fn args))))
补:楼主你的第1个隐藏星号可以试试(setq org-hide-emphasis-markers t)