yyjjl
1
先上效果图:
目前只能使用 latex 或 html 导出, 背景不支持 latex 导出
在 org 文件开头加上两个 macros:
#+macro: color @@html:<span style="color:$1">$2</span>@@@@latex:\textcolor{$1}{$2}@@
#+macro: bgcolor @@html:<span style="background-color:$1;">$2</span>@@@@latex:$2@@
以下的代码为新的 syntax 增加高亮
(font-lock-add-keywords
'org-mode
'(("{{{[ \n]*\\(bg\\)?color[ \n]*(\\([#0-9a-zA-Z]+\\)[ \n]*,\\([^,]+?\\))}}}"
(2 font-lock-comment-face t t)
(3 (let ((bg (match-string 1))
(color (match-string 2)))
(list (if (equal bg "bg") :background :foreground) color))
prepend t)))
;; 这里必须是 non-nil 否则被 org-macros 的 font-lock 覆盖
'append)
这个链接里有更多的 org-macros
6 个赞
yyjjl
2
把 font-lock
代码改为
(font-lock-add-keywords
'org-mode
'(("{{{[ \n]*\\(bg\\)?color[ \n]*(\\([#0-9a-zA-Z]+\\)[ \n]*,\\([^,]+?\\))}}}"
(2 (progn
(put-text-property (match-beginning 2) (match-end 2)
'display
(car org-script-display))
font-lock-comment-face)
t t)
(3 (let ((bg (match-string 1))
(color (match-string 2)))
(add-text-properties (match-beginning 0) (match-beginning 2)
'(invisible org-link))
(add-text-properties (match-end 3) (match-end 0)
'(invisible org-link))
(add-text-properties (- (match-beginning 3) 1) (match-beginning 3)
'(invisible org-link))
(list (if (equal bg "bg") :background :foreground) color))
prepend t)))
'append)
可以显示为
2 个赞