Org 导出到 HTML 时如何高亮代码块?

如题, 每次在 buffer 中指定好了代码块的语言类型, 都是能够正常高亮显示的, 但是用 C-c C-e h o 导出成 HTML 之后, 代码块中的高亮就都没有了.
有没有办法能保留原本的代码块高亮?

Emacs 29.1; Org 9.6.6

(defun hurricane//org-html-wrap-blocks-in-code (src backend info)
  "Wrap a source block in <pre><code class=\"lang\">.</code></pre>"
  (when (org-export-derived-backend-p backend 'html)
    (replace-regexp-in-string
     "\\(</pre>\\)" "</code>\n\\1"
     (replace-regexp-in-string "<pre class=\"src src-\\([^\"]*?\\)\">"
                               "<pre>\n<code class=\"\\1\">\n" src))))

(with-eval-after-load 'ox-html
  (add-to-list 'org-export-filter-src-block-functions
               #'hurricane//org-html-wrap-blocks-in-code))

我之前的配置,不知道还有没有效果,自己好久没有用过,可以试试。

package-install htmlize

1 个赞

需要安装 htmlize ,见 org manual footnote 113

1 个赞